Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ARCHITETTURE DEI CALCOLATORI Sommario Ø Ø Breve storia dei calcolatori elettronici Architettura di Von Neumann n n n Ø Ø Ø Ø La memoria centrale L’unità centrale di elaborazione I dispositivi di ingresso e uscita Il sistema operativo Reti di calcolatori Internet Basi di dati Giuliano Armano 2 Breve storia dei sistemi di elaborazione Ø Primi sistemi: meccanici n n Ø Nuove idee solo 150 anni più tardi! n Ø Pascal (1642): addizione e sottrazione Leibniz (1700): le 4 operazioni fondamentali Babbage (1834): “motore analitico”, un calcolatore programmabile. Il calcolatore era capace di eseguire istruzioni elementari per mezzo delle quali era possibile risolvere diversi problemi. Inizia era calcolatori general purpose n Uno stesso calcolatore può essere programmato per svolgere compiti diversi (es. elaborazione testo, calcoli scientifici, posta elettronica, ecc.) Giuliano Armano 3 Breve storia dei sistemi di elaborazione (cont.) Data Nome Realizzato da Commento 1834 Motore Analitico Babbage 1936 Z1 1943 COLOSSUS 1944 Mark I 1946 ENIAC I 1949 EDSAC 1951 Whirlwind I 1952 IAS 1960 PDP-1 1961 1401 1962 7094 Primo tentativo di calcolatore "digitale" (meccanico) Zuse Primo calcolatore funzionante con relé (elettromeccanico) Governo GB Primo calcolatore elettronico Aiken Primo calcolatore americano generalpurpose Eckert/Mauchley Inizia La storia dei calcolatori moderni Wilkes Primo calcolatore con programma in memoria M.I.T. Primo calcolatore real-time Von Neumann La maggior parte dei calcolatori oggi usa la stessa architettura DEC Primo minicalcolatore (venduti 50) IBM Piccolo calcolatore che diventò popolare nelle piccole imprese IBM Posizione dominante nel calcolo scientifico nei primi anni '60. Giuliano Armano 4 Breve storia dei sistemi di elaborazione (cont.) Data Nome Realizzato da Commento 1963 B5000 Burroughs 1964 360 1964 6600 1965 PDP-8 IBM CDC DEC 1970 PDP-11 DEC 1974 8080 Intel 1974 1978 1981 1985 1987 Cray DEC IBM MIPS Sun CRAY-1 VAX IBM PC MIPS SPARC 1990 RS6000 ? ? IBM ? Primo calcolatore progettato per un linguaggio di alto livello Primo progetto di una famiglia di prodotti Primo supercomputer scientifico Primo minicomputer per il mercato di massa (venduti 50.000 esemplari) Posizione dominante nel mercato dei minico mputer negli anni '70 Primo calcolatore general -purpose a 8 bit su un unico chip Primo supercomputer vettoria le Primo superminicomputer a 32 bit Inizia l'era del personal computer Primo calcolatore RISC commerciale Prima workstation RISC basata su processore SPARC Primo calcolatore su perscalare Il calcolatore… invisibile! Giuliano Armano 5 Breve storia dei sistemi di elaborazione (cont.) Ø Futuro: il calcolatore invisibile n n n n Calcolatore dedicato a specifiche funzioni L’utente non deve preoccuparsi dell’hardware, del sistema operativo ecc. Interconnessione fra diversi sistemi dedicati per scambio informazioni (es. elaboratore testi con agenda, e-mail, ecc.) Esempi in commercio (embedded): telefoni cellulari, impianto iniezione auto, elettrodomestici “intelligenti”, macchina fotografica digitale, ecc. Giuliano Armano 6 Architettura di Von Neumann Dispositivi di Ingresso (dischi, tastiera, mouse, microfono, ecc.) Memoria centrale Processore Dispositivi di Uscita (dischi, monitor, stampante, cuffia, ecc.) Unità di Controllo Unità Aritmetico-Logica Giuliano Armano 7 Architettura di Von Neumann (variante) Address Bus Memory CPU I/O Data Bus Control Bus Giuliano Armano 8 La Memoria Centrale (Central Memory) Ø Ø È il dispositivo che conserva le istruzioni e i dati dei programmi in esecuzione. Questa unità è collegata direttamente al processore. Caratteristiche: n n n n Velocità di accesso elevata (poche decine di ns) Tempo di accesso indipendente dalla posizione del dato nella memoria (RAM: Random Access Memory) Dimensione limitata (oggi max pochi GB) L’informazione viene persa se si interrompe l’alimentazione elettrica Giuliano Armano 9 La Memoria Centrale (cont.) Ø Dati memorizzati in bit (binary digit): ogni unità elementare di memoria contiene una informazione di tipo binario: 1 oppure 0. n Ø Memoria organizzata in: n n Ø Realizzazione mediante dispositivi fisici a due stati Byte: insieme di 8 bit Parola: insieme di più byte contenuto in una cella di memoria Indirizzo: n Un numero che individua univocamente una cella come posizione relativa rispetto alla prima cella, che ha posizione 0. Giuliano Armano 10 La Memoria Centrale (cont.) Ø Un valore può essere memorizzato/recuperato dalla memoria specificando l’indirizzo. n Ø Il tempo di accesso è indipendente dall’indirizzo (ecco perché il nome di RAM) Memorie ROM (Read Only Memory) n n Sono memorie di sola lettura. Vengono pre-impostate dal fabbricante. Organizzate come le memorie RAM (ROM e RAM non sono termini contrapposti!) ma il contenuto permane anche se si interrompe l’alimentazione elettrica Giuliano Armano 11 La Memoria Centrale (cont.) indirizzi dati S = scrittura L = lettura Giuliano Armano 12 Il Processore (CPU) Ø Il Processore (CPU, Central Processing Unit) contiene due elementi funzionali: n Unità di controllo: n n n n n recupera le istruzioni dalla memoria centrale decodifica le istruzioni invia gli opportuni comandi di esecuzione alle unità indicate nell’istruzione preleva i dati necessari all’esecuzione e li trasferisce all’unità di esecuzione Unità Aritmetico-Logica (ALU, Arithmetic and Logic Unit) n Modulo capace di eseguire un certo numero di operazioni aritmetiche e logiche Giuliano Armano 13 Il Processore (cont.) Nel processore vi sono alcune celle di memoria molto veloce, dette registri, per memorizzazione dati intermedi e stato della CPU. Ø Registri principali: nProgram Counter (PC): indirizzo della istruzione successiva nCurrent Instruction Register (CIR): Istruzione che deve essere eseguita nProgram Status Word (PSW): informazioni sull’ultima istruzione eseguita (ad es. risultato zero, segno risultato, riporto di una somma, ecc.) nGeneral Purpose (GPR): utilizzati per memorizzare dati e risultati intermedi Ø Giuliano Armano 14 Funzionamento elementare Ø Caricamento in memoria centrale del programma in codice binario Ø Caricamento dell’indirizzo della prima istruzione nel registro PC del processore Ø Caricamento (fetch) della prima istruzione nel registro CIR del processore e incremento di PC di 1 Ø Decodifica (decode) del codice operativo per determinare l’operazione da eseguire Giuliano Armano 15 Funzionamento elementare (cont.) PC = Program Counter DR = Data Register AR = Address Register CIR = Current Instruction Register Giuliano Armano 16 Funzionamento elementare (cont.) Ø Ø Ø Ø Ø Trasferimento degli operandi (operand fetch) nei registri del processore Esecuzione (execute) dell’istruzione Trasferimento (store) dei risultati in memoria A questo punto l’elaborazione prosegue trasferendo nel processore l’istruzione successiva. L’ultima istruzione termina il programma Giuliano Armano 17 Funzionamento elementare (cont.) PDR = Peripheral Data Register Giuliano Armano 18 Unità di Ingresso e Uscita (I/O) Ø Prendono anche il nome di unità periferiche per sottolineare il loro ruolo di completamento delle funzioni di base della CPU. n n n n Unità di memorizzazione secondaria (dischi, nastri) Unità per l’inserimento di dati (tastiera, mouse, schede di acquisizione dati, microfono, telecamera, ecc.) Unità per il recupero dei risultati (video, stampante, plotter, dispositivi audio, ecc.) Unità per il collegamento ad altri calcolatori (scheda di rete, modem, ecc.) Giuliano Armano 19 Unità di Memorizzazione Secondaria Ø Servono per archiviare in modo permanente programmi e dati n n Ø Dischi Magnetici, Ottici (CD-ROM) e Magneto-Ottici Nastri magnetici Sono caratterizzati da elevata capacità di memorizzazione e bassa velocità di accesso n n n L’accesso avviene per mezzo di organi meccanici Tempo di accesso a un disco dell’ordine dei ms (tempo d’accesso memoria centrale dell’ordine dei ns!) Il tempo d’accesso varia a seconda della posizione del dato nel dispositivo di memorizzazione Giuliano Armano 20 Interfacciamento di unità periferiche Ø Il trasferimento di dati e istruzioni fra CPU e periferiche avviene per mezzo di interfacce n Ad esempio se l’istruzione di CPU è del tipo scrivi(testo,periferica) n n n n se la periferica è un monitor, l’istruzione si traduce in comandi specifici per la scheda video se la periferica è una stampante, l’istruzione si traduce in comandi specifici per la stampante Il collegamento è governato da una unità di controllo locale. Dati e istruzioni vengono scambiati in un’area di memoria riservata detta porta Giuliano Armano 21 Il Bus di sistema Ø Un insieme di connessioni elementari lungo le quali viene trasferita l’informazione Ø Collega fra di loro il processore, la memoria e le periferiche di I/O. Ø In ogni istante di tempo il bus è dedicato a collegare due unità: una trasmette, l’altra riceve. Ø Necessità di gestire le connessioni sul bus Giuliano Armano 22 Il Bus di sistema (cont.) Ø Tre linee funzionalmente distinte: n n n Bus dati l’insieme di linee impiegate per trasmettere i dati fra mittente e ricevente (ad es. 32, 64 bit) Bus indirizzi l’insieme di linee impiegate per trasmettere l’indirizzo del dato che si deve trasferire (ad es. indirizzo della cella di memoria che contiene l’istruzione da trasferire al processore, ecc.) Bus controllo l’insieme di linee impiegate per trasmettere i codici di controllo della trasmissione (ad es.: istruzione di lettura/scrittura, esito positivo/negativo della trasmissione, ecc.) Giuliano Armano 23 Estensione architettura di von Neumann Ø Ø Ø Presenza di più processori dedicati ad es. per presentazione grafica su video Esecuzione in parallelo delle diverse fasi di una istruzione (pipelining) Uso di gerarchie di memoria n Ø Ø memorie caratterizzate da costi e prestazioni crescenti (e dimensioni decrescenti). Ad es. disco, memoria centrale, cache Processori per operazioni di I/O Architetture multiprocessore Giuliano Armano 24 La Memoria cache Ø Sono memorie più veloci della memoria centrale, più piccole e più costose n n n Ø Si trovano sullo stesso chip del processore (cache di primo livello, L1) o fuori del processore, fra la memoria e il processore (cache di secondo livello, L2). Dimensioni L1: dell’ordine di 32 KB Dimensioni L2: da poche centinaia di KB a qualche MB La cache contiene le istruzioni e i dati usati più di frequente n Il tempo medio di accesso a queste istruzioni e dati è inferiore a quello di accesso alla memoria centrale Giuliano Armano 25 Il Sistema Operativo E’ il programma di base che consente l’utilizzo efficiente ed efficace del calcolatore elettronico Ø Rende trasparenti agli utenti le operazioni di Ø n n n n Ø Gestione dei processi, cioè la gestione dei programmi in esecuzione (soprattutto sistemi multitasking e multiutente) Gestione della memoria per consentire multiprogrammazione e multitasking Gestione dei driver di periferiche (contengono le specifiche di funzionamento delle periferiche) Gestione del file system (gestione degli archivi: programmi, dati, ecc.) Contiene l’interprete dei comandi Giuliano Armano 26 Collegamento di elaboratori in rete Ø Ø Tecnologia informatica = sistemi per la raccolta, memorizzazione, elaborazione, distribuzione dell’informazioni. Oggi questi quattro aspetti stanno convergendo. n Ø Anni ‘50: si parlava di “centro di calcolo”, cioè la stanza di un’azienda, università ecc., dove si trovava il/i calcolatori deputati a soddisfare tutte le esigenze di calcolo... Oggi: un gran numero di calcolatori indipendenti e interconnessi eseguono il lavoro. Si parla di reti di calcolatori Giuliano Armano 27 Collegamento di elaboratori in rete (cont.) Ø Ø Le reti di calcolatori collegano elaboratori a diversa distanza fra loro fornendo a ciascuno servizi di rete (accesso a programmi, archivi, ecc.) La comunicazione avviene tramite scambio di messaggi in formato di pacchetti n Ø I pacchetti contengono sequenze di byte in genere di uguale lunghezza Il messaggio comprende alcuni byte di controllo all’inizio e alla fine che include la parte del messaggio che contiene l’informazione Giuliano Armano 28 Servizi di rete Ø Reti per le aziende n n n n Condivisione risorse fra sedi lontane geograficamente e fra diverse divisioni dell’azienda (magazzino, produzione, amministrazione, ecc.) Affidabilità: stessi dati presenti su più elaboratori per evitare che il guasto ad un elaboratore renda qui dati indisponibilI. Risparmio di denaro: molti piccoli elaboratori con risorse condivise in rete hanno un rapporto costo/prestazioni migliore di un unico grosso elaboratore Mezzo di comunicazione fra diverse sedi Giuliano Armano 29 Servizi di rete(cont.) Ø Reti per le persone n n n Accesso a informazioni remote: servizi bancari, assicurativi, commerciali, quotidiani personalizzati, informazioni varie, ecc. disponibili sull’elaboratore di casa (accesso a basi di dati) Comunicazione uomo-a-uomo: posta elettronica, chat videoconferenze, gruppi di discussione Intrattenimento: video a richiesta (film, programma televisivo, ecc.), giochi Giuliano Armano 30 Reti geografiche e reti locali Ø Ø Rete locale (LAN, Local Area Network): una rete privata che collega elaboratori appartenenti a uno stesso ufficio, dipartimento, azienda. Rete metropolitana (MAN): versione della LAN ingrandita n Ø Ø Esempio: rete locale del DIEE fa parte della rete di ateneo. Rete geografica (WAN): copre una nazione o un continente Connessione fra diverse reti: internetwork Giuliano Armano 31 Internet Ø Anni ‘ 70 ARPANET: rete nazionale USA dedicata alla ricerca con una dozzina di nodi (ARPA = Advanced Research Projects Agency) Ø Ø Ø Ø Anni ‘80: ARPANET si divise in MILNET (applicazioni militari) e CSNET (ricerche in ambito informatico) CSNET collegò tutte le facoltà universitarie USA In Italia rete universitaria: GARR Fine anni ‘80 CSNET si aprì ad applicazioni commerciali. Primi provider: CompuServe e MCI Giuliano Armano 32 Il protocollo di connessione Ø TCP: Transmission Control Protocol n n n n Ha il compito di controllare la trasmissione dei dati Ogni comunicazione fra due calcolatori viene divisa in pacchetti di identica lunghezza inviati separatamente attraverso la rete Ogni pacchetto può seguire un percorso diverso per arrivare a destinazione (alta affidabilità ai guasti) La comunicazione viene ricostruita a partire dai vari pacchetti dal calcolatore destinatario Giuliano Armano 33 Il protocollo di connessione (cont.) Ø IP: Internet Protocol n n Ogni nodo (elaboratore) della rete ha un proprio indirizzo IP IP lunghezza 4 byte (4 numeri, ciascuno fra 0 e 255, separati da un punto) Ad esempio il nostro server ftp (ftp-cs.diee.unica.it) ha indirizzo 192.167.131.60 I primi due numeri indicano una rete (nel ns. caso la rete dell’Università di Cagliari), il terzo numero indica una sottorete (il DIEE), il quarto numero identifica l’elaboratore all’interno della sottorete Giuliano Armano 34 Il protocollo di connessione (cont.) Ø Normalmente a ciascun indirizzo numerico è associato un nome simbolico n n n Ø Nome simbolico: più parti separate da un punto. L’ultima parte identifica la tipologia o la localizzazione geografica (it = italia, com = commerciale, edu = istruzione, ecc.) Spostandoci più a sinistra l’indirizzo diventa più specifico per indicare la rete (es. unica), la sottorete (es. diee), l’elaboratore La trasformazione da simbolico a numerico e vv. avviene a mezzo di DNS (Domain Name Server), un elaboratore che contiene la tabella di conversione Giuliano Armano 35 Protocolli basati su TCP/IP Ø telnet: per la connessione di un nodo generico alla rete Ø ftp: file transfer protocol Ø smtp: simple mail transfer protocol Ø http: hypertext transfer protocol Ø pop: post office protocol Ø ecc. Giuliano Armano 36 Basi di dati Ø Ø La memorizzazione e gestione dei dati è un’applicazione fondamentale dell’informatica DBMS (DataBase Management System): programmi per la gestione di grosse quantità di dati (ad es. sistema segreterie studenti università) n n n Informazione memorizzata secondo un modello dei dati Consentono di accedere e manipolare l’informazione in modo da garantire coerenza, riservatezza, integrità Interrogazione: individuare tutti i dati memorizzati che presentano determinate caratteristiche Giuliano Armano 37