Architettura dei Calcolatori Elettronici · Informatica (Calcolatori Elettronici) Struttura del...

Post on 16-Feb-2019

225 views 0 download

Transcript of Architettura dei Calcolatori Elettronici · Informatica (Calcolatori Elettronici) Struttura del...

Architettura dei Calcolatori Elettronici

Ettore STELLAOrario delle Lezioni: Venerdì 10,30-13,30

0805929426stella@ba.issia.cnr.it

http://www.ba.cnr.it/~iesies06

Testi di Riferimento:Testi di Riferimento:

“Introduzione all’architettura dei calcolatori”V.Carl Hamacher, Zvonko g. Vranesic, Sawfat g. ZakyMcGraw-Hill

Informatica (Calcolatori Elettronici)

Struttura del ComputerStruttura del Computer

Cinque componenti funzionalmente indipendenti

Unità di Input

Unità di OutputMemoria

Unità Logico-Aritmetica (ALU)

Unità di Controllo

I/O CPU o Processore

Struttura del ComputerStruttura del Computer

Cinque componenti funzionalmente indipendenti

Unità di Input

Unità di OutputMemoria

Unità Logico-Aritmetica (ALU)

Unità di Controllo

I/O CPU o Processore

Struttura del ComputerStruttura del Computer

Cinque componenti funzionalmente indipendenti

Unità di Input

Unità di OutputMemoria

Unità Logico-Aritmetica (ALU)

Unità di Controllo

I/O CPU o Processore

Struttura del ComputerStruttura del Computer

Cinque componenti funzionalmente indipendenti

Unità di Input

Unità di OutputMemoria

Unità Logico-Aritmetica (ALU)

Unità di Controllo

I/O CPU o Processore

RAM

HD

Floppy

CD

Struttura del ComputerStruttura del Computer

Cinque componenti funzionalmente indipendenti

Unità di Input

Unità di OutputMemoria

Unità Logico-Aritmetica (ALU)

Unità di Controllo

I/O CPU o Processore

Pentium IV Athlon 7

ITANIUM 2

Connessione tra componentiConnessione tra componenti

CPU

RAM

Dischi

Monitor

StampanteTastiera

Mouse

Connessione tra componenti (cont.)Connessione tra componenti (cont.)

CPU

RAMDischiMonitor

StampanteTastiera Mouse

BUS

= Interfacce o Controller

Connessione tra componenti (cont.)Connessione tra componenti (cont.)

CPU

RAMDischiMonitor

StampanteTastiera Mouse

BUS

Struttura del ComputerStruttura del Computer

Unità di Input

Unità di OutputMemoria

Unità Logico-Aritmetica (ALU)

Unità di Controllo

I/O CPU o Processore

L’Unità di Input accetta informazioni codificate dall’Operatore

Tale informazione può essere memorizzata o elaborata dall’ALU

La sequenza di passi necessaria ad elaborare l’informazione Viene determinata da un programma residente in memoria

I risultati sono presentati all’esterno tramite le unità di Output

Tutte queste operazioni sono coordinate dall’unità di controllo

Prestazioni di un Computer (cont.)Prestazioni di un Computer (cont.)

Clock

Circuito che genera un segnale da utilizzare comeRiferimento di tempo (ciclo)

Unità di misura è cicli/secondo o HERTZ

1 Milione di Hertz 1 MegaHertz (Mhz)1 Miliardo di Hertz 1 GigaHertz (Ghz)

Computer Attuali: clock a 3 Ghz

Istruzioni e DatiIstruzioni e Dati

Istruzioni ( o istruzioni macchina)

Sono comandi che:

Governano il trasferimento di Informazioni siaall’interno del computer sia tra computer edispositivi di I/O

Specificano le operazioni Aritmetico-Logicheda effettuare

Un’insieme di istruzioni che svolgono un determinato compitoè un PROGRAMMA

Istruzioni e Dati (cont.)Istruzioni e Dati (cont.)

Il programma è contenuto in Memoria.

Il Processore preleva le istruzioni dalla memoria, unaalla volta, e compie le operazioni specificate

Il computer è completamente controllato dal programmaMemorizzato tranne quando si presenta una interruzione(Interrupt) dall’operatore o dai dispositivi di I/O

Istruzioni e Dati (cont.)Istruzioni e Dati (cont.)

I DATI sono numeri o caratteri codificati (estesa)

