Fondamenti di Informatica L-Afimecc.ing.unibo.it/PROGRAMMA/lezione1.pdf · . ... circuiti...
Transcript of Fondamenti di Informatica L-Afimecc.ing.unibo.it/PROGRAMMA/lezione1.pdf · . ... circuiti...
Fondamenti di Informatica T
[A-K]
Prof. Jorge E. Fernandez
A.A. 2015-2016
Fondamenti di Informatica T [A-K] 2015-2016
Fondamenti di Informatica T [A-K] 2015-2016
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] 2015-2016
Informazioni varie Ricevimento Prof. Fernandez
venerdì 14-17 (previo appuntamento per e-mail)
Ricevimento in Viale Risorgimento, 2do piano
Uff. DIN (Ex DIENCA).
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] 2015-2016
Account per i laboratori
http://ccib.ing.unibo.it/content/account
Fondamenti di Informatica T [A-K] 2015-2016
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] 2015-2016
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] 2015-2016
ENIAC: si programmava intervenendo
manualmente su interruttori e
connessioni dei cavi
Fondamenti di Informatica T [A-K] 2015-2016
Altair MITS 8800 Apple I – MOS 6502
Fondamenti di Informatica T [A-K] 2015-2016
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] 2015-2016
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] 2015-2016
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] 2015-2016
Architettura dal punto di vista delle
funzioni “esterne”
• CPU Elaborazione dei dati
• Memoria Immagazzinamento dei dati
• Dispositivi input/output
Trasferimento dei dati
Fondamenti di Informatica T [A-K] 2015-2016
Macchina base di Von Neumann
Caratteristica importante: separazione controllo-calcolo
MEMORIA
Dati Istruzioni
I, D D
UNITA’
ARITMETICO
LOGICA
UNITA’ DI
CONTROLLO
CPU
UNITA’
DI
INPUT
UNITA’ DI
OUTPUT
Controllo Controllo
Fondamenti di Informatica T [A-K] 2015-2016
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] 2015-2016
Struttura del calcolatore
UNITA’ CENTRALE DI
ELABORAZIONE
(CPU)
MEMORIA
PRINCIPALE
DISPOSITIVI DI
INGRESSO/USCITA
BUS
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] 2015-2016
L’interconnessione Bus
CPU
ALU CU
MEMORIA
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] 2015-2016
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] 2015-2016
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] 2015-2016
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] 2015-2016
Gerarchia delle memorie
Registri
Memoria cache
Memoria principale
Dischi magnetici
Nastri Dischi ottici
nanosec
sec
word
Gbyte
Tempo di accesso Capacità
Stato solido SSD
Fondamenti di Informatica T [A-K] 2015-2016
Gerarchia delle memorie
100 millis > 10 GB Nastri
micros > 128 GB Hard disk
micros
millis
650 MB – 17 GB Dischi ottici
< 10 ns < 4 GB RAM
ns < 2 MB Cache
< 0.5 ns < 1 KB Registri
Tempo di
accesso
Dimensioni Livello
< 100 micros < 512 GB SSD
Fondamenti di Informatica T [A-K] 2015-2016
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] 2015-2016
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] 2015-2016
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] 2015-2016
Hard disk – dischi multipli
• Per aumentare la capacita' del disco si possono usare piu' superfici sovrapposte
• Ogni superficie ha una testina di lettura/scrittura
• Le testine sono rigidamente vincolare allo stesso braccio
• Cilindro: insieme delle tracce sulla stessa verticale
Ogni blocco e' univocamente identificato dalla tripla:
<Superficie, Cilindro, Settore>
Superficie 0
Direzione di rotazione
Movimento braccio di accesso
Testine di lettura/scrittura
Superficie 1
Fondamenti di Informatica T [A-K] 2015-2016
MEMORIA PRINCIPALE: RAM e ROM
RAM (Random Access Memory)
• Accesso in lettura/scrittura ad accesso diretto (il tempo di accesso al singolo contenitore di memoria è indipendente dalla sua posizione)
• Il contenuto della memoria RAM è volatile: al cessare dell’alimentazione si perde l’informazione contenuta
ROM (Read Only Memory)
• Memorie a sola lettura, programmabili una sola volta
• 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)
Supporto di memorizzazione alla CPU: tutte le informazioni
da elaborare e tutti i risultati vengono sempre presi e/o inviati
alla memoria principale
Fondamenti di Informatica T [A-K] 2015-2016
RAM (Random Access Memory)
0 1 2 3 4 5 6
16277213 16277214 16277215
word
0 0 0 1 1 1 1 1
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.
Spazio di indirizzamento fisico:
l’insieme dei 2k indirizzi
(k = larghezza del BUS indirizzi di memoria)
Esempio: memoria di 16 Mbyte
Fondamenti di Informatica T [A-K] 2015-2016
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] 2015-2016
Gerarchia della cache
Cache L3
CPU Memoria principale
Cache L2
L1
L1
Fondamenti di Informatica T [A-K] 2015-2016
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] 2015-2016
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] 2015-2016
Componenti CPU
registri
MDR
ALU PC
IR
CU
MAR
MEMORIA PRINCIPALE
BUS DATI
BUS INDIRIZZI
BUS CONTROLLO
Fondamenti di Informatica T [A-K] 2015-2016
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] 2015-2016
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] 2015-2016
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] 2015-2016
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] 2015-2016
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] 2015-2016
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] 2015-2016
Cosa fa la UC?
Esempio: addizione fra due numeri
X = A + B
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
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
execute
Fondamenti di Informatica T [A-K] 2015-2016
Limite alla velocità dei componenenti
GHz)
Fondamenti di Informatica T [A-K] 2015-2016
Legge di Moore
Fondamenti di Informatica T [A-K] 2015-2016
Calcolo Parallelo
1 Number of processing elements
v
Fondamenti di Informatica T [A-K] 2015-2016
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] 2015-2016
Unità di input/output
Unità di input
• Tastiera
• Mouse
• Scanner
• Trackball
• Unità audio/video
• Webcam
• Touch screen
Unità di output
• Video
• Stampante
• Plotter
• Altoparlanti
• Dispositivi controllati
(video proiettore, TV,
ecc.)
Fondamenti di Informatica T [A-K] 2015-2016
Scanner
Plotter
Trackball
Fondamenti di Informatica T [A-K] 2015-2016
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] 2015-2016
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] 2015-2016
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