21
Processore Presentazione a livelli del calcolatore: dopo porte logiche, circuiti base e memorie, esaminiamo il: Processore (CPU - Central Processing Unit): cuore del calcolatore, l’unità che esegue le istruzioni macchina (cap. 2 e 4). Nel seguito le altre componenti del calcolatore: bus, I/O, memoria di massa. (Architettura degli Elaboratori) Processore 1 / 81 Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic logical unit (ALU) Registers Main memory Disk Printer Bus I/O devices (Architettura degli Elaboratori) Processore 2 / 81 Il processore (CPU) Compito del processore: eseguire il ciclo fetch-decode-execute; fetch: preleva un’istruzione dalla memoria istruzione macchina; decode: determina il tipo di istruzione e i suoi argomenti; execute: esegui l’istruzione: recupera gli argomenti, esegui un operazione, memorizza i risultati; ripete il ciclo. (Architettura degli Elaboratori) Processore 3 / 81 Componenti processore: Data Path A + B A + B A A B B Registers ALU input register ALU output register ALU ALU input bus (Architettura degli Elaboratori) Processore 4 / 81

Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Processore

Presentazione a livelli del calcolatore:dopo porte logiche, circuiti base e memorie,esaminiamo il:

Processore (CPU - Central Processing Unit): cuoredel calcolatore, l’unità che esegue le istruzionimacchina (cap. 2 e 4).

Nel seguito le altre componenti del calcolatore: bus,I/O, memoria di massa.

(Architettura degli Elaboratori) Processore 1 / 81

Struttura schematica di uncalcolatore

Central processing unit (CPU)

Control unit

Arithmetic logical unit

(ALU)

Registers

Main memory Disk Printer

Bus

I/O devices

… …

(Architettura degli Elaboratori) Processore 2 / 81

Il processore (CPU)Compito del processore: eseguire il ciclofetch-decode-execute;

• fetch: preleva un’istruzione dalla memoriaistruzione macchina;

• decode: determina il tipo di istruzione e i suoiargomenti;

• execute: esegui l’istruzione:recupera gli argomenti, esegui un operazione,memorizza i risultati;

• ripete il ciclo.

(Architettura degli Elaboratori) Processore 3 / 81

Componenti processore:Data Path

A + B

A + B

A

A

B

B

Registers

ALU input register

ALU output register

ALU

ALU input bus

(Architettura degli Elaboratori) Processore 4 / 81

Page 2: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Data Path

Formata da:

• una serie di registri (memorie),• un’unità aritmetica e logica (ALU),• dei bus di collegamento.

Può eseguire micro-operazioni.

(Architettura degli Elaboratori) Processore 5 / 81

Micro-operazione

L’operazione eseguibile dal data path in un singolociclo di clock.

Azioni eseguibili da una micro-operazione:• una singola operazione aritmetica-logica (i cui

argomenti e risultato risiedono nei registri).• una comunicare con la memoria (richiesta di

lettura o scrittura di una locazione)Un’istruzione macchina viene eseguita medianteuna o più micro-operazioni.

(Architettura degli Elaboratori) Processore 6 / 81

Unità di controlloIl funzionamento del data path viene regolato,mediante segnali, dall’unità di controllo.Circuito sequenziale che regola il funzionamento delprocessore.

• Esamina l’istruzione corrente, contenutaInstruction Register (IR).

• Invia segnali di lettura e scrittura ai registri.• Invia segnali di controllo alla ALU.• Gestisce la comunicazione con la memoria

principale.

(Architettura degli Elaboratori) Processore 7 / 81

Realizzazione

Due alternative:• cablata: si realizza un circuito sequenziale

classico;• micro-programmata: il controllo è un piccolo

calcolatore capace di eseguire unmicro-programma.

(Architettura degli Elaboratori) Processore 8 / 81

Page 3: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Dicotomia: cablata -programmata

Le stessa funzionalità possono essere implementatemediante:• hardware (logica cablata): più complicata e

costosa da realizzare, ma offre prestazionimigliori;

• software (logica programmata): più semplice eflessibile, ma più lenta.

Diversi esempi di questa dicotomia: le istruzionigrafiche, l’elaborazione dei segnali, . . .

