esecuzione dei programmi

21
ESECUZIONE DEI PROGRAMMI ESECUZIONE DEI PROGRAMMI Il programma e’ formato da una Il programma e’ formato da una sequenza di istruzioni sequenza di istruzioni Il programma viene scritto utilizzando Il programma viene scritto utilizzando un un LINGUAGGIO DI ALTO LIVELLO LINGUAGGIO DI ALTO LIVELLO (cioe’ (cioe’ vicino al linguaggio naturale vicino al linguaggio naturale dell’uomo) dell’uomo) Per essere eseguito dal computer in Per essere eseguito dal computer in programma deve essere programma deve essere TRADOTTO TRADOTTO in in programma scritto in programma scritto in LINGUAGGIO DI LINGUAGGIO DI BASSO LIVELLO BASSO LIVELLO (cioe’ vicino alla (cioe’ vicino alla macchina) macchina)

Upload: madra

Post on 20-Jan-2016

45 views

Category:

Documents


0 download

DESCRIPTION

ESECUZIONE DEI PROGRAMMI. Il programma e’ formato da una sequenza di istruzioni Il programma viene scritto utilizzando un LINGUAGGIO DI ALTO LIVELLO (cioe’ vicino al linguaggio naturale dell’uomo) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ESECUZIONE DEI PROGRAMMI

ESECUZIONE DEI PROGRAMMIESECUZIONE DEI PROGRAMMI

Il programma e’ formato da una sequenza Il programma e’ formato da una sequenza di istruzionidi istruzioni

Il programma viene scritto utilizzando un Il programma viene scritto utilizzando un LINGUAGGIO DI ALTO LIVELLO LINGUAGGIO DI ALTO LIVELLO (cioe’ (cioe’ vicino al linguaggio naturale dell’uomo)vicino al linguaggio naturale dell’uomo)

Per essere eseguito dal computer in Per essere eseguito dal computer in programma deve essere programma deve essere TRADOTTO TRADOTTO in in programma scritto inprogramma scritto in LINGUAGGIO DI LINGUAGGIO DI BASSO LIVELLO BASSO LIVELLO (cioe’ vicino alla (cioe’ vicino alla macchina)macchina)

Page 2: ESECUZIONE DEI PROGRAMMI

PROGRAMMI espressi con LINGUAGGIPROGRAMMI espressi con LINGUAGGI

Dal Dal programma in programma in Linguaggio di alto livello Linguaggio di alto livello : : es: BASIC, C, FORTRAN, C ++, JAVAes: BASIC, C, FORTRAN, C ++, JAVA

Input A,BInput A,B

C= A*BC= A*B

TRADUTTORITRADUTTORI

Al Al programma programma eseguibile se eseguibile se TRADOTTO TRADOTTO in in Linguaggio macchinaLinguaggio macchina

ESPRESSO CON ESPRESSO CON ISTRUZIONI ELEMENTARI ISTRUZIONI ELEMENTARI e e IN IN CODIFICA BINARIA (0 e 1) (istruzione CODIFICA BINARIA (0 e 1) (istruzione macchina)macchina)

Page 3: ESECUZIONE DEI PROGRAMMI

Istruzioni macchinaIstruzioni macchina

0 read 80 read 81 read 91 read 92 loadA 82 loadA 83 loadB 93 loadB 94 MUL4 MUL5 storeA 85 storeA 86 write 86 write 87 halt7 halt8 3.3008 3.3009 4509 450

RAMRAM

Istruzioni si dividono in 2 parti:Istruzioni si dividono in 2 parti:CODICE OPERATIVO CODICE OPERATIVO specifica l’operazione da compierespecifica l’operazione da compiere

OPERANDO: OPERANDO: le locazioni delle celle di memoria cui le locazioni delle celle di memoria cui l’operazione si riferiscel’operazione si riferisce

Ciascuna Ciascuna istruzioneistruzione e’ in linguaggio e’ in linguaggio macchinamacchina a) se è a) se è ELEMENTAREELEMENTARE

Istruz: MOLT. 3.300*450Istruz: MOLT. 3.300*450 celle 0/7 =istruzionicelle 0/7 =istruzioni

