23
Materiale didattico P. Ollari A. Ferrari Alberto Ferrari Architettura dell’elaboratore

Architettura dell’elaboratore

Embed Size (px)

DESCRIPTION

Architettura dell’elaboratore. Materiale didattico P. Ollari A. Ferrari. Struttura di un elaboratore. La struttura tipica di un calcolatore elettronico assume la forma attuale in base ad almeno due svolte tecnologiche fondamentali: - PowerPoint PPT Presentation

Citation preview

Page 1: Architettura dell’elaboratore

Materiale didatticoP. Ollari

A. Ferrari

Alberto Ferrari

Architettura dell’elaboratore

Page 2: Architettura dell’elaboratore

Struttura di un elaboratore

La struttura tipica di un calcolatore elettronico assume la forma attuale in base ad almeno due svolte tecnologiche fondamentali: un modello costruttivo storico riconducibile allo scienziato

austriaco J. Von Neumann (architettura di Von Neumann) anni ’40/’50

l’invenzione del microprocessore da parte del tecnico italiano F. Faggin (microprocessore Intel 4004) 1971.

Alberto Ferrari

Page 3: Architettura dell’elaboratore

Architettura di Von Neumann

Alberto Ferrari

Page 4: Architettura dell’elaboratore

Unità funzionali

Il funzionamento di un calcolatore è descrivibile in termini di poche componenti (macro-unità) funzionali

ogni macro-unità è specializzata nello svolgimento di una tipologia omogenea di funzionalità

Eccezione: l’unità centrale di elaborazione, che svolge sia funzionalità di elaborazione che di controllo

Alberto Ferrari

Page 5: Architettura dell’elaboratore

Memorizzazione

Un calcolatore memorizza i dati, che rappresentano informazioni di interesse i programmi per l’elaborazione dei dati

La memoria è l’unità responsabile della memorizzazione dei dati

Una unità di memoria fornisce due sole operazioni memorizzazione di un valore (scrittura) accesso al valore memorizzato (lettura)

Alberto Ferrari

Page 6: Architettura dell’elaboratore

Elaborazione

Le istruzioni di un programma corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche operazioni relazionali (confronto tra dati) operazioni su caratteri e valori di verità altre operazioni numeriche

L’elaboratore sa svolgere poche tipologie di operazioni elementari ma in modo molto efficiente

Può eseguire decine o centinaia di milioni di istruzioni al secondo

Alberto Ferrari

Page 7: Architettura dell’elaboratore

Trasferimento

Obiettivo: permettere lo scambio di informazioni tra le varie componenti funzionali del calcolatore trasferimento dei dati e delle informazioni di controllo

Due possibili soluzioni collegare ciascun componente con ogni altro

componente collegare tutti i componenti a un unico canale (bus)

L’utilizzo di un bus favorisce la modularità e l’espandibilità del calcolatore

Alberto Ferrari

Page 8: Architettura dell’elaboratore

Controllo

Il coordinamento tra le varie parti del calcolatore è svolto dall’unità di controllo è un componente dell’unità centrale di elaborazione

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

il controllo consiste nel coordinamento dell’esecuzione temporale delle operazioni

sia internamente all’unità di elaborazione sia negli altri elementi funzionali

Alberto Ferrari

Page 9: Architettura dell’elaboratore

Random Access Memory (RAM)

La memoria centrale è un contenitore di celle. La memoria contiene le istruzioni e i dati. Le celle sono numerate in sequenza: il numero di ogni cella

costituisce il suo indirizzo Il numero totale di celle è definito spazio degli indirizzi o spazio

di indirizzamento. L’ampiezza dello spazio di indirizzamento fisico è determinato

dall’ampiezza del bus indirizzi. Specificando l’indirizzo di una cella, la CPU e’ in grado di leggere

e/o modificare il valore del byte memorizzato in quella cella La memoria è volatile: perde il suo contenuto tutte le volte che la

macchina viene spenta Random Access Memory (RAM), perché ogni cella e’ indirizzabile

direttamente

Alberto Ferrari

Page 10: Architettura dell’elaboratore

Struttura della RAM

Alberto Ferrari

Page 11: Architettura dell’elaboratore

BIOS

È presente una speciale area di memoria che non perde i valori dopo lo spegnimento.

Infatti il sistema nella fase di avviamento (Bootstrap), deve immettere sul Bus le istruzioni iniziali per configurare i dispositivi di base come video e tastiera (fase di POST o Power On Self Test)) e caricare i programmi del Sistema Operativo da una memoria secondaria come ad es. un disco.

Quest’area è riservata all’interno dello spazio di indirizzamento ed è denominata, genericamente, BIOS (Basic Input/Output System).

Alberto Ferrari

Page 12: Architettura dell’elaboratore

Read Only Memory (ROM)

Le regioni di Memoria che contengono il BIOS sono realizzate in Rom (Read Only Memory), cioè una tecnologia che consente alle celle di mantenere il contenuto anche in assenza di alimentazione, cioè a sistema spento.

Il codice e i programmi contenuti in maniera non volatile nella memoria centrale sono detti Firmware (Fw).

Alberto Ferrari

Page 13: Architettura dell’elaboratore

BUS

Il Bus è l’unità di interconnessione tra i moduli del modello di Von Neumann.

È un fascio ordinato di linee, ognuna delle quali può assumere un valore binario.

Processore, Memoria e Input/Output si affacciano sul Bus cioè possono leggere o modificare i valori presenti sulle linee che lo compongono.

Alberto Ferrari

Page 14: Architettura dell’elaboratore

Input / Output