(Architettura degli Elaboratori) Processore 9 / 81

Un po’ di storiaI primi processori: poche istruzioni, logica cablata.

Anni 50:• prime unità di controllo micro-programmato,

permette la costruzione di calcolatori economicima con un ricco insieme di istruzioni.

• calcolatori con maggiori presazioni usano lalogica cablata.

• Si costruiscono calcolatori molto diversi perprestazioni e costi con lo stesso insieme diistruzioni. (IBM 360)

(Architettura degli Elaboratori) Processore 10 / 81

Anni 70Le potenzialità della micro-programmazione vengosfruttate al massimo.• Linguaggi macchina sempre più sofisticati, vicini

ai linguaggi di programmazione standard.• Il calcolatore apice di questa filosofia: VAX

(Digital DEC).• Motivazioni tecnologiche: all’epoca i

control-store (la memoria micro-programma)sono molti più veloci della memoria principale(RAM).

(Architettura degli Elaboratori) Processore 11 / 81

Anni 80, processori RISC

Si cambia rotta: poche istruzioni, logica cablata

• le istruzioni complesse non sono così utili• istruzioni semplici molto più veloci;• si possono utilizzare controlli cablati;• la velocità della RAM si avvicina a quella del

control-store

(Architettura degli Elaboratori) Processore 12 / 81

Page 4: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

I primi RISC

Reduced Instruction Set Computer• 801 (IBM),• CPU-RISC (Patterson - Berkley)⇒ Sparc,• MIPS (Hennesey - Stanford),• Alpha (Digital), PowerPC (Motorola, IBM), ARM,

(Architettura degli Elaboratori) Processore 13 / 81

Anni 90, diatriba: RISC –CISC

Complex Instruction Set Computer.

• Tutti i processori di nuova concezione sonoRISC.

• Ma i processori usati nei PC: architettura Intelx86, (IA-32), sono CISC.

• Motivi: compatibilità con il software preesistente,non si vogliono riscrivere i programmi (il codice).

(Architettura degli Elaboratori) Processore 14 / 81

AttualmenteLa contrapposizione RISC – CISC è più sfumata.

• La legge di Moore ha portato alla creazione diprocessori RISC con insiemi di istruzionisempre più ampi.

• Il processori CISC (IA-32) usano al loro internoun cuore RISC,• istruzioni semplici, più comuni: eseguite

direttamente,• istruzioni più complesse: scomposte in più istruzioni

semplici,• istruzioni sofisticate: eseguite mediante

micro-programma.

(Architettura degli Elaboratori) Processore 15 / 81

RISC – CISC

• In linea di principio, i processori RISC sonopreferibili,

• le architetture CISC hanno uno svantaggio del(20-30%),

• per i processori x86, lo svantaggio ècompensato dalle economie di scala (vengonoprodotti in gran numero).

(Architettura degli Elaboratori) Processore 16 / 81

Page 5: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

I processori nel libro ditesto

Per illustrare con maggior dettaglio il funzionamentodei processori,si mostra un esempio concreto di progettazione diun processore.Più precisamente: si mostra come costruireprocessore (Mic)che eseguire istruzioni del Java bytecode:si realizza la Java Virtual Machine (JVM)Approccio per esempi e bottom-up: primadescrizione delle componenti, poi quadro di insieme.

(Architettura degli Elaboratori) Processore 17 / 81

I processori nel libro ditesto

• Pro: un esempio pratico, consistente con ilresto.

• Contro: presentazione lunga, molti dettaglitecnici, difficile comprensione, linguaggiomacchina non standard.

• A lezione presentazione più superficiale:descrizione dei principi, pochi dettagli.Argomenti affrontati in un ordine diverso.

• Problema: meno correlazione col libro di testo,non esiste un insieme di pagine che siacompleto, autosufficiente e non sovrabbondante(molti più argomenti di quelli presentati alezione).

(Architettura degli Elaboratori) Processore 18 / 81

Premessa: i compilatoriUn programma ad alto livello (Java, C, C++,Scheme, Pascal, . . . ) deve essere tradotto inlinguaggio macchina (istruzioni eseguibili dalcalcolatore).