celle 8/9 = daticelle 8/9 = dati

Page 4: ESECUZIONE DEI PROGRAMMI

Cap.II - Architettura del calcolatore - pag.Cap.II - Architettura del calcolatore - pag. 44

...... ...... B) se espressa in B) se espressa in BITBIT: 0 e 1: 0 e 1cosi’ codificatecosi’ codificate::

01000000000010000100000000001000

01000000000010010100000000001001

00000000000010010000000000001001

00010000000010010001000000001001

10000000000000001000000000000000

00100000000010000010000000001000

01010000000010000101000000001000

11010000000000001101000000000000

00000000000000000000000000000000

Page 5: ESECUZIONE DEI PROGRAMMI

SET DI ISTRUZIONISET DI ISTRUZIONI Il programma Il programma è eseguibileè eseguibile se composto da istruzioni se composto da istruzioni

macchina (ognuna formata da macchina (ognuna formata da codice operativo e operando espressi in binario)

01001001 0011001101001001 00110011

2 aspetti della CPU: 2 aspetti della CPU: strutturastruttura e e prestazioni Ogni CPU si caratterizza per il suo linguaggio macchina, Ogni CPU si caratterizza per il suo linguaggio macchina,

ovvero per ovvero per l’insieme di istruzionil’insieme di istruzioni che e’ in grado di che e’ in grado di eseguire, eseguire, ovvero per il SET dei ovvero per il SET dei codici operativi,codici operativi, decodificabili ed eseguibili da una CPUdecodificabili ed eseguibili da una CPU. .

Il SET DI ISTRUZIONIIl SET DI ISTRUZIONI in grado di decodificare ed in grado di decodificare ed eseguire definisce la sua ARCHITETTURA o STRUTTURA eseguire definisce la sua ARCHITETTURA o STRUTTURA (ovvero come è fatta)(ovvero come è fatta)

Da CPU semplici a CPU molto complesseDa CPU semplici a CPU molto complesse

Page 6: ESECUZIONE DEI PROGRAMMI

SET DI ISTRUZIONI e STRUTTURA CPUSET DI ISTRUZIONI e STRUTTURA CPU Microprocessori sul mercato: INTEL, AMD, Microprocessori sul mercato: INTEL, AMD,

MOTOROLA, CYRIX, ALPHA, POWER PC, MOTOROLA, CYRIX, ALPHA, POWER PC, NEXGEN, SPARC (SUN+TEXAS), MIPS, HP8000NEXGEN, SPARC (SUN+TEXAS), MIPS, HP8000

CPU appartenenti alla stessa CPU appartenenti alla stessa FAMIGLIA (es: FAMIGLIA (es: INTEL) hanno una architettura “similare” e INTEL) hanno una architettura “similare” e riconoscono lo stesso set di istruzioni macchina, riconoscono lo stesso set di istruzioni macchina, sono “COMPATIBILI”sono “COMPATIBILI”

CPU diverse, con CPU diverse, con architettura e set di istruzioni architettura e set di istruzioni diverse,diverse, NON SONO COMPATIBILI NON SONO COMPATIBILI

L’esecuzione di L’esecuzione di ogni singola istruzione ogni singola istruzione MACCHINA MACCHINA avviene attraverso lo svolgimento, a avviene attraverso lo svolgimento, a sua volta, di una sua volta, di una serie di operazioni elementariserie di operazioni elementari che coinvolgono i componenti elementari della che coinvolgono i componenti elementari della CPUCPU e la MEMORIA PRINCIPALE ( e la MEMORIA PRINCIPALE (RAM)RAM)

Page 7: ESECUZIONE DEI PROGRAMMI

MEMORIA CENTRALEMEMORIA CENTRALE

Puo’ essere vista come una grossa Puo’ essere vista come una grossa “tabella”“tabella” che ha per righe le varie celle e che ha per righe le varie celle e un numero di colonne pari al n.ro di bit un numero di colonne pari al n.ro di bit che compongono le celle (o che compongono le celle (o locazionilocazioni). ).

STRUTTURA A MATRICE in cui il STRUTTURA A MATRICE in cui il byte byte e’ e’ l’unita’ minima l’unita’ minima

bit 1 bit n

1^ cella

N^ cella

Page 8: ESECUZIONE DEI PROGRAMMI

INDIRIZZAMENTO INDIRIZZAMENTO RAM RAM

CIASCUNA CIASCUNA CELLA o locazioneCELLA o locazione ha un ha un contenuto ed un indirizzocontenuto ed un indirizzo

PUO’ ESSERE INDIRIZZATA (selezionata PUO’ ESSERE INDIRIZZATA (selezionata tramite indirizzo relativo)tramite indirizzo relativo)

00

11

22

33

44

......

indirizzoindirizzo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

contenutocontenuto

Page 9: ESECUZIONE DEI PROGRAMMI

CPU - STRUTTURA: 3 sottosistemiCPU - STRUTTURA: 3 sottosistemi A L U A L U - Unita’ logico-aritmetica - esegue le - Unita’ logico-aritmetica - esegue le

operazioni aritmetiche e logicheoperazioni aritmetiche e logiche CONTROL UNIT CONTROL UNIT - Unita’ di controllo: - Unita’ di controllo:

decodificadecodifica le istruzioni ed invia gli opportuni le istruzioni ed invia gli opportuni segnali alle altre unita’,segnali alle altre unita’, coordinacoordina il il funzionamento dell’intera CPUfunzionamento dell’intera CPU

REGISTRI: REGISTRI: locazioni di memoria di locazioni di memoria di pochi bytepochi byte all’interno della CPU, all’interno della CPU, velociveloci,specializzate per ,specializzate per particolari funzioni- ruolo di “particolari funzioni- ruolo di “cuscinettocuscinetto”. ”.

CONTROLCONTROLUNITUNIT

REGISTRIREGISTRI

CCPPUU

ALUALU

Page 10: ESECUZIONE DEI PROGRAMMI

CPU semplice e generica – CPU semplice e generica – (pag.11CNR)(pag.11CNR)

CLOCKCLOCK

UNITA’UNITA’CONTROLLOCONTROLLO

R. DATIR. DATI R. INDIRIZZIR. INDIRIZZI RAMRAM

ALUALU

R. PCR. PC

R. Istruz.R. Istruz.Corrente)Corrente)

