Obiezione a un atto di esecuzione: l'impatto dei prodotti ...
ESECUZIONE DEI PROGRAMMI
description
Transcript of 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)
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)
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
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
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
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)
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
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
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
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
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
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
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)
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
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
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.
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
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)
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
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
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