Due alternative:• compilatore: programma traduttore, dal

programma sorgente genere un programmamacchina equivalente.

• interprete: programma interprete, legge ilprogramma sorgente e lo esegue direttamente(non genera codice intermedio).

(Architettura degli Elaboratori) Processore 19 / 81

Java

Java si propone come il linguaggio per leapplicazioni in rete.I programmi Java devono poter migrare nella rete:• codice compilato non ha questa possibilità, è

specifico ad una particolare architettura(processore – sistema operativo),inoltre: problemi di sicurezza;

• il codice sorgente non può essere spostato inmaniera efficiente.

(Architettura degli Elaboratori) Processore 20 / 81

Page 6: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Java Virtual Machine, JVMSoluzione:• viene definito un codice intermedio (tra Java e il

linguaggio macchina): Java bytecode,• viene definita un macchina virtuale la Java

Virtual Machine (JVM),capace di eseguire programmi scritti in Javabytecode,macchina virtuale: implementata, via software,su diverse piattaforme (processore, sistemaoperativo),livello Java bytecode

(Architettura degli Elaboratori) Processore 21 / 81

Java bytecodeProgrammi Java compilati in Java bytecode,eseguibile da ogni calcolatore mediante laJava Runtime Environment (JRE), composto da:• JVM (programma interpretare il Java bytecode);• librerie.

Vantaggi, svantaggi,• vantaggi: codice universale, compatto, con

meccanismi di protezione;• svantaggi: minore efficienza rispetto alla

compilazione diretta(mitigata dai compilatori just-in-time).

(Architettura degli Elaboratori) Processore 22 / 81

Processori Mic (1,2,3,4)

Implementazione hardware, cablata (non virtuale oprogrammata) della JVM.Mic è un processore capace di eseguire unsottoinsieme del Java bytecode.Progetto didattico, non esistono implementazioni.

Esistono delle vere implementazioni, de• picoJava (Sun Microsystems),• ARM926EJ-S, (architettura ARM estesa con il

Java bytecode),

(Architettura degli Elaboratori) Processore 23 / 81

Java bytecodeSimili, per molti aspetti, ai linguaggi macchina.

Alcune differenze importanti:• meccanismi di protezione contro codice

malevolo;• compatto, istruzioni lunghe un byte (+ un

eventuale argomento di 1-2 byte);• primitive object-oriented (chiamate dei metodi).

Per semplicità, i processori Mic implementano unpiccolo sottoinsieme del Java bytecode.

(Architettura degli Elaboratori) Processore 24 / 81

Page 7: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Il modello di memoria

Memoria standard processori, monolitica, unostesso spazio per programmi e dati.

Memoria della JVM è divisa in quattro parti.• area del codice (programmi)• area delle costanti (dati utilizza dai programmi)• stack delle variabili locali• stack degli operandi (dati su cui eseguire

operazioni)

(Architettura degli Elaboratori) Processore 25 / 81

Il modello di memoria

(Architettura degli Elaboratori) Processore 26 / 81

Stack delle variabili

• Usato per gestire le chiamate di procedura(metodi).

• Ogni procedura ha le sue variabili, spazio dimemoria.

• Questi spazi gestiti come una pila.Ad ogni chiamata di procedura si alloca unospazio.Spazio recuperato quando la procedura termina.

(Architettura degli Elaboratori) Processore 27 / 81

Stack degli operandi

• JVM non è una macchina a registri (come quasitutti i processori).Le operazioni aritmetiche logiche non fannoriferimento ai registri interni, ma ad uno:

• Stack degli operandi. Pila su cui:• inserire o prelevare word, (sequenze di 32 bit)• eseguire operazioni sugli ultimi dati inseriti.

Esempio la JVM valuta l’espressione(3 + 5)× (4 + 2) in ...

(Architettura degli Elaboratori) Processore 28 / 81

Page 8: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

I-Java bytecode• Operazioni aritmetiche e logiche: IADD, IAND,

IOR, ISUB, IINC vn con.• Operazioni trasferimento dati, da e per la