R. STATOR. STATO

AA

BB

ACCUMACCUM

UNITA’ DICONTROLLO

Page 11: ESECUZIONE DEI PROGRAMMI

Registri e CLOCK di sistema Registri e CLOCK di sistema

RegistriRegistri servono per mantenere dati e istruzioni servono per mantenere dati e istruzioni quando CPU opera e per trasferimento sul busquando CPU opera e per trasferimento sul bus

TIMER O OROLOGIO INTERNO CHE TIMER O OROLOGIO INTERNO CHE SCANDISCE la SINGOLA SCANDISCE la SINGOLA OPERAZIONE OPERAZIONE ELEMENTAREELEMENTARE CHE LA CPU COMPIE NELLA CHE LA CPU COMPIE NELLA ESECUZIONE DI UNA ISTRUZIONE.ESECUZIONE DI UNA ISTRUZIONE.

L’ESECUZIONE DI UNA ISTRUZIONE E’ UN L’ESECUZIONE DI UNA ISTRUZIONE E’ UN PROCESSO PROCESSO NON CONTINUONON CONTINUO MA MA DISCRETIZZATODISCRETIZZATO IN UN NUMERO IN UN NUMERO BEN DEFINITO diBEN DEFINITO di PASSI ELEMENTARIPASSI ELEMENTARI (a seconda della (a seconda della CPU) ciascuno scandito dal clock. CPU) ciascuno scandito dal clock.

Tale intervallo temporale e’ detto anche Tale intervallo temporale e’ detto anche CICLO CICLO MACCHINAMACCHINA

Page 12: ESECUZIONE DEI PROGRAMMI

Svolgimento di una Svolgimento di una istruzione istruzione macchinamacchina ( (3 fasi)3 fasi):: 1^ FASE DI FETCHING (RICERCA)1^ FASE DI FETCHING (RICERCA): :