Ogni numero, carattere o istruzione è codificata con unaUna stringa di cifre binarie dette BIT (BInary digiT) Ognuno dei quali può assumere il valore 0 oppure 1

0 = 0000 0*23+ 0*22+ 0*21+ 0*20

1 = 0001 0*23+ 0*22+ 0*21+ 1*20

2 = 0010 0*23+ 0*22+ 1*21+ 0*20

6 = 0110 0*23+ 1*22+ 1*21+ 0*20

In alcuni casi si utilizza il formato codificato BCD (Binary-CodedDecimal) dove ogni cifra decimale è codificata con 4 bit

1=0001 2= 0010 3=0011 32 = 00110010 321=001100100001

Istruzioni e Dati (cont.)Istruzioni e Dati (cont.)

I Caratteri alfanumerici sono espressi in termini di Codici Binari

ASCII (American Standard Code for Information Interchange)

7 bit A = 1000001B = 1000010a = 11000011 = 01100010 = 0110000

EBCDIC (Extended Binary-Coded Decimal Interchange Code)

8 bit A = 11000001 B = 11000010 a = 10000001 1 = 11110001 0 = 11110000

Struttura del ComputerStruttura del Computer

Unità di Input

Unità di OutputMemoria

Unità Logico-Aritmetica (ALU)

Unità di Controllo

I/O CPU o Processore

MEMORIAMEMORIA

Primaria (o Principale) e Secondaria

La Memoria Principale è una memoria veloce che opera ad unavelocità determinata dai tempi di reazione dei componenti Elettronici. Risiedono i programmi che sono eseguiti

La MP è suddivisa in celle (semiconduttori) ciascuna capace di contenere un bit. L’accesso avviene per gruppidi celle di dimensione fissa (word). Essa è organizzatain modo che i contenuti di una word (n bit) sono prelevatio memorizzati con una singola operazione primitiva

Ad ogni word è associato un indirizzo

MEMORIA (cont.)MEMORIA (cont.)

Il numero di bit che costituisce una word è detto lunghezzadella word (8=Byte,16, 32, 64).

Il tempo necessario per prelevare o memorizzare una wordè detto tempo di accesso alla memoria. La sequenza di passiCiclo di lettura o scrittura.

Random-Access Memory (RAM) il tempo [10-100] ns

Le Memorie Secondarie sono più lente e servono a memorizzareGrosse quantità di dati (dischi, nastri, CD, ecc.)

Memoria PrincipaleMemoria Principale

Composta di Celle di 1 BIT

Accesso a gruppi di n BIT (word)

Ogni Operazione elementare legge o scrive 1 word

n = Lunghezza della word ([16-64]) n=32

Ogni word ha associato un indirizzo che è un numero binario a k BIT

k bit 2k numeri nell’intervallo 0 – (2k –1)

2k = Spazio di indirizzamento

Es: k=24 S.I. = 224 word 16 Mword k=32 S.I. = 232 word 4 Gword

Memoria Principale (cont.)Memoria Principale (cont.)

0123n-1n

• • • • • • •

n bit

0

1

2

i

2k-1

Word 0

Word 1

Word 2

Word i

Word 2k-1

Ogni word può contenere numeri, caratteri o istruzioni

Unità Aritmetico-Logica (ALU)Unità Aritmetico-Logica (ALU)

E’ la componente che esegue le operazioni

Somma di due Numeri:

Op1(Mem) ALUOp2(Mem) ALUALU esegue SommaALU Ris (Mem)

Registri Elementi di memorizzazione veloce (5 o 10 volte RAM)Hanno lunghezza di una word

Unità di ControlloUnità di Controllo

Coordina tutte le operazioni all’interno della macchinaMediante segnali di temporizzazione

Tali segnali determinano l’istante in cui una data operazioneDeve avvenire.

Op1(Mem) ALUOp2(Mem) ALUALU esegue SommaALU Ris (Mem)

Somma di due Numeri:

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

R1

Concetti Operativi di BaseConcetti Operativi di Base

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Concetti Operativi di BaseConcetti Operativi di Base

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

I1 PCPC MARUC (Read: Load Op1,R1) MDRMDR IROp1 MARUC (Read: 2) MDRMDR R1

I2 PCPC MARUC (Read: Load Op2,R0) MDRMDR IROp2 MARUC (Read: 5) MDRMDR R1