memoria: ILOAD vn, ISTORE vn, LDC_W i,(DUP, POP, SWAP, BIPUSH b).

• Operazioni per il controllo del flussodell’esecuzione:GOTO, IFEQ os, IFLT os, IF_ICMEQ os,Chiamate di metodi: INVOKEVIRTUAL d,IRETURN,

• Altro: NOP, WIDE(Architettura degli Elaboratori) Processore 29 / 81

Il processore Mic-1

Un semplice processore per il Java bytecode.Funzionamento:• ad ogni ciclo di clock il data path può eseguire

semplici operazioni, o spostare dati(micro-istruzione)

• un’istruzione del Java bytecode viene realizzatamediante una sequenza di micro-istruzioni,

• sequenza composta da diverse parti:fetch-decode-execute.

(Architettura degli Elaboratori) Processore 30 / 81

Mic-1: data path

(Architettura degli Elaboratori) Processore 31 / 81

Unità aritmetica-logica(ALU)

Componente di ogni processore,può eseguire le operazioni aritmetiche e logiche:• Ingressi:

• due argomenti: 32, 64 bit;• codifica operazione da eseguire.

• Uscite:• risultato: 32, 64 bit;• bit di condizione: segno, zero, overflow.

(Architettura degli Elaboratori) Processore 32 / 81

Page 9: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Unità aritmetica-logica(ALU)

MIC1 usa una semplice ALU:• implementa poche operazioni: AND, OR, NOT,

somma, sottrazione, incremento, decremento 1,opposto.

• Operazioni eseguite bit per bit (locali): ALUscomposta in unità elementari, ciascunaoperante su una coppia di bit.

• segnali di controllo: selezionano l’operazione dasvolgere, abilitano o meno gli ingressi,forniscono il riporto per le cifre menosignificative.

(Architettura degli Elaboratori) Processore 33 / 81

ALU da un bit

AINVA

ENAB

Logical unit Carry in

AB

B

Enable lines

F0

F1

Decoder

Output

Sum

Carry out

Full adder

A + B

ENB

(Architettura degli Elaboratori) Processore 34 / 81

ALU da 8-32 bit

ALU completa formata da un sequenza di ALU a 1bit

Carry in

Carry out

1-bit ALU

F0F1

A7 B7

O7

1-bit ALU

A6 B6

O6

1-bit ALU

A5 B5

O5

1-bit ALU

A4 B4

O4

1-bit ALU

A3 B3

O3

1-bit ALU

A2 B2

O2

1-bit ALU

A1 B1

O1

1-bit ALU INC

A0 B0

O0

Mic 1 contiene una ALU a 32 bit.

(Architettura degli Elaboratori) Processore 35 / 81

Funzione calcolabili dallaALU

Oltre alle ovvie:

• A + B + 1, somma con Carry in = 1• A + 1, somma con ENB = 0, Carry in = 1• B − A, somma con INVA = 1, Carry in = 1• B − 1, somma con ENA = 0, INVA = 1• −A, somma con ENB = 0, INVA = 1,

Carry in = 1

(Architettura degli Elaboratori) Processore 36 / 81

Page 10: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Registri (specializzati)• MAR: Memory Address Register,

MDR: Memory Data Register;comunicazione memoria dati;

• PC: Program Counter,MBR: Memory Bytecode Register;comunicazione memoria codice;

• SP: Stack Pointer, TOS: Top Of Stack;stack degli operandi;

• LV: Local Variable; puntatore stack variabili;• CPP: Constant Pool Pointer; punt. costanti;• OPC, H: registri ausiliari.

(Architettura degli Elaboratori) Processore 37 / 81

Esempio diimplementazione

L’istruzione IADD viene realizzata dalla sequenza dimicro-istruzioni:

• Main1: PC = PC + 1; fetch; goto (MBR)• iadd1: MAR=SP=SP-1; rd• iadd2: H = TOS• iadd3: MDR=TOS=MDR+H; wr; goto Main1

Le altre istruzioni implementate in maniera analoga.

(Architettura degli Elaboratori) Processore 38 / 81

Circuito di controllo

Micro-programmato. Formata da memoria ROM(contiene il micro-codice), 2 registri, un multiplexer.