La sezione di Input/Output (I/O) di un calcolatore è dedicata alla comunicazione con l’”esterno” per l’acquisizione (input) o la comunicazione (output) di dati.

Concettualmente la sezione di I/O è ancora rappresentabile come un contenitore, del tutto analogo alla Memoria, anche se dotato di uno spazio di indirizzamento (spazio degli indirizzi di I/O) molto più ridotto. Ogni dispositivo periferico, di Input o di Output, possiede un proprio range di indirizzi di I/O riservato (indirizzi di I/O, detti anche registri di I/O o porte di I/O) all’interno dello spazio di indirizzamento di I/O.

Qualche volta alcuni dispositivi, magari che necessitano di grandi spazi di I/O, usano indirizzi di Memoria invece di indirizzi di I/O. In questo caso si parla di dispositivi mappati in Memoria.

Alberto Ferrari

Page 15: Architettura dell’elaboratore

Processore

Un Processore è un singolo circuito integrato in grado di effettuare operazioni decisionali, di calcolo o di elaborazione dell'informazione

Il microprocessore principale di un computer viene chiamato CPU (Central Processor Unit).

Il Processore può essere visto come suddiviso in tre unità funzionali: l’Unità di Controllo (UC) l’area dei Registri l’ALU (Unità Aritmetico-Logica).

Alberto Ferrari

Page 16: Architettura dell’elaboratore

Struttura del processore

Alberto Ferrari

Memoria centrale

Page 17: Architettura dell’elaboratore

UC - Registri - ALU

L’Unità di Controllo imposta i valori sul BUS.I Registri contengono i dati e i risultati delle

istruzioni che saranno eseguita dall’ALU.L’ALU esegue le istruzioni; all’interno dell’unità si

trovano microprogrammi cablati direttamente in hardware, scritti in microcodice con relative microistruzioni.

Alberto Ferrari

Page 18: Architettura dell’elaboratore

Set di istruzioni

Ogni processore viene progettato con un set di istruzioni specifico denominato ISA (Instruction Set Architecture o Instruction Set)

Ogni istruzione è implementata da un microprogramma.Ogni istruzione dell’ISA è contraddistinta da un numero

specifico, denominato Operation Code (Op. Code) Ogni istruzione necessita di un numero preciso e

definito di parametri che, assieme all’Op.Code, determinano la lunghezza dell’istruzione (in byte).

Un registro speciale del Processore, Program Counter (PC), si incrementa della lunghezza dell’istruzione appena eseguita

Alberto Ferrari

Page 19: Architettura dell’elaboratore

Fasi di esecuzione di un’istruzione

Fetch l’unità di controllo pone sul bus degli indirizzi il valore del Program

Counter e legge dalla memoria il codice dell’istruzione da eseguire.

Decode l’unità di controllo decodifica l’istruzione e legge i parametri

(Operand Fetch) che vengono memorizzati nei Registri.

Execute viene avviato il microprogramma relativo all’Op.Code. La frequenza

in base alla quale vengono eseguiti i microprogrammi è regolata dal clock di CPU (frequenza del Microprocessore).

Store al termine della fase di Execute gli eventuali risultati, posti nei Registri,

vengono scritti sul Bus dall’UC, o verso la Memoria, o verso l’I/O.

Alberto Ferrari

Page 20: Architettura dell’elaboratore

CISC

Complex instruction set computer (CISC) indica un'architettura per microprocessori formata da un set di istruzioni contenente istruzioni in grado di eseguire operazioni complesse come la lettura di un dato in memoria, la sua modifica e il suo salvataggio direttamente in memoria tramite una singola istruzione.

Ogni singola istruzione ha un data path a più cicli. Il data path è il percorso dei dati all’interno del Processore,

attraverso l’attuale istruzione, e i suoi cicli sono scanditi dal clock della CPU.

Alberto Ferrari

Page 21: Architettura dell’elaboratore

Architetture CISC

Le architetture CISC possiedono un set di istruzioni molto ampio, istruzioni di grandezza variabile e molto specifiche con corrispondente fase di Decode complessa, un data path a più passi.

Si tratta di architetture che facilitano la portabilità del sw, dato che l’insieme dei microprogrammi (o interprete del processore) può essere trasportato su processori più recenti, e quindi sono processori adatti per essere programmati anche in Assembly.

Esempi di sistemi basati su architettura CISC sono System/360, VAX, PDP-11, la famiglia Motorola 68000, l'architettura x86 di Intel e AMD.

Alberto Ferrari

Page 22: Architettura dell’elaboratore

RISC

RISC, acronimo dell'inglese Reduced Instruction Set Computer, indica una filosofia di progettazione di architetture per microprocessori formate da un set di istruzioni contenente istruzioni in grado di eseguire operazioni semplici che possono essere eseguite in tempi simili.

I più comuni processori RISC sono:AVR, PIC, ARM, DEC Alpha, PA-RISC, SPARC, MIPS e POWER.

Alberto Ferrari

Page 23: Architettura dell’elaboratore

Architettura RISC

Un’architettura RISC (Reducted Instruction Set Code), possiede un data path a singolo passo.

Il set di istruzioni di una architettura RISC è limitato, contiene istruzioni di lunghezza costante (con un numero di operandi fisso), con fase di Decode breve e senza microprogrammi da eseguire nel processore: ogni istruzione è eseguita direttamente in hardware con pochi cicli di clock.

Un’elaborazione RISC appare nettamente più veloce (almeno di un ordine 10).

Un’istruzione CISC - con molti passi nel data path - equivale a numerose istruzioni RISC con data path singolo.

I programmi per ISA RISC sono molto più lunghi di analoghi programmi per ISA CISC.

Alberto Ferrari