Architettura degli Elaboratori - Presentazione del corso - Unisa
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Architettura degli Elaboratori a.a. 2017/2018 Classe 2: matricole congrue ad 1 Presentazione del corso Barbara Masucci
Docente Barbara Masucci Ø Afferente al Dipartimento di Informatica dal 2002 Ø Corsi insegnati per la Laurea Triennale in Informatica ØSicurezza su Reti (dal 2002 al 2012) ØProgrammazione II (dal 2002 al 2004 e dal 2011 al 2016) ØComplementi di Sicurezza su Reti (dal 2007 al 2009) ØArchitettura degli Elaboratori (dal 2017) Ø Corsi insegnati per la Laurea Magistrale in Informatica ØElementi di Crittografia (2015) ØProgrammazione Sicura (dal 2017)
Docente Barbara Masucci Ø bmasucci@unisa.it Ø http://www.di.unisa.it/professori/masucci Ø Studio 43, quarto piano, stecca 7 Ø Dipartimento di Informatica Orario ricevimento (a partire da Ottobre) Ø Lunedì: 13:30 – 15:00 Ø Giovedì: 13:30 – 15:00
Informazioni sul corso ØDurata: 72 ore (9 CFU) Ø 56 ore di lezione (7 CFU) Ø 16 ore di esercitazione (2 CFU) ØOrario lezioni: Ø Lunedì: 11:00 – 13:00, aula P4 Ø Martedì: 11:00 – 13:00, aula P4 Ø Giovedì: 11:00 – 13:00, aula P4 ØHome-page del corso: Ø http://www.di.unisa.it/professori/masucci/Architettura1819
Testi di riferimento D. A. Patterson , J. L. Hennessy Struttura e progetto dei calcolatori, IV ed. Zanichelli Ed., 2014 F. Preparata Introduzione alla organizzazione e progettazione di un elaboratore elettronico Franco Angeli Ed., 2012
Esami L'esame prevede una prova scritta e una prova orale Sono previsti sei appelli, di cui: Ø Tre appelli nel periodo 17 Dicembre 2018 – 22 Febbraio 2019 Ø Preappello: 17 Dicembre 2018 – 18 Gennaio 2019 Ø Primo appello: 21 Gennaio 2019 – 6 Febbraio 2019 Ø Secondo appello: 7 Febbraio 2019 – 22 Febbraio 2019 Ø Due appelli nel periodo 10 Giugno - 31 Luglio 2019 Ø Un appello nel periodo 2-13 Settembre 2019
Esami Ø Per chi segue con profitto il corso Ø Prima prova intercorso: Ottobre 2018 Ø Seconda prova intercorso: Dicembre 2018 Ø Il superamento di entrambe le prove consente di confermare il voto dello scritto o di accedere alla prova orale (facoltativa) Ø Per chi non ha seguito con profitto il corso Ø Gli appelli previsti nel corso dell’anno accademico Ø Esame scritto e orale obbligatorio
Home page del corso
Home page del corso
Come studiare Ø Prerequisiti: Allo studente non è richiesta nessuna particolare conoscenza informatica Ø La frequenza alle lezione e alle esercitazioni è fortemente consigliata Ø Gli studenti devono essere preparati a trascorrere una congrua quantità di tempo nello studio al di fuori delle lezioni Ø 1CFU = 25 ore di lavoro = 8 ore di lezione frontale + 17ore di studio individuale Ø Studiare in maniera attiva
Regole di comportamento Ad ogni lezione faremo una pausa di 5/10 minuti durante la quale potete: sgranchirvi, bere, mangiare, telefonare, controllare le vostre chat, parlare coi vostri «colleghi» o con me, etc etc…. QUINDI Durante la lezione NON farete niente di tutto ciò
Ed ora … qualcosa sui contenuti
Programma del corso Ø Architettura dei calcolatori Ø Sistemi di elaborazione: cenni storici Ø Componenti di un calcolatore Ø Esecuzione di un programma Ø Rappresentazione dell’informazione Ø Algoritmi di conversione per interi Ø Rappresentazione e aritmetica in complemento a due e in virgola mobile Ø Codifica ASCII Ø Logica digitale Ø Algebra Booleana, funzioni ed espressioni Booleane Ø Reti combinatorie: analisi, sintesi e minimizzazione Ø Moduli combinatori ed elementi di memorizzazione
Programma del corso Ø Linguaggio assembler di una macchina RISC add sub Ø Operazioni aritmetiche e logiche lw Ø Istruzioni per prendere decisioni, Chiamata di procedure sw Ø Decodifica delle istruzioni macchina Ø Il processore Ø L’Unità Aritmetico Logica (ALU) Ø Unità di elaborazione a ciclo singolo e unità di controllo Ø Unità di elaborazione con pipeline e unità di controllo Ø Misura delle prestazioni e gerarchie di memoria Ø Memoria RAM e ROM, cache Ø Gerarchie di memoria Ø Misura delle prestazioni di un calcolatore
Sistemi di elaborazione: Preistoria Ø Fin dai tempi antichi si è sentita la necessità di costruire macchine per semplificare i calcoli ed evitare errori Ø Alcuni esempi Ø Abaco o pallottoliere
I primi elaboratori Macchine non programmabili, dotate di un numero prestabilito di operazioni Ø Blaise Pascal (1623-1662) Prima macchina a ruote dentate in grado di eseguire somme e sottrazioni Ø Gottfried Wilhelm Leibniz (1646-1716) Prima macchina in grado di eseguire tutte e quattro le operazioni aritmetiche
I primi elaboratori Ø Inizio '800 Babbage Ø Macchina alle differenze Ø Utilizzo di tavole di calcolo Ø Fine '800 Hollerith Ø Censimento U.S.A. 1890 Ø Utilizzo di schede perforate Ø 1927 Bush Ø Macchina per il calcolo degli integrali
I primi elaboratori Zuse (Germania) 1938 Ø Costruzione dello Z1 (interamente meccanico) Ø Operazioni binarie in virgola mobile Ø Nastro contenente le operazioni da eseguire Ø Passaggio ai relais (elettromeccanico) nella costruzione dello Z2 e successivamente dello Z3 (1941)
I primi elaboratori Aiken (U.S.A.) 1943 Ø Costruzione del Mark I nei laboratori I.B.M. Ø Elettromeccanico Prestazioni: Ø Somma in 0.3 sec Ø Moltiplicazione in 4 sec Ø Divisione in 10 sec
Prima Generazione: ENIAC Tecnologia a valvole termoioniche Ø Electronic Numerical Integrator And Computer Ø E’ la prima macchina completamente elettronica Ø Non programmabile Ø Costruita nell’immediato dopoguerra, presso l’Università della Pennsylvania (1946) Ø Commissionata dal Ministero della Difesa degli USA per calcolare le traiettorie di bombe e proiettili Ø Caratteristiche: Ø 18.000 valvole termoioniche Ø 30 tonnellate, Alta 2,5 m, occupava 160 mq Ø Aveva bisogno di 150 kw di energia elettrica, producendo una quantità di calore con cui si poteva riscaldare un intero palazzo
ENIAC
Prima Generazione: UNIVAC Ø Primo calcolatore elettronico secondo il modello di Von Neumann Ø In grado di conservare il programma all'interno della memoria
Seconda Generazione (1955-1965) Tecnologia a transistor Ø TXO e TX2 macchine sperimentali costruite al MIT Ø Uno dei progettisti del TX2 fonda una propria società la Digital Equipment Corporation (DEC) Ø La DEC produce il PDP-1 (1961): Ø Memoria: 4k parole di 18 bit Ø Tempo di ciclo di 4µsec Ø Prestazioni simili all’IBM 7090, prezzo molto inferiore Ø Schermo grafico 512 × 512 pixel (primi videogiochi) Ø Inizia la produzione di massa
Seconda Generazione: Minicomputer DEC PDP-8 (1965) Ø Successore diretto del PDP-1 Ø Interconnessione a bus, molto flessibile Ø Architettura incentrata sull’I/O Ø Possibilità di connettere qualsiasi periferica Ø Prodotto in oltre 50.000 esemplari
Seconda Generazione: Supercomputer Ø Macchine molto potenti dedicate al number crunching Ø 10 volte più veloci dell’IBM 7090 Ø Architettura molto sofisticata Ø Parallelismo all’interno della CPU Ø Nicchia di mercato molto specifica Ø CDC 6600 (1964) Ø Progettista: Seymour Cray, poi fondatore della CRAY
Terza Generazione (1965-1980) Tecnologie LSI (Large Scale Integration) e VLSI (Very Large Scale Integration) Evoluzione dell’architettura HW Ø Microprogrammazione Ø Unità veloci floating-point Ø Processori ausiliari dedicati alla gestione dell’I/O Evoluzione dei Sistemi Operativi Ø Virtualizzazione delle risorse Ø Esecuzione concorrente di più programmi Ø Memoria Virtuale: rimuove le limitazioni dovute alle dimensioni della memoria fisica
Terza Generazione Ø IBM: Serie IBM System/360 Ø Famiglia di elaboratori con lo stesso linguaggio Ø Completa compatibilità Ø Portabilità totale delle applicazioni Ø OS comune: OS/360 Ø Digital PDP 11 Ø Architettura a bus (Unibus) Ø Prodotto in milioni di esemplari Ø Sistema operativo UNIX, indipendente dalla piattaforma
I primi microprocessori Ø Primo computer microprogrammabile su un unico chip: la CPU Intel 4004 (1971) Ø Caratteristiche: Ø Addizionatore parallelo a 4 bit Ø 16 registri a 4 bit Ø Un accumulatore e uno stack Ø Con l’aggiunta di memorie di tipo RAM e ROM, la CPU 4004 costituiva il sistema MCS-4 Ø Con la stessa tecnologia, nel 1972 uscì la CPU Intel 8008 Ø La prima in grado di operare a 8 bit
Nascita del Personal Computer Ø Fine anni 70: Apple I, progettato in un garage e venduto in scatola di montaggio Ø 1981: PC IBM con Intel 8088 e MS DOS (Disk Operating System) della minuscola Microsoft Ø 1981: PC M-20, della Olivetti Ø processore Z8001 a 16 bit, OS proprietario, PCOS Ø 1983: PC M-24, della Olivetti Ø processore 8086, MS DOS
Un moderno elaboratore Sistema elettronico digitale programmabile Sistema: Costituito da componenti (input, output, memoria, scheda madre, processore,…) che interagiscono in modo organico fra loro Elettronico digitale: Sfrutta componenti elettronici digitali Programmabile: Il comportamento del sistema è flessibile e specificato mediante un programma, ossia un insieme di ordini
Il linguaggio dei computer Ø Che lingua parla un elaboratore? Ø Come codificare e memorizzare opportunamente dati e informazioni? Ø Come impartire le giuste istruzioni per risolvere un problema?
Il linguaggio dei computer Ø I computer «parlano» in binario Ø Alfabeto costituito da due soli simboli, 0 e 1, corrispondenti a Ø Spento (OFF) Ø Acceso (ON) Ø Questi due simboli, detti bit = binary digit corrispondono ai due stati possibili di un circuito elettrico
Rappresentazione Binaria Ø Cosa possiamo rappresentare in binario? Ø Numeri (interi, col segno, con la virgola) Ø Parole Ø Istruzioni Ø Programma Ø Idea fondamentale su cui sono costruiti i calcolatori: Ø Programmi e dati rappresentati da numeri
Componenti di un calcolatore Le componenti di un elaboratore si dividono in cinque categorie Ø Dispositivi di input Ø Dispositivi di output Ø Memoria Ø Unità di elaborazione dati Ø Unità di controllo Le ultime due componenti sono spesso unificate in un’unica componente: il processore
Processore Ø È il cuore di un elaboratore elettronico Ø Si compone di Ø Unità di elaborazione dati Ø Unità di controllo Ø Realizzato con milioni di piccoli componenti elementari (transistor) Ø È impossibile da studiare e da capire partendo dal singolo transistor Ø Abbiamo necessità di astrazione (tralasciare dettagli non necessari)
Componenti di un processore Ø All’interno di un processore abbiamo due tipi di componenti: Ø Combinatorie (senza memoria) Ø Sequenziali (con memoria) Ø Studieremo entrambi i tipi di componenti, allo scopo di capire come è fatto un processore Ø In particolare, lo studio delle componenti combinatorie comporterà lo studio dell’Algebra Booleana
Processore MIPS Ø Studieremo una versione semplificata del processore MIPS Ø Microprocessor without Interlocked Pipeline Stages Ø Architettura RISC (Reduced Instruction Set Computer), proposta nel 1981 da MIPS Computer Systems Inc. Ø Perché questa scelta? Ø Si tratta di un processore realmente utilizzato Ø Nintendo64, Sony PS, Sony PS2, Sony PSP Ø La sua architettura e il suo set di istruzioni sono molto semplici
Processore MIPS Ø Considereremo due diverse implementazioni hardware del set di istruzioni del MIPS Ø Una implementazione di base (a ciclo singolo) Ø Una implementazione più realistica, basata su pipeline
Implementazione a Ciclo Singolo Ø In questa implementazione, tutte le istruzioni hanno la stessa durata (ciclo singolo di clock) Ø Esamineremo una implementazione che comprende un insieme di istruzioni ridotto Ø Istruzioni di accesso alla memoria Ø Istruzioni aritmetico-logiche Ø Istruzioni di salto condizionato Ø I concetti descritti per l’implementazione di questo set di istruzioni sono universali Ø Su di essi si basa la maggior parte dei calcolatori
Implementazione a Ciclo Singolo Ø Vedremo uno schema astratto dell’implementazione di un sottoinsieme delle istruzioni MIPS Ø Tale schema comprende diverse unità funzionali: Ø Program Counter (PC) Ø Memoria Istruzioni Ø Banco dei Registri Ø Unità Aritmetico Logica Ø Memoria Dati
Implementazione con Pipeline Ø Nella implementazione con pipeline c’è una sovrapposizione temporale dell’esecuzione delle varie istruzioni Ø L’idea su cui si basa è la stessa utilizzata nelle catene di montaggio (assembly line) Ø Introdotte da Henry Ford ai primi del ‘900 Ø Consentono di ridurre i tempi necessari per la realizzazione di un manufatto complesso, dividendo il lavoro degli operai in compiti
Esempio: il bucato Ø Supponiamo di dover fare il bucato e che questo consista nelle seguenti attività Ø Mettere la biancheria nella lavatrice Ø Terminato il lavaggio, mettere la biancheria bagnata nell’asciugatrice Ø Terminata l’asciugatura, procedere alla stiratura Ø Terminata la stiratura, riporre la biancheria nell’armadio Ø L’approccio non basato su pipeline procede ad un nuovo ciclo per il bucato solo quando il precedente è terminato Ø L’approccio basato su pipeline consente di risparmiare tempo, effettuando più cicli di bucato contemporaneamente
Il bucato con pipeline Ø Nell’approccio basato su pipeline Ø Quando la lavatrice termina il lavaggio del primo carico, viene subito caricata per il secondo ciclo, mentre l’asciugatrice asciuga il primo carico Ø Quando l’asciugatrice termina il primo carico, viene subito caricata per il secondo ciclo, mentre viene stirato il primo carico e la lavatrice procede al terzo carico Ø Quando la stiratura del primo carico viene terminata e i panni vengono riposti nell’armadio, si passa a stirare il secondo carico, mentre l’asciugatrice viene caricata per il terzo ciclo e la lavatrice per il quarto ciclo
Rappresentazione grafica
La Memoria Ø La memoria è il luogo dove vengono tenuti i programmi in esecuzione e i dati di cui essi necessitano Ø Possiamo immaginare la a memoria come un grande vettore unidimensionale di “parole”, o “celle” in sequenza Ø Ogni parola di memoria ha un indirizzo attraverso il quale si può accedere ad essa Ø Studieremo varie tecnologie per la realizzazione dei diversi tipi di memoria
La Memoria La memoria è caratterizzata a diversi parametri Ø Dimensione o capacità Indica la quantità di dati memorizzabili Ø Velocità o tempo di accesso Indica l’intervallo di tempo tra la richiesta del dato e il momento in cui viene reso disponibile Ø Consumo Indica la potenza media assorbita Idealmente un calcolatore dovrebbe avere quanta più memoria possibile, ad alta velocità, e basso consumo
Gerarchie di memoria Ø Non è possibile avere un’unica memoria con tutte le caratteristiche ideali Ø Possiamo organizzare una gerarchia in cui Ø Le memorie piccole, più veloci (e costose) sono poste ai livelli alti, vicino al processore Ø Le memorie ampie, più lente (e meno costose) sono poste ai livelli più bassi Memoria Memoria CPU … M1 M2
Gerarchia di memoria Ø L’obiettivo della gerarchia di memoria è quello di creare l’illusione di avere a disposizione una memoria che sia Ø Grande Ø Veloce Ø Economica Ø Vedremo come realizzare una gerarchia di memoria
Nella prossima lezione Ø Che lingua parla un elaboratore? Ø Come codificare e memorizzare opportunamente dati e informazioni? Ø Come impartire le giuste istruzioni per risolvere un problema?
Puoi anche leggere