• semplice sia il circuito che la progettazione• relativamente lento

Micro-istruzioni di 36 bit• in parte segnali di controllo,• in parte determinano la prossima

micro-istruzione,

(Architettura degli Elaboratori) Processore 39 / 81

Circuito di controllo

H

Shifter

ALU

2

N

B bus

6

ALU control

Control signals

Memory control signals (rd, wr, fetch)

Enable onto B bus

Write C bus to register

Z

C bus

SP

LV

CPP

TOS

OPC

PC

MDR

MAR

MBR

9

O

512 × 36-Bit control store for holding

the microprogram

3

8

4-to-16 Decoder

2

9

4

MPC

MIRAddr J ALU C M B

1-bit flip–flop

High bit

JMPC

JAMN/JAMZ

(Architettura degli Elaboratori) Processore 40 / 81

Page 11: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Circuito di controllo:Control store

(Architettura degli Elaboratori) Processore 41 / 81

Circuito di controlloInvia:• ai registri i segnali di lettura e scrittura;• alla memoria le istruzioni: read, write, fetch;• alla ALU il codice dell’istruzione da eseguire.

Determina micro-istruzione successiva via:• MBR (prima micro-istruzione nelle esecuzione

di un istruzione macchina);• la micro-istruzione corrente (micro-istruzioni

successive);• in alcuni casi, il primo bit dell’indirizzo

determinato dall’uscita della ALU (per poterimplementare i salti condizionati).

(Architettura degli Elaboratori) Processore 42 / 81

Prestazioni

MIC-1, processore (relativamente) completo mainefficiente (molto più semplice dei processoriattuali).

Prestazioni: computazione eseguibile nell’unita ditempo.

(Architettura degli Elaboratori) Processore 43 / 81

Miglioramento delleprestazioni

Due metodi:• Utilizzare istruzioni macchina più potenti, e

flessibili.Esempi:• Processori Intel x86: 8086 (1978) – 80286 – 386

(1985) – MMX — 3DNow — x86-64 (2000) — AVX;• ARM: ARMv1 — . . . — ARMv8;• MIPS: R2000 — R3000 — R4000;• IJVM→ JVM.

• Eseguire più istruzione nell’unità di tempo

(Architettura degli Elaboratori) Processore 44 / 81

Page 12: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Più istruzioni al secondo

Il funzionamento della CPU scandito da un clock,• diminuire il numero di micro-istruzioni (cicli di

clock) necessari per eseguire un’istruzionemacchina;aumentare la computazione svolta nel ciclo diclock:

• ridurre il ciclo di clock.

(Architettura degli Elaboratori) Processore 45 / 81

Più computazione per ciclodi clock

Aumentare la potenza di calcolo del data path,micro-istruzioni più potenti.• ALU con più operazioni,• più registri disponibili,• più possibilità di scambio dati (3 bus distinti)• un’unità separata per il caricamento delle

istruzioni: Instruction Fetch Unit (IFU)

(Architettura degli Elaboratori) Processore 46 / 81

Secondo progetto MIC-2

H

Shifter

ALUN

B bus

C bus

6ALU control

Control signals

Memory control registers

Enable onto B bus

Write C bus to register

To and from main memory

Z

MBR2

SP

LV

CPP

TOS

PC

MDR

MAR

MBR

OPC

Instruction fetch unit (IFU)

A bus

(Architettura degli Elaboratori) Processore 47 / 81

Ridurre il ciclo di clockSegnale di clock abilita la scrittura dei registri.Periodo di clock dato dalla somma dei ritardi.

Cycle 1 starts here

Shifter output stable

Registers loaded instantaneously from C bus and memory on rising edge of clock

Set up signals to drive data path

ALU and shifter

Drive H and B bus

Propagation from shifter to registers

∆w ∆x ∆y ∆z

Clock cycle 1 Clock cycle 2

MPC available here

New MPC used to load MIR with next microinstruction here

(Architettura degli Elaboratori) Processore 48 / 81

Page 13: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Ridurre il ciclo di clock

Due modi:• migliorare la tecnologici nei circuiti integrati:

