Architettura dei Calcolatori - robotica educativaArchitettura dei Calcolatori Ing. L.Testa -...

36
Architettura dei Calcolatori Ing. L.Testa - Fondamenti di Informatica Introduzione Che cos’è un calcolatore? Come funziona un calcolatore? è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso punto di vista in questo corso, il punto di vista prevalente è quello del calcolatore come macchina programmabile, ovvero in grado di eseguire programmi

Transcript of Architettura dei Calcolatori - robotica educativaArchitettura dei Calcolatori Ing. L.Testa -...

  • Architettura dei Calcolatori

    Ing. L.Testa - Fondamenti di Informatica 2

    Introduzione

    Che cos’è un calcolatore? Come funziona un calcolatore?

    è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso punto di vista

    in questo corso, il punto di vista prevalente è quello del calcolatore come macchina programmabile, ovvero in grado di eseguire programmi

  • Ing. L.Testa - Fondamenti di Informatica 3

    Che cos’è un calcolatore?

    “il calcolatore è un esecutore di programmi”punto di vista degli utenti finaliviene considerato l’uso del calcolatore

    “il calcolatore è un sistema”punto di vista funzionaleviene considerato il suo funzionamento e la sua architettura

    “il calcolatore è una macchina programmabile”punto di vista della programmazione

    Ing. L.Testa - Fondamenti di Informatica 4

    Calcolatori e applicazioni

    Che cos’è un calcolatore?un calcolatore è una macchina programmabile, ovvero in grado di eseguire programmi

    Questa definizione descrive, in parte, il punto di vista degli utenti dei calcolatori

    l’utente di un calcolatore interagisce con il calcolatore attraverso una o più applicazioniuna applicazione (o programma applicativo o programma) consente di far svolgere al calcolatore una molteplicità di operazioni

    ciascuna operazione di una applicazione costituisce uno strumento per l’utente dell’applicazione, da utilizzare per perseguire un certo scopo

  • Ing. L.Testa - Fondamenti di Informatica 5

    Tipologie di applicazioni informatiche

    Esistono moltissime tipologie di applicazioni per i calcolatori

    dai giochi alla gestione della telefonia

    dalla gestione di immagini e documenti alla possibilità di comunicare con altre persone e calcolatori

    dalla gestione alla simulazione di sistemi complessi

    dal supporto delle attività individuali alla gestione dei sistemi informativi di grandi organizzazioni

    Fondamenti di Informatica 6

    Applicazioni e risoluzione di problemi

    La possibilità di poter eseguire su un medesimo calcolatore applicazioni diverse rende il calcolatore una macchina che può essere utilizzata da un utente per la risoluzione di problemi

    un utente può risolvere un problema usando una applicazione e uncalcolatore se è in grado di fornire all’applicazione eseguita dal calcolatore le istruzioni dettagliate di come il problema possa essere risolto

    Dal punto di vista dell’utente, con riferimento all’esecuzione di una applicazione

    le istruzioni che è possibile richiedere al calcolatore di eseguire sono quelle corrispondenti alle richieste di esecuzione delle operazioni fornite dall’applicazioneciascuna applicazione può essere caratterizzata

    dall’insieme delle operazioni che fornisce (e dalle regole per usarle)dalla tipologia di informazioni che permette di gestire

  • Fondamenti di Informatica 7

    Uso di applicazioni

    Per usare una applicazione, l’utente deve conoscere l’insieme delle operazioni che l’applicazione fornisce, comprenderne il significato e saperne richiedere l’esecuzione

    la capacità di comprendere e usare una applicazione è abbastanzaindipendente dalla comprensione del funzionamento del calcolatore

    è utile comprendere i principi e i meccanismi su cui è basata l’interazione con il calcolatore, e in particolare l’organizzazione e l’uso delle interfacce grafiche

    Fondamenti di Informatica 8

    Applicazioni e interfacce

    Una applicazione viene utilizzata tramite la sua interfaccia utente

    l’interfaccia di una applicazione è il mezzo di interazione tra l’utente (utente dell’applicazione) e il calcolatore (esecutore dell’applicazione)in generale, le applicazioni moderne dispongono di interfacce utente grafiche (GUI)

    l’interazione con una GUI avviene ad esempio selezionando menu e bottoni con il mouse

    alcune applicazioni sono basate su una interfaccia a caratteri

    in questo caso, l’interazione può avvenire mediante la digitazione di una sequenza di comandi

  • Fondamenti di Informatica 9

    Interazione con una applicazione

    L’uso di una applicazione richiede la comprensionedelle operazioni che l’applicazione permette di eseguire

    della corrispondenza tra gli elementi dell’interfaccia dell’applicazione e i dati e le operazioni

    della modalità di richiesta dell’esecuzione di ciascuna operazione

    Fondamenti di Informatica 10

    Architettura dei calcolatori

    Che cos’è un calcolatore? Come funziona un calcolatore?un calcolatore è un sistemaun sistema è un oggetto costituito da molte parti (componenti) che interagiscono, cooperando, al fine di ottenere un certo comportamento

    Studiare l’architettura di un sistema vuol direindividuare ciascun componente del sistemacomprendere i principi generali di funzionamento di ciascun componentecomprendere come i vari componenti interagiscono tra di loro

  • Fondamenti di Informatica 11

    Hardware e software

    La prima decomposizione di un calcolatore è relativa alle seguenti macro-componenti:hardware

    la struttura fisica del calcolatore, costituita da componenti elettronici ed elettromeccanici

    softwarel’insieme dei programmi che consentono all’hardware di svolgere dei compiti utiliil software comprende il software di base (tra cui il sistema operativo) e il software applicativo

    Fondamenti di Informatica 12

    Organizzazione a livelli

    Hardware e software sono organizzati a livelli (o strati)

    ciascun livello corrisponde a una macchina (reale o virtuale) in grado di eseguire un proprio insieme di operazioni

    ciascun livello fornisce un insieme di operazioni più semplici da utilizzare rispetto a quelle del livello sottostante

    ciascun livello è realizzato in termini dell’insieme di operazioni fornite dal livello immediatamente sottostante

    Software applicativo

    Software di base

    Hardware

  • Fondamenti di Informatica 13

    Software e macchine virtuali

    In generale, il software ha lo scopo di mostrare ai suoi utenti il calcolatore come una macchina virtuale più semplice da usare rispetto all’hardware che viene effettivamente utilizzato

    per macchina virtuale si intende una macchina che fisicamente non esiste nella realtà, ma di cui si può avere la sensazione dell’esistenzail software di base ha lo scopo di mostrare all’utente il calcolatore come una macchina virtuale più semplice da gestire eprogrammare rispetto all’hardware utilizzatoil software applicativo mostra all’utente il calcolatore come una macchina virtuale che può essere utilizzata per la risoluzione di problemi

    il software applicativo viene realizzato in termini della macchina virtuale mostrata dal software di base, e dipende solo parzialmente dall’hardware utilizzato

    Fondamenti di Informatica 14

    Organizzazione a livelli

    Nell’organizzazione a livelli, l’hardware è l’unica macchina reale, mentre gli strati software corrispondono a macchine virtuali

    il repertorio di operazioni (chiamate istruzioni) che l’hardware sa eseguire direttamente è chiamato linguaggio macchina del calcolatore

    il linguaggio macchina è composto da istruzioni estremamente elementari, ma che il calcolatore sa eseguire in modo molto efficiente

    le diverse macchine e i relativi insiemi di operazioni sono via via più astratti

    nel senso che il significato di ciascuna operazione è sempre più vicino alla logica dell’utente e più lontano dalla logica del calcolatore come dispositivo elettronicoè per questo motivo che sono via via più semplici da usare

    le diverse macchine sono comunque ugualmente espressivealla fin fine, l’unico responsabile dell’esecuzione del software è comunque l’hardware disponibile

  • Fondamenti di Informatica 15

    Tipologie di calcolatori

    Esistono diversi tipi di calcolatori:Personal computer

    Dotati di monitor e tastiera separati dall’unità centraleDotati di diversi dispositivi di memoria di massa interni o esterni all’unità centrale

    Notebook (portatile)Versione portatile del personal computerUsualmente dotata di caratteristiche (leggermente) inferiori in termini di potenza di calcolo e memorizzazioneIn alcuni casi la differenza è solo in espandibilità vs portabilità

    Handheld computer / PDA / SmartPhoneDi dimensioni limitateUsualmente privi di memorie di massa tradizionali

    Sensori intelligentiOggi la tendenza è di avere sistemi sempre più piccoli e integrati

    Fondamenti di Informatica 16

    Tipologie di calcolatori

    WorkstationVersione “potente” del personal computerOrientate alle applicazioni grafiche o CADSpesso condivise da più utenti

    Mainframe e minicomputerIn passato denotavano calcolatori di elevata potenza di calcolo e memorizzazioneOrientati all’elaborazione dati per l’intera aziendaCondivisibili da più utenti (anche contemporaneamente)

    ClusterSistemi di calcolo basati sull’aggregazione di più macchineUtilizzati per applicazioni computazionalmente pesanti

    Calcolo numerico, simulazioni, etc

  • Fondamenti di Informatica 17

    Architettura del calcolatore:il modello di Von Neumann

    Data la diversità di dispositivi e la complessità dell’architettura hardware di un calcolatore reale, serve un modello comune:

    Tutte le diverse tipologie di calcolatori sono accomunate dalla medesima architettura logica

    Macchina di Von Neumann: modello semplificato dei calcolatori moderni

    Von Neumann è stato il progettista (intorno al 1945) del primo calcolatore in cui i programmi potevano essere memorizzati anziché codificati mediante cavi e interruttori

    Fondamenti di Informatica 18

    La macchina di Von Neumann

    La macchina di Von Neumann è composta da quattro tipologie di componenti funzionali fondamentali:

    unità centrale di elaborazione (CPU)componente in grado di eseguire istruzioni per l’elaborazione dei datisvolge anche funzioni di controllo (ovvero, di coordinamento) delle altre componenti funzionali

    memoria centralememorizza e fornisce l’accesso a dati e programmi

    interfacce di ingresso e uscita (I/O)componenti di collegamento con le periferiche del calcolatorele periferiche sono dispositivi (esterni al calcolatore) che consentono lo scambio di dati tra calcolatore e utente

    bussvolge la funzionalità di trasferimento di dati e di informazioni di controllo tra le varie componenti funzionali

  • Fondamenti di Informatica 19

    La macchina di Von Neumann

    Fondamenti di Informatica 20

    Funzionalità nella macchina di Von Neumann

    Il funzionamento di un calcolatore può essere quindi descritto in termini di poche componenti (macro-unità) funzionali

    ciascuna macro-unità è specializzata nello svolgimento di una tipologia omogenea di funzionalità, ad eccezione dell’unità centrale di elaborazione, che svolge sia funzionalità di elaborazione che dicontrollo

  • Fondamenti di Informatica 21

    Funzionamento (in sintesi) della macchina di Von Neumann

    Il processore estrae le istruzioni dalla memoria e le esegueLe istruzioni possono comportare operazioni di manipolazione deidati

    Oppure operazioni di trasferimento dei dati

    I trasferimenti di dati attraverso elementi funzionali diversi avvengono attraverso il bus di sistema

    Le fasi di elaborazione si susseguono in modo sincrono rispetto ad un orologio di sistema detto clock

    Durante ogni intervallo di tempo l’unità di controllo (parte del processore) stabilisce la funzione da svolgere

    L’intera macchina opera in maniera sequenziale

    Fondamenti di Informatica 22

    Rappresentazione delle informazioni

    Lo scopo fondamentale di un calcolatore è di permettere l’elaborazione di informazioni

    le informazioni sono rappresentate sotto forma di datiun dato è una informazione elementare

    I dati che un calcolatore sa rappresentare ed elaborare direttamente sono molto semplici

    i dati vengono rappresentati nel calcolatore mediante delle codifiche binarie (che studieremo in seguito)

  • Fondamenti di Informatica 23

    Elaborazione

    Le istruzioni del linguaggio macchina di un calcolatore corrispondono ad operazioni elementari di manipolazione dei dati

    operazioni aritmetichesomma, prodotto, ...

    operazioni relazionali (confronto tra dati)

    operazioni su caratteri e valori di verità

    altre operazioni numerichecalcolo di logaritmi, funzioni trigonometriche, ...

    Un calcolatore sa dunque svolgere poche tipologie di operazioni elementari

    ma le sa eseguire in modo molto efficiente

    un calcolatore può eseguire decine o centinaia di milioni di istruzioni del linguaggio macchina al secondo

    L’elaborazione dei dati viene svolta dall’unità aritmetico-logica (ALU), che è un componente dell’unità centrale di elaborazione

    Fondamenti di Informatica 24

    Memorizzazione

    Un calcolatore ha la necessità di memorizzare, in modo temporaneo o permanente, i dati per la rappresentazione delle informazioni diinteresse e i programmi per la loro elaborazione

    La memoria è l’unità responsabile della memorizzazione dei datiuna unità di memoria è organizzata in celle

    a ciascuna cella è associato un indirizzo, che la identifica

    ciascuna cella è in grado di memorizzare un singolo dato

    Una unità di memoria fornisce due sole operazioni

    memorizzazione di un valore in una cella (scrittura)dato un valore da memorizzare e l’indirizzo di una cella, memorizza il valore nella cella, modificando pertanto lo stato della memoria

    accesso al valore memorizzato in una cella (lettura)dato l’indirizzo di una cella, restituisce il valore memorizzato nella cella

  • Fondamenti di Informatica 25

    Trasferimento

    Il bus è il componente del calcolatore dedicato al trasferimento dei dati e delle informazioni di controllo tra le varie parti del calcolatore

    il bus è l’insieme dei collegamenti su cui vengono trasferiti i dati e i segnali di controllo in un calcolatore

    L’idea alla base del bus è la seguentenel calcolatore è necessario collegare tutti i componenti tra di loro (per permettere lo scambio di dati tra componenti)ci sono due modalità per collegare un insieme di componenti

    collegare ciascun componente con ogni altro componentecollegare tutti i componenti a un unico insieme di linee (il bus, appunto)

    l’uso del bus favorisce la modularità e l’espandibilità del calcolatore

    Fondamenti di Informatica 26

    Controllo

    Il coordinamento tra le varie parti del calcolatore è svolto dall’unità di controllo

    l’unità di controllo è un altro componente dell’unità centrale di elaborazione

    ogni componente dal calcolatore esegue solo le azioni che gli vengono richieste dall’unità di controllo

    Caratteristiche dell’attività di controllo svolta dall’unità di controllo

    il controllo avviene in modo sincrono rispetto alla scansione temporale imposta dall’orologio di sistema (clock)

    il controllo consiste nel coordinamento dell’esecuzione temporale delle funzioni che devono essere svolte sia internamente all’unità di elaborazione che negli altri elementi funzionali

  • Fondamenti di Informatica 27

    Unità centrale di elaborazione (CPU)

    L’unità centrale di elaborazione (o processore) è composta dall’unità di controllo e dall’unità aritmetico-logica

    l’unità centrale di elaborazione controlla l’esecuzione di un programma (memorizzato in memoria centrale sotto forma di una sequenza di istruzioni del linguaggio macchina) eseguendo ordinatamente le istruzioni del programma

    Fondamenti di Informatica 28

    Periferiche e interfacce di ingresso-uscita

    Un calcolatore può essere collegato a diversi dispositivi di ingresso e/o uscita (chiamati periferiche)

    ad esempio, la tastiera, il mouse, lo schermo, le stampanti, il modem

    anche le memorie di massa (ad esempio, le unità disco e il lettore di CD-ROM) sono considerati periferiche

    Nella macchina di Von Neumann, le periferiche non fanno parte del calcolatore

    ogni periferica viene controllata mediante un’opportuna interfaccia

    una interfaccia ha il compito di tradurre i segnali interni del calcolatore in un formato comprensibile alla periferica stessa, e viceversa

  • Fondamenti di Informatica 29

    Tecnologia dei calcolatori

    La conoscenza dell’architettura della macchina di VonNeumann ci consente di studiare alcuni aspetti tecnologici relativi all’hardware dei calcolatori

    Vengono ora introdotti alcuni principi di funzionamento e alcune caratteristiche tecnologiche dei componenti effettivamente utilizzati nei calcolatori

    Fondamenti di Informatica 30

    Codifica dei dati

    In un calcolatore, i dati (e le istruzioni) sono codificati in forma binaria, ovvero mediante delle sequenze finite di cifre 0 e 1

    il bit la più piccola unità di informazione in un calcolatoreun bit può avere valore 0 oppure 1la parola “bit” è una forma contratta per binary digit (cifra binaria)

    ciascun bit è memorizzato da una cella elementare di memoria, fisicamente realizzata da un dispositivo elettronico in cui sonochiaramente distinguibili due stati

    questi due stati vengono fatti corrispondere allo 0 e all’1

    Un bit è una unità di informazione troppo piccola per essere usata individualmente

    i dati vengono codificati sotto forma di sequenze di bitciascuna sequenza di bit può essere interpretata come un dato solo se viene opportunamente decodificata

  • Fondamenti di Informatica 31

    Unità centrale di elaborazione (CPU):il microprocessore

    L’unità centrale di elaborazione è solitamente realizzata fisicamente sotto forma di microprocessorei microprocessori sono dispositivi elettronici estremamente complessi

    Fondamenti di Informatica 32

    Unità centrale di elaborazione (CPU):il microprocessore – qualche esempio…

    0.250.13

    9.500.00044.000.000

    450 MHz1,4 GHz

    1999Pentium III

    0.1890 nm

    42.000.000169.000.000

    1,4 GHz3,73 GHz

    2001Pentium 4

    0.350.25

    7.500.00019.000.000

    233-533 MHz1997Pentium II

    0.80.35

    3.100.0003.300.000

    60-200 MHz1993Pentium

    10.6

    1.200.0001.600.000

    25-100 MHz198980486

    329.0005-10 MHz19788086

    Tecnologia(micron)

    N. TransistorsFrequenza(Hz)

    AnnoProcessore

  • Fondamenti di Informatica 33

    Unità centrale di elaborazione (CPU):Schema architetturale (semplificato)

    Fondamenti di Informatica 34

    Unità centrale di elaborazione (CPU):Componenti

    Unità di controllo (UC)Unità aritmetico-logica (ALU)Bus internoRegistri

    PC program counterContiene l’indirizzo della prossima istruzione da eseguire

    IR instruction registercontiene l’istruzione che deve essere eseguita

    MAR registro di indirizzamento memoriaindirizzo della cella di memoria che deve essere acceduta o memorizzata

    MDR registro dati di memoriadato che è stato acceduto o che deve essere memorizzato

    Registro di stato (o dei flag)contiene informazioni sull’esito delle operazioni eseguite

    Registri genericiper la memorizzazione degli operandi o del risultato di una operazione

  • Fondamenti di Informatica 35

    Unità centrale di elaborazione (CPU):Funzionamento

    L’unità di centrale di elaborazione esegue una istruzione svolgendo le seguenti tre operazioni di base

    (lettura) fetchlegge dalla memoria la prossima istruzione da eseguire

    (decodifica) decodeDetermina (decodifica) il tipo di istruzione che deve essere eseguito

    (esecuzione) executerichiede lo svolgimento di tutte le azioni necessarie per l’esecuzione dell’istruzione (compreso l’incremento automatico del registro contatore delle istruzioni) — ciascuna azione viene richiesta al componente opportuno

    L’esecuzione di un programma avviene eseguendo ordinatamente le istruzioni del programma,

    svolgendo ripetutamente il ciclo fetch-decode-execute

    Fondamenti di Informatica 36

    Unità centrale di elaborazione (CPU):Funzionamento - 1

    L’esecuzione di un programma ha inizio con il caricamento della locazione della prima istruzione nel PC

    La UC manda un segnale di controllo affinché il contenuto del PC sia spostato nel MAR

    Viene inviato un segnale di controllo (read) alla memoria per effettuare la lettura del dato posto all’indirizzo specificato nel MAR

    In conseguenza del passo precedente il dato viene reso disponibile nel MDR (la UC attende fino all’arrivo del segnale MFC - memory function completed)

  • Fondamenti di Informatica 37

    Unità centrale di elaborazione (CPU):Funzionamento - 2

    La UC manda un segnale di controllo affinché il contenuto del MDR (registro dati) sia spostato nel IR (registro istruzione corrente)

    La UC decodifica l’istruzione corrente

    La UC genera la sequenza di segnali di controllo necessari ad eseguire l’istruzione (vedi esempio slide successiva)

    Il PC viene incrementato al fine di puntare alla prossima istruzione

    Fondamenti di Informatica 38

    Unità centrale di elaborazione (CPU):Funzionamento – 3 (esempio)

    La UC genera la sequenza di segnali di controllo necessari ad eseguire l’istruzione

    Esempio: caricamento di un dato presente in memoria nel registro A

    Il valore del PC incrementato di 1 viene spostato nel IR (registro indirizzi)

    Viene inviato un segnale di controllo (read) alla memoria per effettuare la lettura del dato posto all’indirizzo specificato nel IR

    In conseguenza del passo precedente il dato viene reso disponibile nel registro dati MDR (la UC attende il segnale MFC)

    La UC manda un segnale di controllo affinché il contenuto del registro dati MDR sia spostato nel registro A

  • Fondamenti di Informatica 39

    Unità centrale di elaborazione (CPU):Tipologia di istruzioni eseguibili

    Le istruzioni eseguite dal processore possono essere classificate in tre categorie principali:

    Istruzioni aritmetiche/logicheSomme, sottrazioni, moltiplicazioni, divisioni, etc.And, or, minore, maggiore

    Istruzioni di salto (... condizionale, chiamate a sottoprogramma)

    Istruzioni di trasferimento dei datiDa un registro all’altroDa uno dei registri alla memoria o viceversa

    Fondamenti di Informatica 40

    Esempio: Fase di fetch

    0000000000PC

    MAR

    0100000000010000

    Memoria centrale (MM)

    0

    MDR

    1023

    IR

    0000000000

    0100000000010000

    0100000000010000

    0000000001

    Passo 1 Passo 2

    Passo 3

    Passo 4

  • Fondamenti di Informatica 41

    Esempio: Fase di decode

    0100000000010000IR

    Codice operativo 0100 = scrivi il registro B in memoria

    Fondamenti di Informatica 42

    Esempio: Fase di esecuzione

    MAR

    Memoria centrale (MM)

    0

    MDR

    1023

    0001000000011111B

    0100000000010000IR 16

    Valore del registro B (es. 4127)

    Indirizzo operando00000010000 = cella 16

    0000010000

    0001000000011111

    0001000000011111

    Passo 1

    Passo 2

    Passo 3

  • Fondamenti di Informatica 43

    Unità centrale di elaborazione (CPU):le interruzioni (interrupt)

    Al fine di gestire richieste provenienti dalle periferiche può essere necessario interrompere la normale esecuzione di un programma

    La periferica segnala sue particolari necessità attraverso una interruzione (interrupt)Ad ogni passo di esecuzione la UC verifica lo stato del registro delle interruzioni

    Se si è verificata una interruzione:Lo stato del processore (registri) viene salvato in memoria

    Viene attivata una speciale procedura di gestione delle interruzioni

    Quando la procedura di gestione delle interruzioni termina lo stato del processore viene ripristinato ed il programma viene ripreso

    Fondamenti di Informatica 44

    Unità centrale di elaborazione (CPU):caratteristiche dei microprocessori

    Caratteristiche principali di un microprocessorerepertorio di istruzioni

    le istruzioni del linguaggio macchina del processorevelocità (misurata come frequenza del clock)

    la frequenza del clock misura la durata del ciclo macchina, che è l’unità di tempo all’interno del processoreva osservato che l’esecuzione di ciascuna istruzione richiede solitamente più cicli macchina

    ampiezza del busnumero di bit nel bus interno del processore

    co-processorei moderni processori sono integrati a co-processori specializzati (ad esempio, il co-processore matematico)

    cacheuna memoria veloce locale al processore, che consente una accelerazione nell’esecuzione dei programmi

  • Fondamenti di Informatica 45

    Il bus di sistema

    Il bus di sistema collega tra loro i vari elementi del calcolatore

    In ogni istante il bus è dedicato a collegare due unità, una trasmette ed una riceve

    Il processore seleziona la connessione da attivare e indica l’operazione da svolgere

    Approccio master-slave

    CPU = master

    Periferiche = slave

    Fondamenti di Informatica 46

    Il bus di sistema

    Il bus è suddiviso in tre insiemi di linee:Bus dati

    utilizzato per trasferire dati (es. fra memoria e CPU, fra CPU einterfacce di I/O)

    Bus indirizziidentifica la posizione delle celle di memoria un cui la CPU va a scrivere o leggere

    Bus di controlloin cui transitano i segnali di controllo che consentono di selezionare le unità coinvolte in un trasferimento dati (sorgente e destinazione), di definire la direzione dello scambio (scrittura o lettura), informazioni di temporizzazione

  • Fondamenti di Informatica 47

    Il bus di sistema: vantaggi e svantaggi

    Semplicità: 1 sola linea di connessione per qualunque # di dispositivi

    Estendibilità: nuovi dispositivi possono essere aggiunti tramite un’interfaccia al bus senza influenzare l’HW preesistente

    Standardizzabilità: definizione di normative che consentono a periferiche di costruttori diversi di interagire correttamente

    Lentezza: l’uso in mutua esclusione del bus inibisce almeno parzialmente la parallelizzazione delle operazioni di trasferimento di dati tra dispositivi

    Limitata capacità: al crescere del numero di dispositivi la presenza di una sola linea comporta un limite alla capacità di trasferire dati

    Sovraccarico della CPU: l’unità centrale viene coinvolta in tutte le operazioni di trasferimento di dati

    Fondamenti di Informatica 48

    La memoria centrale

    La memoria centrale (o principale) è la componente del calcolatore in cui vengono immagazzinati e da cui vengono acceduti i dati e i programmi

    Una memoria:si compone di una sequenza di celle (o locazioni)ogni cella di memoria è in grado di memorizzare una parola di memoria (ovvero, un sequenza di bit di lunghezza fissata)

    la lunghezza di una parola dipende dalla macchina

    ogni cella è caratterizzata daun indirizzo, che è un numero che identifica la cella e ne consente l’accessoun valore, che è la sequenza di bit memorizzata dalla cella fornisce le operazioni di lettura e scrittura

  • Fondamenti di Informatica 49

    La memoria centrale: schema semplificato

    Fondamenti di Informatica 50

    La memoria centrale: caratteristiche

    Caratteristiche principali:

    capacitàil numero di bit che possono essere memorizzati, misurati in byte (e multipli del byte)

    velocità di accessomisura la velocità di esecuzione delle operazioni di lettura/scrittura

    organizzazione/lunghezza parola

    volatilitàIndica la capacità o meno di mantenere le informazioni memorizzate in mancanza di alimentazione elettrica (RAM, ROM)

  • Fondamenti di Informatica 51

    La memoria centrale: RAM e ROM

    Spesso ci si riferisce alla memoria centrale come memoria RAMRAM Random Access Memory (memoria ad accesso casuale)Viene cosi detta una memoria il cui tempo di accesso sia indipendente dall’indirizzo della parola alla quale si vuole accedereSi tratta di una memoria volatileI dati possono essere sia letti che scritti

    Altri tipi di memoria presenti in un calcolatore sono le memorie ROMROM Read Only MemoryHanno caratteristiche generali simili alle RAMUn tempo di accesso notevolmente maggioreSi tratta di memorie permanentiI dati possono essere solamente lettiSono tipicamente utilizzate per memorizzare quei dati e programmi che servono al momento dell’accensione dell’elaboratore, prima del caricamento del S.O.

    Fondamenti di Informatica 52

    Memoria vs CPU

    Le CPU sono sempre state più veloci delle memorie L’aumento di integrazione ha consentito di progettare CPU pipelined, superscalari, molto velociNelle memorie è aumentata più la capacità che la velocità

    L’accesso alla memoria passa attraverso il busLa frequenza di funzionamento del bus è molto più bassa di quella della CPUGran parte delle istruzioni eseguite sono di accesso alla memoria

    Esempio:Il tempo di accesso alla RAM è di ~30-70 nsUn processore con clock ad 1Ghz esegue in media 1 istruzione ogni ns

    Se un processore deve accedere alla memoria, si blocca per molto tempo in attesa dei dati

    La velocità effettiva del sistema computer è quella della memoria, non quella della CPULa memoria è un “collo di bottiglia” per le prestazioni del sistema computer

    Migliorare la velocità di accesso alla memoria significa migliorare notevolmente le prestazioni d’insieme

  • Fondamenti di Informatica 53

    Gerarchie di memorie

    Memorie di gran capacità, relativamente lente, economiche ed accessibili tramite il bus

    MGL ovvero Memoria Grossa e Lenta

    Memorie veloci integrate nello stesso chip della CPU ma costose

    MPV ovvero Memoria Piccola e Veloce

    Obiettivo: Realizzare una memoria grossa e veloceDimensioni: pari a circa quelle della memoria grossaPrestazioni: pari a circa quelle della memoria veloce

    E’ possibile realizzare questo obiettivo?

    Fondamenti di Informatica 54

    Gerarchie di memorie

    Memoria formata da una MPV e da una MGL

    La MPV contiene una copia di alcune celle della MGL

    Quando la CPU chiede una particolare cella di memoria la richiesta va ad entrambe le memorie

    Se il dato si trova nella MPV viene passato direttamente alla CPU

    Se il dato si trova nella MGL viene anche caricato nella MPV

  • Fondamenti di Informatica 55

    Principio di località

    Località spazialeQuando si accede ad un indirizzo A è molto probabile che gli accessi successivi richiedono celle vicine ad A

    Le istruzioni del codice vengono in genere lette da locazioni consecutive in memoriaGli accessi ad array o a strutture dati sono “vicini”

    Località temporaleQuando si accede all’indirizzo A, è molto probabile negli accessi successivi si richieda di nuovo la cella A

    Cicli di istruzioni accedono ripetutamente alle stesse locazioni di memoriaIstruzioni vicine tendono ad utilizzare le stesse variabili

    Fondamenti di Informatica 56

    Memoria cache

    CPUregistri

    Memoria cachedi livello 1 (L1)

    Memoria cachedi livello 2 (L2)

    Memoria centraleRAM

    Memoria di massaHard disk

    velocità capacità Costo (€/bit)

    alta

    bassa alta

    altobassa

    basso

  • Fondamenti di Informatica 57

    Memoria cache

    Denominazione Capacità Tempo di accesso

    Registri < 1 KB < 1 nsCache di livello 1 2 KB – 64 KB 1 nsCache di livello 2 256 KB – 2 MB 2 nsMemoria centrale 256 MB – 2 GB 10 nsHard Disk 40 GB –300 GB 10 ms

    Fondamenti di Informatica 58

    Memoria cache

    La presenza di una memoria cache efficiente (che, cioè, risponde “al posto della RAM” nel 95-98% dei casi) è fondamentale per le prestazioni del sistema computer

    La presenza della cache complica notevolmente l’architettura di un sistema di elaborazione

    Problema del rimpiazzoProblema della scrittura (coerenza dei dati)

  • Fondamenti di Informatica 59

    L’interfaccia delle periferiche

    Concettualmente si occupa della gestione dello scambio di dati tra processore e periferiche

    In generale contiene:Un registro dati della periferica (RDP)

    Un registro di comando della periferica (RCP)

    Un registro di statoTalvolta collegato al registro delle interruzioni del processore

    A seconda del processore, i registri delle periferiche possono:

    Condividere lo spazio di indirizzi della memoria (memory mapped I/O)

    Adottare uno spazio di indirizzi distinti

    Fondamenti di Informatica 60

    L’interfaccia delle periferiche: schema

    Bus dati

    Bus indirizzi

    Bus di controllo

    Decodificatoredegli indirizzi

    Circuiti dicontrollo

    Registri dei datie di stato Interfaccia di I/O

    Periferica

  • Fondamenti di Informatica 61

    L’interfaccia delle periferiche: standardizzazione

    E’ possibile avere una interfaccia diversa per ogni periferica

    ma è più logico avere delle interfacce standard per periferiche simili

    Esempi di interfacce standard:

    Interfaccia seriale RS-232-C

    Interfaccia PS2

    Interfaccia USB (Universal Serial Bus)

    Interfaccia parallela Centronix

    Interfaccia ISA

    Interfaccia SCSI

    Interfaccia EIDE

    Fondamenti di Informatica 62

    Gestione delle periferiche

    I moderni processori operano a velocità notevolmente maggiori di ogni altra periferica

    sorge la necessità di sincronizzare le operazioni di processore e periferiche

    Due approcci possibili:

    a controllo di programma (polling)o mediante interrupt

    La gestione a polling: un esempio di lettura da memoria di massaIl processore invia sul bus il comando di lettura e si pone in attesa che il dato sia disponibile sul registro dati della periferica

    Durante l’attesa il processore esegue un ciclo verificando il valore del registro di stato della periferica

    Appena il dato è pronto il processore lo trasferisce dal registro dati della periferica in uno dei suoi registri interni e da qui in memoria

  • Fondamenti di Informatica 63

    Gestione delle periferiche

    Difetti dell’approccio a polling

    Il processore resta impegnato in un ciclo in attesa del dato

    La gestione a interrupt: un esempio di lettura da memoria di massaIl processore invia sul bus il comando di lettura e procede nelle sue operazioni

    Quando il dato è disponibile la periferica “solleva” un interruzione

    Il processore interrompe le sue operazioni, salva il proprio stato ed esegue una opportuna routine di gestione delle interruzioni (parte del S.O.)

    La routine di gestione delle interruzioni verifica che un dato è disponibile sulla periferica e lo trasferisce dal registro dati della periferica in uno dei registri interni del processore e da qui in memoria

    Fondamenti di Informatica 64

    Tipologie di periferiche

    Memorie secondarie (di massa)Floppy disk, hard disk, CD, DVD, Nastri magnetici

    Periferiche di inputTastiera, mouse

    Periferiche di outputMonitor, speaker, stampanti

    Periferiche di comunicazioneInterfaccia di rete, modem

    VarieScanner, webcam, microfoni, etc

  • Fondamenti di Informatica 65

    Memorie secondarie (o di massa)

    Con il termine memoria di massa ci si riferisce ad un dispositivo di memorizzazione permanente capace di contenere grosse quantità di dati

    Caratteristiche specifiche (che la differenziano dalla memoria centrale):non volatilità

    i dati memorizzati non vengono persi allo spegnimento del calcolatore (perché memorizzati in forma magnetica o ottica anziché elettronica)

    grande capacitàuna unità di memoria secondaria ha capacità maggiore (anche di diversi ordini di grandezza) rispetto alla memoria centrale

    bassi costiil costo per bit di una memoria secondaria è minore (di diversi ordini di grandezza) rispetto alla memoria centrale

    bassa velocità di accessoi tempi di accesso a una memoria secondaria sono maggiori (di qualche ordine di grandezza) rispetto alla memoria principale

    Fondamenti di Informatica 66

    Memorie secondarie (o di massa)

    Esiste un numero grandissimo di dispositivi di tale tipo

    Possibili categorizzazioniDispositivi ad accesso sequenziale o casualeDispositivi in sola lettura (RO), in lettura e scrittura (RW) o WORM (Write Once Read Many)Dispositivi magnetici, ottici o magneto-ottici

    Dimensioni tipiche delle principali memorie di massa odierneFDD: 1.44 MBCD: 650 MBDVD: 4 GBHard-Disk: 80+ GBNastri: QIC80: 350 MB, DAT 4¸20+ GB

  • Fondamenti di Informatica 67

    Memorie secondarie

    In pratica, i dati di una memoria secondaria per essere acceduti dal processore devono comunque transitare nella memoria centrale

    la memoria secondaria memorizza tutti i programmi e i dati del calcolatore

    la memoria centrale memorizza i programmi in esecuzione e i dati necessari per la loro esecuzione

    Fondamenti di Informatica 68

    Hard disk

    Un disco magnetico (disco fisso) è composto da uno o più piatti di alluminio rotanti ricoperti di materiale magnetico e da un gruppo di testine

    una testina permette la scrittura e lettura di bit su un disco, memorizzati sotto forma di stati di polarizzazione (positiva e negativa)

  • Fondamenti di Informatica 69

    Hard disk

    In un disco magneticociascun piatto è composto da due superfici (facce)ciascuna faccia è suddivisa in tracce(circolari) e settori (a spicchio)

    un cilindro è l’insieme delle tracce in una data posizione radiale

    i settori sono le unità logiche di memorizzazione

    la capacità di un settore è tipicamente di 512 byte

    l’indirizzo di un settore è dato dalle seguenti informazioni: cilindro, superficie, settore

    Fondamenti di Informatica 70

    Hard disk: caratteristiche prestazionali

    Caratteristiche prestazionali di un HDTempo di posizionamento (seek time): il tempo necessario a posizionare le testine sulla traccia richiesta

    Nell’ordine di 8-10 ms

    Tempo di latenza o di rotazione (latency time): il tempo affinché il settore richiesto “passi” sotto la testina (dipende dalla velocità di rotazione del disco)

    Nell’ordine di 2-4 ms

    Tempo di trasferimento: il tempo per trasferire i dati dal disco alla memoria

    In genere trascurabile

    Tempo di accesso (la somma dei tre tempi precedenti)

  • Fondamenti di Informatica 71

    Hard disk: esempi

    Il disco WD Caviar SE16 (SATA)Caratteristiche costruttive

    Number of Heads (Physical) 6 Capacity 250 GB Number of Platters 3 Bytes Per Sector 512

    Caratteristiche prestazionaliRotational Speed 7,200 RPM Average Latency4.20 ms Seek Times

    Read Seek Time 8.9 ms Write Seek Time 10.9 ms (average) Track-To-Track Seek Time 2.0 ms (average)

    Transfer Rates Buffer To Host (Serial ATA) 300 MB/s (Max) Buffer To Disk 748 Mbits/s (Max)

    1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071