Op1 = 2Op2 = 5

Concetti Operativi di BaseConcetti Operativi di Base

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

I1 PCPC MARUC (Read: Load Op1,R1) MDRMDR IROp1 MARUC (Read: 2) MDRMDR R1

I2 PCPC MARUC (Read: Load Op2,R0) MDRMDR IROp2 MARUC (Read: 5) MDRMDR R0

Op1 = 2Op2 = 5

Concetti Operativi di BaseConcetti Operativi di Base

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

I3 PCPC MARUC (Read: Add R1,R0) MDRMDR IRUC (ALU:R1+R0) R0

I4 PCPC MARUC (Read: Store R0,Ris) MDRMDR IRRis MARUC (Store: 7) MDRMDR Ris

Op1 = 2Op2 = 5

Concetti Operativi di BaseConcetti Operativi di Base

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

I3 PCPC MARUC (Read: Add R1,R0) MDRMDR IRUC (ALU:R1+R0) R0

I4 PCPC MARUC (Read: Store R0,Ris) MDRMDR IRRis MARUC (Store: 7) MDRMDR Ris

Op1 = 2Op2 = 5

Sistema OperativoSistema Operativo

Software di sistema per coordinare tutte le attività come:

Interpretare i comandi utente

Immettere ed editare programmi applicativi eMemorizzarli su disco

Gestire l’accesso alla memoria secondaria

Tradurre programmi da linguaggio sorgenteIn linguaggio macchina

Eseguire programmi standard

Sistema Operativo (cont.)Sistema Operativo (cont.)

t0 t1 t2 t3 t4 t5

Programma

Sistema Operativo

Disco

Stampante

Prestazioni di un ComputerPrestazioni di un Computer

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Prestazioni di un ComputerPrestazioni di un Computer

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Prestazioni di un ComputerPrestazioni di un Computer

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Prestazioni di un ComputerPrestazioni di un Computer

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Prestazioni di un ComputerPrestazioni di un Computer

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Prestazioni di un ComputerPrestazioni di un Computer

MEMORIA

Unità dicontrollo ALU

R0 R1 Rn-1

MDR

MAR

PC

IR

I1: Load Op1,R1I2: Load Op2,R0I3: Add R1,R0I4: Store R0,Ris

MDR = Memory Data RegisterMAR = Memory Address RegisterPC = Program CounterIR = Instruction Register

…..

CPU

Prestazioni di un Computer (cont.)Prestazioni di un Computer (cont.)

RAM Processore

ALUUC

REGIR

PC

MARMDR

BUS

I1: Read Op1,FileI2: Read Op2,FileI3: Load Op1,R1I4: Load Op2,R0I5: Add R1,R0I6: Store R0,RisI7: Print RisI8: Jump I1

Prestazioni di un Computer (cont.)Prestazioni di un Computer (cont.)

RAM Processore

ALUUC

REGIR

PC

MARMDR

BUS

I1: Read Op1,FileI2: Read Op2,FileI3: Load Op1,R1I4: Load Op2,R0I5: Add R1,R0I6: Store R0,RisI7: Print RisI8: Jump I1

I1: Read Op1,FileI2: Read Op2,FileI3: Load Op1,R1I4: Load Op2,R0I5: Add R1,R0I6: Store R0,RisI7: Print RisI8: Jump I1

Memoria Cache

Prestazioni di un Computer (cont.)Prestazioni di un Computer (cont.)

T = Tempo di esecuzione di un programma N = Numero di Istruzioni macchina eseguite

S = Numero medio di passi per istruzioneR = Frequenza del clock

R

S) (N T

Prestazioni di un Computer (cont.)Prestazioni di un Computer (cont.)

R

S) (N T

N dipende:Complessità delle Istruzioni

S dipende:Numero delle Istruzioni della macchinaPipelining Add R1,R2,R3

N tende a crescere in macchine con istruzioni semplici

Prestazioni di un Computer (cont.)Prestazioni di un Computer (cont.)

Soluzione:Macchina con un set di istruzionicomplesse e con Pipeling

Il Pipeling si realizza efficientemente con insiemi di Istruzioni semplici

CISC = Complex Instruction Set Computer (Intel Pentium)

RISC = Reduced Instruction Set Computer (PowerPC, Alpha)

EPIC = Explicit Parallel Instruction Computer (Itanium Family)