transistor più veloci,• migliorare la strutture dei circuiti: realizzare

circuiti con meno ritardi (a parità di tipo ditransistor impiegati).

(Architettura degli Elaboratori) Processore 49 / 81

Architettura più veloceVelocizzare il data-path:

• circuito di controllo cablato,• ALU e circuiti combinatori più veloci, (un intero

settore di ricerca):l’ALU presentata nel testo particolarmenteinefficiente.

• esecuzione parallela, spezzare l’esecuzionedella micro-operazione in più stadi: la tecnicadella pipeline

(Architettura degli Elaboratori) Processore 50 / 81

Terzo progetto: Mic-3

H

A latchC latch B latch

Shifter

ALUN

B bus

C bus

6ALU control

Control signals

Memory control registers

Enable onto B bus

Write C bus to register

To and from main memory

Z

MBR2

SP

LV

CPP

TOS

PC

MDR

MAR

MBR1

OPC

Instruction fetch unit (IFU)

A bus

(Architettura degli Elaboratori) Processore 51 / 81

Mic-3 – Pipeline

Pipeline:• l’esecuzione della micro-operazione viene divisa

in più stadi• ogni stadi eseguito più rapidamente• i diversi stadi eseguiti in contemporanea su più

istruzioni

(Architettura degli Elaboratori) Processore 52 / 81

Page 14: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Pipeline – Paragoni

Possibile paragone preso dalla vita comune, unalavanderia:vestiti da lavare micro-operazionilavaggio acquisire i dati di ingressoasciugatura calcolo del risultatostiratura memorizzazione del risultato

Le varie fasi di lavoro sono portata avanti in parallelo.

(Architettura degli Elaboratori) Processore 53 / 81

La pipeline, secondoparagone.

La catena di montaggio:il lavoro viene scomposto in fasi, ognuna eseguita daun dispositivo specifico,si svolgono le diverse fasi, su componenti diverse, inparallelo.

In un processore si parallelizza l’esecuzione dellemicro-operazioni, (ciclo di clock);si migliora la banda passante ma non i tempi dirisposta.

Tecnica utilizzata in tutti i processori. In ambito Intel:dal 486 in poi (1989).

(Architettura degli Elaboratori) Processore 54 / 81

Esempio di scomposizione:

(a)

(b)

S1:

S2:

S3:

S4:

S5:

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7

1 2 3 4 5 6

1 2 3 4 5

1 2 3 4 5 6 7 8 9

Time

S1 S2 S3 S4 S5

Instruction fetch unit

Instruction decode

unit

Operand fetch unit

Instruction execution

unit

Write back unit

(Architettura degli Elaboratori) Processore 55 / 81

Altro esempio:

1

IFU

2

Decoder

3

Queue

4

Operands

5

Exec

6

Write back

7

Memory

Processori diversi usano scomposizioni, strutturedella pipeline, diverse.Lunghezza tipica di una pipeline: 7–14 stadi.Caso limite Pentium IV: 20 stadi di pipeline (guerradei GHz).

(Architettura degli Elaboratori) Processore 56 / 81

Page 15: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Processori superscalari

Aumentano ulteriormente il parallelismo:si migliora il rapporto istruzioni

cicli di clock ,

Iniziano contemporaneamente l’esecuzione di piùistruzioni: più pipeline operanti in parallelo.

S1 S2 S3 S4 S5

Instruction fetch unit

Instruction decode

unit

Operand fetch unit

Instruction execution

unit

Write back unit

Instruction decode

unit

Operand fetch unit

Instruction execution

unit

Write back unit

(Architettura degli Elaboratori) Processore 57 / 81

Processori superscalari

• I primi stadi (singoli) prelevano più istruzionidalla memoria, e le decodificano.

• Le istruzioni smistate su stadi successivimultipli.

• Spesso, uno stadio finale singolo che termina, inordine, le istruzioni.

(Architettura degli Elaboratori) Processore 58 / 81

Esempio: processoreSPARC

Pipeline specializzate.Integer pipeline

Fetch Decode Group

Execute Cache

Register

Write

Floating-point/graphics pipeline

N1 N2

N3

X1 X2 X3