indirizzamento della memoria, prelevamento indirizzamento della memoria, prelevamento della istruzione dalla memoria (indirizzo indicato della istruzione dalla memoria (indirizzo indicato nel nel registro PCregistro PC) e caricamento nel ) e caricamento nel registro ICregistro IC

2^ FASE DI DECODING (DECODIFICA):2^ FASE DI DECODING (DECODIFICA): decodifica del tipo di istruzione contenuta nel decodifica del tipo di istruzione contenuta nel registro IC tramite l’UC e predisposizione della registro IC tramite l’UC e predisposizione della sequenza delle operazioni necessarie per la sequenza delle operazioni necessarie per la esecuzione esecuzione

3^ FASE DI EXECUTING (ESECUZIONE)3^ FASE DI EXECUTING (ESECUZIONE): : l’istruzione viene eseguita, se necessario si l’istruzione viene eseguita, se necessario si attiva attiva l’ALUl’ALU per per calcolicalcoli e si accede alla RAM per i e si accede alla RAM per i dati, con l’uso del registro di lavoro dati, con l’uso del registro di lavoro ACCUMULATOREACCUMULATORE

Page 13: ESECUZIONE DEI PROGRAMMI

PARAMETRI PER VALUTARE LA PARAMETRI PER VALUTARE LA POTENZA DELLA CPU POTENZA DELLA CPU

1) SET di ISTRUZIONI 1) SET di ISTRUZIONI

2) PARALLELISMO INTERNO ed 2) PARALLELISMO INTERNO ed ESTERNOESTERNO

3) CLOCK DI SISTEMA (frequenza)3) CLOCK DI SISTEMA (frequenza)

4) Capacità ALU e F.P.U.4) Capacità ALU e F.P.U.

5) CACHE INTERNA ED ESTERNA: 5) CACHE INTERNA ED ESTERNA: esistenza e dimensioniesistenza e dimensioni

66) N.ro di processori (oggi)) N.ro di processori (oggi)

Page 14: ESECUZIONE DEI PROGRAMMI

1. SET DI ISTRUZIONI1. SET DI ISTRUZIONI: : ARCHITETTURE CPU: CISC/RISCARCHITETTURE CPU: CISC/RISC

OGGI ......OGGI ......???????? 80486 - 80486 - PENTIUM 4- Pentium PENTIUM 4- Pentium

E.E. – AMD 64 FX - POWER PC E.E. – AMD 64 FX - POWER PC SEMPRE SEMPRE PIU’ NUMEROSE E PIU’ NUMEROSE E PIU’ COMPLESSE PIU’ COMPLESSE !!!!!!!!

CNR pag. 24 – PC MAG 2005CNR pag. 24 – PC MAG 2005 All’inizio CISC e RISCAll’inizio CISC e RISC CISC CISC – Complex Istruction – Set – Complex Istruction – Set

Computer Computer RISCRISC – Reduced Instruction Set – Reduced Instruction Set

ComputerComputer Oggi “Oggi “CRISP” – distinzione CRISP” – distinzione

venuta meno – elementi di venuta meno – elementi di entrambe le architettureentrambe le architetture

Page 15: ESECUZIONE DEI PROGRAMMI

2° elemento di potenza: . PARALLELISMO 2° elemento di potenza: . PARALLELISMO INTERNO ed ESTERNOINTERNO ed ESTERNO

PARALLELISMO INTERNOPARALLELISMO INTERNO: da : da 8-16-32-64 8-16-32-64 bit. bit. – indica il n.ro di bit che possono essere – indica il n.ro di bit che possono essere trattati trattati in parallelo internamentein parallelo internamente. Una CPU a 16 bit . Una CPU a 16 bit significa che i registri dove vengono caricate le significa che i registri dove vengono caricate le istruzioni e i dati sono ampi 16 bit, che i percorsi istruzioni e i dati sono ampi 16 bit, che i percorsi interni ed esterni alla CPU sono ampi 16 bit interni ed esterni alla CPU sono ampi 16 bit (dimensioni dei registri interni, dell’ALU, del (dimensioni dei registri interni, dell’ALU, del bus internobus interno))

