Architettura degli Elaboratori - Presentazione del corso - Unisa

Pagina creata da Alessio Baldi
 
CONTINUA A LEGGERE
Architettura degli Elaboratori - Presentazione del corso - Unisa
Architettura
degli Elaboratori
              a.a. 2017/2018
    Classe 2: matricole congrue ad 1
                                Presentazione
                                  del corso

  Barbara Masucci
Architettura degli Elaboratori - Presentazione del corso - Unisa
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)
Architettura degli Elaboratori - Presentazione del corso - Unisa
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
Architettura degli Elaboratori - Presentazione del corso - Unisa
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
Architettura degli Elaboratori - Presentazione del corso - Unisa
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
Architettura degli Elaboratori - Presentazione del corso - Unisa
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
Architettura degli Elaboratori - Presentazione del corso - Unisa
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
Architettura degli Elaboratori - Presentazione del corso - Unisa
Home page del corso
Architettura degli Elaboratori - Presentazione del corso - Unisa
Home page del corso
Architettura degli Elaboratori - Presentazione del corso - Unisa
Home page del corso
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