Attualmente processori con 4-15 pipeline, decine dimicro-istruzione in contemporanea.

(Architettura degli Elaboratori) Processore 59 / 81

Problemi del parallelismo

Processori superscalari possono, potenzialmente,eseguire decine di istruzioni contemporaneamente.

Due fenomeni impediscono un completosfruttamento del parallelismo.

• Dipendenza tra istruzioni.• Istruzioni di salto.

(Architettura degli Elaboratori) Processore 60 / 81

Page 16: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Dipendenza tra istruzioni:In un programma le istruzioni sono stato pensate peressere eseguite in ordine.Un’esecuzione parallela, senza controlli, può portarea risultati scorretti. Tre casi:• RAW Read After Write:R0 = R1R2 = R0 + 1

• WAR Write After Read:R1 = R0 +1R0 = R2

• WAW Write After Write:R0 = R1R0 = R2 + 1(Architettura degli Elaboratori) Processore 61 / 81

Dipendenza tra istruzioniLe dipendenze vengono rilevate mediante unatabella delle dipendenze (scoreboard):memoria interna al processore che contaper ogni registro,le operazioni, di lettura e scrittura, in sospeso suquel registro.

Le istruzioni dipendenti devono essere sospese:

decadimento delle prestazioni, eseguiamo menooperazioni di quelle teoricamente possibili.Si creano bolle, zone inattive, nella pipeline.

(Architettura degli Elaboratori) Processore 62 / 81

Gestire la dipendenza traistruzioni

Tecniche per recuperare le prestazioni perse:• esecuzione fuori ordine: si mandano in

esecuzione le istruzioni non dipendenti;• registri ombra: si usano copie di registri su cui

memorizzare temporaneamente i dati;• register renaming: si usano nuovi registri, non

specificati dal codice.• multi-threading (hyper-threading): si eseguono

più programmi contemporaneamente,necessario duplicare i registri. Primo passoverso processori multicore.

(Architettura degli Elaboratori) Processore 63 / 81

Istruzioni di saltocondizionato

Problematiche per i processori con pipeline:• il processore impiega alcuni cicli di clock per

valutare la condizione,• nel frattempo, non sa quali istruzioni eseguire.

Due possibili soluzioni:• stall non si inizia alcuna istruzione: corretta ma

con decadimento delle prestazioni;• si fa una predizione di salto: taken, not taken, si

inizia l’esecuzione condizionata di alcuneistruzioni:esecuzione annullata se la previsione si rivelaerrata.Assicura buone prestazioni.

(Architettura degli Elaboratori) Processore 64 / 81

Page 17: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Tecniche per la predizionedi salto

Due classi:• predizione statica, sul codice:

• semplice: si eseguono i salti indietro,• suggerite dal compilatore, programmatore: istruzioni

di salto con suggerimento,• predizione dinamica, sull’esecuzione:

viene usata una history table (ricorda ilcomportamento passato di alcune istruzioni disalto, poche istruzioni, pochi bit),

In un programma numerose istruzioni di salto: unabuona predizione di salto è fondamentale per leprestazioni.

(Architettura degli Elaboratori) Processore 65 / 81

Esecuzione Speculativa:nel caso di salto condizionato,non si tenta la predizione masi eseguono entrambe le possibili continuazioni delprogramma.

Pur di alimentare il processore, si eseguono anchealcune istruzioni che sicuramente verranno scartate.Problemi:• l’esecuzione deve essere reversibile: registri

ombra, istruzioni che generano trap,• evitare l’esecuzione di istruzioni costose:

SPECULATIVE LOAD.(Architettura degli Elaboratori) Processore 66 / 81

Esecuzione Speculativaevensum = 0;

oddsum = 0;

i = 0;

while (i < limit) {

k = i * i * i;k = i * i * i;

if ((i/2) * 2) == 0)

evensum = evensum + k;

else

oddsum = oddsum + k;

}(a) (b)

evensum = 0;

oddsum = 0;

i = 0;

while (i < limit)

if ((i/2) * 2) = = 0)

T F

evensum = evensum + k; oddsum = oddsum + k;

i = i + 1;i = i + 1;

i >= limit

