DIFFERENZE TRA ARCHITETTURE C.I.S.C. E R.I.S.C.
a) R.I.S.C.= Reduced Instruction Set Computer.
b) C.I.S.C.= Compiler Iinstruction Set Computer.
CARATTERISTICHE ARCHITETTTURE R.I.S.C.
- Tutte le istruzioni hanno la stessa lunghezza (word);
- Insieme ridotto dei modi di indirizzamento;
- Formato delle istruzioni molto simile tra loro;
- Operazioni tra registri.
CARATTERISTICHE ARCHITETTTURE C.I.S.C.
- Istruzioni con lunghezze diverse (minimo di un byte);
- Molti modi di indirizzamento;
- Formato non omogeneo delle istruzioni, campi analoghi in posizioni differenti;
- Operazioni tra registri ed operazioni con la memoria.
Il
compilatore è un programma che traduce un file sorgente (scritto in un linguaggio ad alto livello) in liguaggio a basso livello (linguaggio macchina),cioè costituito di soli 0 ed 1.
FORMATO ISTRUZIONI NELLE ARCHITETTURE R.I.S.C.
Esempio: PWR PC
- 32 bit;
- Il codice operativo si trova sempre nei primi sei bit;
- Dal codice operativo si deduce il formato dell’istruzione;
- Esistono comunque pochi formati.
Formato-esempio di un’istuzione aritmetica (addizione)
%DRAWING{tabella1}%
- Nel caso di un’istruzione aritmetica il campo “codice oprativo” conterrà il valore 31 (in codice ASCII);
- Il campo “ALU” specifica l’operazione da eseguire, in questo caso, conterrà il valore 266 (in codice ASCII), che indica l’addizione;
- OE,Rc, sono due campi, ciascuno da un bit, che specificano su quale bit dei registri di stato devo agire dopo aver eseguito l’istruzione.Nel caso che Rc=1, si potrannno modificare I bit Lt e Gt del registro di stato;
- Presi insieme (OE ed Rc), danno informazioni riguardo il tipo di addizione (ad esempio ADD,ADDI,ADDU).
Formato-esempio di una istruzione aritmetica con operando immediato e di una istruzione di caricamento\memorizzazione registri
%DRAWING{tabella2}%
Esempio di istruzione: Lwz Rd,d(Ra)
- Rd, registro destinazione;
- Ra, registro operando;
- SIMM, operando da sommare (è un operando immediato) ad Ra, il risultato della somma verrà messo in Rd;
- La “z” in Lwz , sta per zero ed indica che se Ra=0, calcola l’indirizzo sorgente tramite un indirizzamento relativo ad Ra, altrimenti, se Ra¹0 calcola l’indirizzo sorgente tramite un indirizzamento assoluto.
- In Rd viene caricato il contenuto della locazione di memoria il cui indirizzo è;
La somma tra il contenuto del campo SIMM ed il contenuto della locazione specificata con indirizzo Ra se Ra¹0 (indirizzamento relativo ad Ra);
Se Ra=0 considero l’indirizzo contenuto in SIMM (indirizzamento assoluto);
Formato-esempio di un’istruzione di salto incondizionato
%DRAWING{tabella3}%
- distingue se LI è un indirizzo assoluto o relativo al PC;
- LI, stabilisce se l’indirizzo dell’istruzione di salto va salvata in un registro;
Osservazione
L’ultimo bit di ogni formato istruzione da “indicazioni” sui comportamenti dell’istruzione valutata.
FORMATO ISTRUZIONI NELLE ARCHITETTURE C.I.S.C.
Esempio: Intel, famiglia “x86”
- Istruzioni con lunghezza variabile;
- Il codice operativo può occupare diversi bit;
- Esistono differenti formati, e, campi analoghi possono occupare differenti posizioni a seconda dell’istruzione utilizzata.
Nel formato si possono distinguere due campi principali:
1.
Campo prefisso
---> Prefisso istruzione [0/1 byte]
---> Dimensione indirizzo [0/1 byte]
---> Dimensione operandi [0/1 byte]
---> Segmento [0/1 byte]
2.
Campo istruzione
---> Codice operativo [2 byte]
---> Mod R/M [0/1 byte]
---> SIB [0/1 byte]
---> Scostamento [0/1/2/3/4 byte]
---> Immediato [0/1/2/3/4 byte]
%DRAWING{tabella4}%
- Codice operativo;
- Mod R/M (+);
- SIB (+);
- Scostamento (+);
- Immediato;
- Prefisso struzione;
- Dimensione indirizzo;
- Dimensione operando;
- Segmento;
(+)Possono anche non esserci.
Giusti M.,Grassi M.,Mariani M.
Caratteristiche CISC
Approccio fondamentale: la complessità si sposta dal codice all'hardware
Conseguenze della scelta per il programmatore: il codice è molto compatto e occorre poca memoria per contenerlo; è l'hardware che si incarica di decodificare istruzioni anche molto compatte e molto complesse
Conseguenze della scelta a livello hardware:
- Pochi registri.
- Presenza di una ROM di decodifica.
- ISA molto articolato con centinaia di istruzioni.
- Modalità di indirizzamento memoria-memoria
Caratteristiche RISC
Approccio fondamentale: la complessità si sposta dall'hardware al software, ovvero al compilatore che deve essere molto efficiente
Conseguenze della scelta per il programmatore: la dimensione del codice aumenta in favore della semplificazione dell'hardware
Conseguenze della scelta a livello hardware:
- Molti registri
- Non esiste la modalità di indirizzamento memoria-memoria, ma alla memoria si accede solo con il load e lo store
- ISA (instruction set architecture) con qualche decina di istruzioni soltanto
- direct execution
- uso della pipeline per diminuire il ritardo del critical path.
--
GiuseppeMacario - 30 May 2003