A parita’, la CPU a 16 bit e’ 4 volte meno rapida di A parita’, la CPU a 16 bit e’ 4 volte meno rapida di quella a 64 bit (4 cicli macchina): piu’ bit ha,quella a 64 bit (4 cicli macchina): piu’ bit ha, più è più è elevato il parallelismo, elevato il parallelismo, maggiore e’ la velocita’maggiore e’ la velocita’

Dal 2004: nuove CPU con parall. Interno a 64 bitDal 2004: nuove CPU con parall. Interno a 64 bit PARALLELISMO ESTERNOPARALLELISMO ESTERNO: dimensioni bus dei dati + : dimensioni bus dei dati +

registro datiregistro dati

Page 16: ESECUZIONE DEI PROGRAMMI

Il clock: 3° parametro Il clock: 3° parametro Ciascuna istruzione macchina Ciascuna istruzione macchina Es: READ 8 = Es: READ 8 = 0100000000001000 0100000000001000

si svolge in si svolge in 3 fasi3 fasi Ciascuna faseCiascuna fase si svolge eseguendo una serie di si svolge eseguendo una serie di

microistruz. o microistruz. o operaz.elementarioperaz.elementari (o cicli macchina), (o cicli macchina), diversi fra CPU: esempio CISCdiversi fra CPU: esempio CISC

fetch fetch esecuzioneesecuzione O - RI RDP - RD O - RI RDP - RD MEM(RI) - RD OP(RIC) - RIMEM(RI) - RD OP(RIC) - RI RD - RIC RD - MEM(RI)RD - RIC RD - MEM(RI) PC + 1 - PCPC + 1 - PC Ciascuna microistruzione o ciclo macchina o microciclo Ciascuna microistruzione o ciclo macchina o microciclo

dura un dura un periodo di clockperiodo di clock Il clock di sistema scandisce con Il clock di sistema scandisce con impulsi ogni cicloimpulsi ogni ciclo: più : più

sono gli impulsi, maggiori sono le operazioni eseguite a sono gli impulsi, maggiori sono le operazioni eseguite a parità di tempo, più è parità di tempo, più è VELOCE la CPU.VELOCE la CPU.

Page 17: ESECUZIONE DEI PROGRAMMI

Velocita’ operativa della CPU= Velocita’ operativa della CPU= FREQUENZAFREQUENZA del CLOCK del CLOCK

La frequenza degli IMPULSI del clock è La frequenza degli IMPULSI del clock è misurata in Mhz misurata in Mhz ((33,50,66,133,166,200,500,800,1000,1200,... 4.000 33,50,66,133,166,200,500,800,1000,1200,... 4.000 MhzMhz) )

La frequenza indica quanti cicli (operazioni elementari o La frequenza indica quanti cicli (operazioni elementari o microistruzioni) la macchina compie in un secondo (o microistruzioni) la macchina compie in un secondo (o quanti impulsi il clock scandisce)quanti impulsi il clock scandisce)

Es: (i 8086) Es: (i 8086) 4,7 Mhz4,7 Mhz 4.700.0004.700.000 cicli cicli 1/4.700.000 = 0,00000021 =1/4.700.000 = 0,00000021 = 210 ns210 ns 50 Mhz50 Mhz (486dx) = 50.000.000 cicli(486dx) = 50.000.000 cicli

= 1/50.000.000 = 0,000000020 = = 1/50.000.000 = 0,000000020 = 20 ns20 ns 500 Mhz500 Mhz (Pentium II) = (Pentium II) = 2 ns2 ns 2.000 – 3.700 Mhz (2,0- 3,7 GHZ) 2.000 – 3.700 Mhz (2,0- 3,7 GHZ) (Pentium 4 (Pentium 4

– AMD)– AMD) = da 0,5 ns a 0,3 ns = da 0,5 ns a 0,3 ns

Page 18: ESECUZIONE DEI PROGRAMMI

Il clock: parametro di velocitàIl clock: parametro di velocità Il Pentium 4 (1° versione) a 1.600 Mhz ha una Il Pentium 4 (1° versione) a 1.600 Mhz ha una

velocità doppia di un Pentium 4 a 800 Mhz: velocità doppia di un Pentium 4 a 800 Mhz: solo solo se CPU è identicase CPU è identica