(Architettura degli Elaboratori) Processore 67 / 81

La memoria principaletroppo lenta

La differenza di velocità tra processore e memoria èaumenta col tempo.

L’accesso in memoria operazione costosa:il processore deve attendere il datoper più di una decina di cicli di clock.

Memoria Cache: memoria piccola e veloce:contiene i dati utilizzati più frequentemente.

(Architettura degli Elaboratori) Processore 68 / 81

Page 18: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

La memoria cache

Funzionamento:

• prima si cerca il dato in cache (cache hit),• in caso di fallimento (cache miss): si carica il

dato in cache dalla memoria principale.

Migliori prestazioni solo con numerosi cache hit.

(Architettura degli Elaboratori) Processore 69 / 81

Cache a più livelliAumenta il divario di velocità tra CPU RAM;per evitare cache miss troppe costose, un secondolivello di cache:• più ampio• tecnologia meno costosa• più lento• contiene un sovrainsieme della memoria di

primo livelloSpesso sono presenti 3 livelli di cache.

Esempio - Sandy Bridge: livello 1: 32KB; livello 2:256KB, livello 3: 1–20MB;

(Architettura degli Elaboratori) Processore 70 / 81

Split cache

cache divisa in due parti: dati e istruzioni• normalmente cache L1 (di primo livello)• permette di parallelizzare l’accesso in memoria

• l’IFU accede alle istruzioni• l’unità Dispatch/Execute accede ai dati

(Architettura degli Elaboratori) Processore 71 / 81

Esempio di configurazione

Processor board

CPU package CPU chip

Keyboard controller

Graphics controller

Disk controller

Main memory (DRAM)

L1-I L1-D

Unified L2 cache

Unified L3 cache

Split L1 instruction and data caches Board-level cache (SRAM)

(Architettura degli Elaboratori) Processore 72 / 81

Page 19: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Valutazione delleprestazioni

Le velocità di un calcolatore con processoresuperscalare dipende fortemente da quanto vienesfruttato il potenziale parallelismo:• percentuale delle istruzioni non bloccate per

dipendenze,• percentuale di predizioni di salto corrette,• percentuale cache hit.

Queste percentuali difficilmente valutabili a tavolino,dipendono dal tipo di programmi eseguiti.Una corretta valutazione delle prestazione puòessere fatto solo tramite test.

(Architettura degli Elaboratori) Processore 73 / 81

CPU Corei-7, Architett.Sandy-Bridge

• multicore, hyper-threading;• processore CISC con cuore RISC;• i primi stadi della pipeline traducono codice

CISC in istruzioni RISC,• depositate nella cache L0;• più simile al Pentium II (P6) che al Pentium 4;• risparmio energetico;• predizione di salto sofisticata (algoritmo segreto)• controllore memoria, cache L3 (condivisa) e

processore grafico integrati nello stesso chip;• nuove istruzioni grafiche AVX (Advanced Vector

Extensions);(Architettura degli Elaboratori) Processore 74 / 81

Architettura Sandy Bridge

(Architettura degli Elaboratori) Processore 75 / 81

Sandy Bridge, pipeline

(Architettura degli Elaboratori) Processore 76 / 81

Page 20: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Sandy bridge, chip

(Architettura degli Elaboratori) Processore 77 / 81

Architettura Cortex A9

• Progettata ARM ltd, realizzata da varicostruttori;

• core che viene integrato in SoC (System onChip), (calcolatori su un singolo chip)

• implemeta istruzione ARMv7• strutturalmente abbastanza simile al Sandy

Bridge,• manca lo stadio iniziale di traduzione istruzioni

CISC -> RISC.

(Architettura degli Elaboratori) Processore 78 / 81

Architettura Cortex A9

(Architettura degli Elaboratori) Processore 79 / 81

Architettura Cortex A9

(Architettura degli Elaboratori) Processore 80 / 81

Page 21: Processore Struttura schematica di un calcolatorepietro.digianantonio/... · Struttura schematica di un calcolatore Central processing unit (CPU) Control unit Arithmetic ... Si costruiscono

Architettura Cortex A9

(Architettura degli Elaboratori) Processore 81 / 81