210 likes | 333 Views
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)
E N D
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) • Per essere eseguito dal computer in programma deve essere TRADOTTO in programma scritto in LINGUAGGIO DI BASSO LIVELLO (cioe’ vicino alla macchina)
PROGRAMMI espressi con LINGUAGGI Dal programma in Linguaggio di alto livello : es: BASIC, C, FORTRAN, C ++, JAVA Input A,B C= A*B TRADUTTORI Al programma eseguibile se TRADOTTO in Linguaggio macchina ESPRESSO CON ISTRUZIONI ELEMENTARI e IN CODIFICA BINARIA (0 e 1) (istruzione macchina)
Istruzioni macchina • Istruzioni si dividono in 2 parti: CODICE OPERATIVO specifica l’operazione da compiere OPERANDO: le locazioni delle celle di memoria cui l’operazione si riferisce • Ciascuna istruzione e’ in linguaggio macchina a) se è ELEMENTARE Istruz: MOLT. 3.300*450 celle 0/7 =istruzioni celle 8/9 = dati 0 read 8 1 read 9 2 loadA 8 3 loadB 9 4 MUL 5 storeA 8 6 write 8 7 halt 8 3.300 9 450 RAM
...... B) se espressa in BIT: 0 e 1 cosi’ codificate: 0100000000001000 0100000000001001 0000000000001001 0001000000001001 1000000000000000 0010000000001000 0101000000001000 1101000000000000 0000000000000000
SET DI ISTRUZIONI • Il programma è eseguibile se composto da istruzioni macchina (ognuna formata da codice operativo e operando espressiin binario) 01001001 00110011 • 2 aspetti della CPU: struttura e prestazioni • Ogni CPU si caratterizza per il suo linguaggio macchina, ovvero per l’insieme di istruzioni che e’ in grado di eseguire, ovvero per il SET dei codici operativi, decodificabili ed eseguibili da una CPU. • Il SET DI ISTRUZIONI in grado di decodificare ed eseguire definisce la sua ARCHITETTURA o STRUTTURA (ovvero come è fatta) • Da CPU semplici a CPU molto complesse
SET DI ISTRUZIONI e STRUTTURA CPU • Microprocessori sul mercato: INTEL, AMD, MOTOROLA, CYRIX, ALPHA, POWER PC, NEXGEN, SPARC (SUN+TEXAS), MIPS, HP8000 • CPU appartenenti alla stessa FAMIGLIA (es: INTEL) hanno una architettura “similare” e riconoscono lo stesso set di istruzioni macchina, sono “COMPATIBILI” • CPU diverse, con architettura e set di istruzioni diverse, NON SONO COMPATIBILI • L’esecuzione di ogni singola istruzione MACCHINA avviene attraverso lo svolgimento, a sua volta, di una serie di operazioni elementari che coinvolgono i componenti elementari della CPU e la MEMORIA PRINCIPALE (RAM)
MEMORIA CENTRALE • Puo’ essere vista come una grossa “tabella” che ha per righe le varie celle e un numero di colonne pari al n.ro di bit che compongono le celle (o locazioni). • STRUTTURA A MATRICE in cui il byte e’ l’unita’ minima bit 1 bit n 1^ cella N^ cella
INDIRIZZAMENTO RAM CIASCUNA CELLA o locazione ha un contenuto ed un indirizzo PUO’ ESSERE INDIRIZZATA (selezionata tramite indirizzo relativo) 0 1 2 3 4 ... contenuto !!!!!!!!!!!!!!! indirizzo
CPU - STRUTTURA: 3 sottosistemi • A L U - Unita’ logico-aritmetica - esegue le operazioni aritmetiche e logiche • CONTROL UNIT - Unita’ di controllo: decodifica le istruzioni ed invia gli opportuni segnali alle altre unita’,coordina il funzionamento dell’intera CPU • REGISTRI: locazioni di memoria di pochi byte all’interno della CPU, veloci,specializzate per particolari funzioni- ruolo di “cuscinetto”. C P U CONTROL UNIT ALU REGISTRI
CPU semplice e generica – (pag.11CNR) R. STATO R. PC ACCUM ALU A R. Istruz. Corrente) B UNITA’ DI CONTROLLO UNITA’ CONTROLLO CLOCK RAM R. DATI R. INDIRIZZI
Registri e CLOCK di sistema • Registri servono per mantenere dati e istruzioni quando CPU opera e per trasferimento sul bus • TIMER O OROLOGIO INTERNO CHE SCANDISCE la SINGOLA OPERAZIONE ELEMENTARECHE LA CPU COMPIE NELLA ESECUZIONE DI UNA ISTRUZIONE. • L’ESECUZIONE DI UNA ISTRUZIONE E’ UN PROCESSO NON CONTINUO MA DISCRETIZZATO IN UN NUMERO BEN DEFINITO diPASSI ELEMENTARI (a seconda della CPU) ciascuno scandito dal clock. • Tale intervallo temporale e’ detto anche CICLO MACCHINA
Svolgimento di una istruzione macchina (3 fasi): • 1^ FASE DI FETCHING (RICERCA): indirizzamento della memoria, prelevamento della istruzione dalla memoria (indirizzo indicato nel registro PC) e caricamento nel registro IC • 2^ FASE DI DECODING (DECODIFICA): decodifica del tipo di istruzione contenuta nel registro IC tramite l’UC e predisposizione della sequenza delle operazioni necessarie per la esecuzione • 3^ FASE DI EXECUTING (ESECUZIONE): l’istruzione viene eseguita, se necessario si attiva l’ALU per calcoli e si accede alla RAM per i dati, con l’uso del registro di lavoro ACCUMULATORE
PARAMETRI PER VALUTARE LA POTENZA DELLA CPU 1) SET di ISTRUZIONI 2) PARALLELISMO INTERNO ed ESTERNO 3) CLOCK DI SISTEMA (frequenza) 4) Capacità ALU e F.P.U. 5) CACHE INTERNA ED ESTERNA: esistenza e dimensioni 6) N.ro di processori (oggi)
1. SET DI ISTRUZIONI: ARCHITETTURE CPU: CISC/RISCOGGI ......???? • 80486 - PENTIUM 4- Pentium E.E. – AMD 64 FX - POWER PC SEMPRE PIU’ NUMEROSE E PIU’ COMPLESSE !!!! • CNR pag. 24 – PC MAG 2005 • All’inizio CISC e RISC • CISC – Complex Istruction – Set Computer • RISC – Reduced Instruction Set Computer • Oggi “CRISP” – distinzione venuta meno – elementi di entrambe le architetture
2° elemento di potenza: . PARALLELISMO INTERNO ed ESTERNO • PARALLELISMO INTERNO: da 8-16-32-64 bit. – indica il n.ro di bit che possono essere trattati in parallelo internamente. Una CPU a 16 bit significa che i registri dove vengono caricate le istruzioni e i dati sono ampi 16 bit, che i percorsi interni ed esterni alla CPU sono ampi 16 bit (dimensioni dei registri interni, dell’ALU, del bus interno) • A parita’, la CPU a 16 bit e’ 4 volte meno rapida di quella a 64 bit (4 cicli macchina): piu’ bit ha, più è elevato il parallelismo, maggiore e’ la velocita’ • Dal 2004: nuove CPU con parall. Interno a 64 bit • PARALLELISMO ESTERNO: dimensioni bus dei dati + registro dati
Il clock: 3° parametro • Ciascuna istruzione macchina Es: READ 8 = 0100000000001000 si svolge in 3 fasi • Ciascuna fasesi svolge eseguendo una serie di microistruz. o operaz.elementari (o cicli macchina), diversi fra CPU: esempio CISC fetch esecuzione O - RI RDP - RD MEM(RI) - RD OP(RIC) - RI RD - RIC RD - MEM(RI) PC + 1 - PC • Ciascuna microistruzione o ciclo macchina o microciclo dura un periodo di clock • Il clock di sistema scandisce con impulsi ogni ciclo: più sono gli impulsi, maggiori sono le operazioni eseguite a parità di tempo, più è VELOCE la CPU.
Velocita’ operativa della CPU= FREQUENZA del CLOCK • La frequenza degli IMPULSI del clock è misurata in Mhz (33,50,66,133,166,200,500,800,1000,1200,... 4.000 Mhz) • La frequenza indica quanti cicli (operazioni elementari o microistruzioni) la macchina compie in un secondo (o quanti impulsi il clock scandisce) • Es: (i 8086) 4,7 Mhz4.700.000 cicli 1/4.700.000 = 0,00000021 =210 ns • 50 Mhz(486dx) = 50.000.000 cicli = 1/50.000.000 = 0,000000020 = 20 ns • 500 Mhz(Pentium II) = 2 ns • 2.000 – 3.700 Mhz (2,0- 3,7 GHZ) (Pentium 4 – AMD) = da 0,5 ns a 0,3 ns
Il clock: parametro di velocità • Il Pentium 4 (1° versione) a 1.600 Mhz ha una velocità doppia di un Pentium 4 a 800 Mhz: solo se CPU è identica • In funzione della architettura, possiamo avere 3 tipi di CPU • CPU non scalari: (fino al i386) più cicli per eseguire una istruzione • CPU scalari: (i486) 1 istruzione in 1 ciclo • CPU superscalari: più di una istruzione in 1 ciclo di clock (il Pentium) • Non ha senso confrontare il clock di CPU diverse (es: Pentium 400 è più veloce del Celeron 500)
CLOCK velocità CPU • Il CLOCK di SISTEMA e’ un parametro VALIDO per mettere a CONFRONTO la POTENZA di CPU solo se: • Il set delle istruzioni e’ uguale • Il n.ro di microistruzioni o cicli macchina per istruzione e’ uguale E’ UN PARAMETRO DI CONFRONTO e di VALUTAZIONE SOLO TRA CPU IDENTICHE
Clock come parametro di potenza • Non ha senso oggi confrontare sigle di Pentium 4 diverse o CPU Pentium e AMD sulla base del solo clock sia perché il n.ro di operazioni per istruzioni è diverso sia perché sono state introdotte all’interno delle CPU funzioni e componenti complesse che fanno la differenza • La “rincorsa/identificazione delle CPU” sulla base del SOLO clock è finita: fino al Pentium 4 di 1° generazione la potenza si qualificava già dalla sigla della CPU con il solo clock: era un elemento immediato di misura della velocità • Spesso la frequenza del clock non compare più nel nome della CPU e bisogna guardare tutte le altre funzioni nella CPU • OFFERTA CPU = offerta piani tariffari telefonia MOBILE
4° elemento: l’ALU e la FPU • Capacità di calcolo dell’ALU • 1° ALU – solo addizioni – resto con programmi ad hoc • Differenza le CPU con COPROCESSORE MATEMATICO o F.P.U. (i386 – i387) (486 dx – 486sx) • Oggi tutte CPU con F.P.U. –Floating Point Unit • Importante nelle applicazioni matematiche, ingegneristiche, CAD, grafica, videogiochi, multimediali