In funzione della architettura, possiamo avere 3 In funzione della architettura, possiamo avere 3 tipi di CPUtipi di CPU

1)1) CPU non scalari:CPU non scalari: (fino al i386) più cicli per (fino al i386) più cicli per eseguire una istruzioneeseguire una istruzione

2)2) CPU scalari:CPU scalari: (i486) 1 istruzione in 1 ciclo (i486) 1 istruzione in 1 ciclo

3)3) CPU superscalariCPU superscalari: più di una istruzione in 1 ciclo : più di una istruzione in 1 ciclo di clock (il Pentium)di clock (il Pentium)

Non ha senso confrontare il clock di CPU diverseNon ha senso confrontare il clock di CPU diverse (es: Pentium 400 è più veloce del Celeron 500)(es: Pentium 400 è più veloce del Celeron 500)

Page 19: ESECUZIONE DEI PROGRAMMI

CLOCK velocità CPU CLOCK velocità CPU

Il CLOCK di SISTEMA e’ un parametro Il CLOCK di SISTEMA e’ un parametro VALIDO VALIDO per mettere a CONFRONTO la per mettere a CONFRONTO la POTENZA di CPU solo se:POTENZA di CPU solo se:

Il Il set delle istruzioni set delle istruzioni e’ ugualee’ uguale IlIl n.ro di microistruzioni n.ro di microistruzioni o cicli macchina o cicli macchina

per istruzione per istruzione e’ ugualee’ uguale

E’ UN E’ UN PARAMETRO DI CONFRONTO e di PARAMETRO DI CONFRONTO e di VALUTAZIONE SOLO TRA CPU VALUTAZIONE SOLO TRA CPU

IDENTICHEIDENTICHE

Page 20: ESECUZIONE DEI PROGRAMMI

Clock come parametro di potenzaClock come parametro di potenza Non ha senso oggi confrontare sigle di Pentium 4 Non ha senso oggi confrontare sigle di Pentium 4

diverse o CPU Pentium e AMD sulla base del diverse o CPU Pentium e AMD sulla base del solo clocksolo clock sia perché il n.ro di operazioni per istruzioni è diverso sia perché il n.ro di operazioni per istruzioni è diverso sia perché sono state introdotte all’interno delle CPU sia perché sono state introdotte all’interno delle CPU funzioni e componenti complesse che fanno la funzioni e componenti complesse che fanno la differenzadifferenza

La “rincorsa/identificazione delle CPU” sulla base del La “rincorsa/identificazione delle CPU” sulla base del SOLO clock è finitaSOLO clock è finita: fino al Pentium 4 di 1° generazione : fino al Pentium 4 di 1° generazione la potenza si qualificava già dalla la potenza si qualificava già dalla sigla della CPUsigla della CPU con il con il solo clock: era un elemento immediato di misura della solo clock: era un elemento immediato di misura della velocità velocità

Spesso Spesso la frequenza del clock non compare piùla frequenza del clock non compare più nel nel nome della CPU e bisogna guardare tutte le altre nome della CPU e bisogna guardare tutte le altre funzioni nella CPUfunzioni nella CPU

OFFERTA CPU = offerta piani tariffari telefonia MOBILEOFFERTA CPU = offerta piani tariffari telefonia MOBILE

Page 21: ESECUZIONE DEI PROGRAMMI

4° elemento: l’ALU e la FPU4° elemento: l’ALU e la FPU

Capacità di calcolo dell’ALUCapacità di calcolo dell’ALU 1° ALU – solo addizioni – resto con 1° ALU – solo addizioni – resto con

programmi ad hocprogrammi ad hoc Differenza le CPU con Differenza le CPU con COPROCESSORE COPROCESSORE

MATEMATICO o F.P.U.MATEMATICO o F.P.U. (i386 – i387) (486 (i386 – i387) (486 dx – 486sx)dx – 486sx)

Oggi tutte CPU con F.P.U. –Oggi tutte CPU con F.P.U. –Floating Point Floating Point Unit Unit

Importante nelle applicazioni matematiche, Importante nelle applicazioni matematiche, ingegneristiche, CAD, grafica, videogiochi, ingegneristiche, CAD, grafica, videogiochi, multimedialimultimediali