Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
BASE DI RISC CISC
CONFRONTO RISC ha meno modalità di CISC ha molte diverse modalità di
Numero di indirizzamento e la maggior parte delle indirizzamento e può quindi essere utilizzato
modalità di istruzioni nel set di istruzioni ha un per rappresentare in modo più efficiente le
indirizzamento registro per registrare la modalità di dichiarazioni del linguaggio di
indirizzamento. programmazione di livello superiore.
Vengono utilizzate le codifiche a Vengono utilizzate codifiche a lunghezza
lunghezza fissa delle
Codifica delle variabile delle istruzioni. Esempio: la
istruzioni. Esempio: in IA32,
istruzioni dimensione dell’istruzione IA32 può variare
generalmente tutte le istruzioni sono da 1 a 15 byte.
codificate come 4 byte.
Operazioni Le operazioni aritmetiche e logiche possono
Le operazioni aritmetiche e logiche
aritmetiche e essere applicate sia alla memoria che agli
utilizzano solo operandi di registro.
logiche operandi del registro.
Il set di istruzioni è ridotto, cioè ha solo Il set di istruzioni ha una varietà di istruzioni
poche istruzioni nel set di
Il set di istruzioni differenti che possono essere utilizzate per
istruzioni. Molte di queste istruzioni operazioni complesse.
sono molto primitive.
Viene utilizzato in applicazioni di fascia Viene utilizzato in applicazioni di fascia
alta come elaborazione video,
Applicazione bassa come sistemi di sicurezza,
telecomunicazioni ed elaborazione di automazione domestica ecc.
immagini.
I suoi processori hanno semplici Il suo processore ha istruzioni complesse
Processore istruzioni che richiedono circa un ciclo che richiedono più clock per l’esecuzione.
di clock.
Modalità di Le modalità di indirizzamento Supporta già modalità di indirizzamento
indirizzamento complesse vengono sintetizzate complesse.
complesse utilizzando il software.
La complessità sta nel micro La complessità risiede nel compilatore che
Complessità programma. esegue il programma.
Non richiede memoria esterna per i
Memoria esterna Richiede una memoria esterna per i calcoli.
calcoli.
Decodifica delle La decodifica delle istruzioni è La decodifica delle istruzioni è complessa.
istruzioni semplice.
Tempo di Il tempo di esecuzione è molto Il tempo di esecuzione è molto alto.
esecuzione inferiore.
Dimensione del RISC ha una grande dimensione del I CISC hanno un programma di piccole
programma programma. dimensioni. 165
L A
53.5 INGUAGGIO SSEMBLY
Funzionalmente equivalente al codice macchina
Definisce l'Instruction Set Architecture di una CPU
Utilizza mnemonici e simboli per definire codici operativi e operandi
N.B non c'è corrispondenza biunivoca tra linguaggio assembly e linguaggio macchina
o Struttura interna diversa, e.g., diverso ordine degli operandi
o Omissione di operandi impliciti invece specificati nell'istruzione in linguaggio
macchina
o Istruzioni assembly che corrispondono a una sequenza di istruzioni in linguaggio
macchina
o Istruzioni che non hanno controparte in linguaggio macchina, e.g., definizione di
costanti, direttive di allocazione del codice, direttive per l'assemblatore
Ogni istruzione è costituita da quattro campi:
Etichetta (opzionale), ovvero una stringa che definisce un nome simbolico per il
• corrispondente indirizzo
Mnemonico di un codice operativo, obbligatorio
• Operandi, che variano a seconda del codice operativo e del modo di indirizzamento
• Commento (opzionale)
• E.s: MAIN MOVE D0,D1
L'assemblatore traduce il programma dal linguaggio Assembly a codice binario
Il costruttore del processore fornisce il linguaggio Assembly e un assemblatore
Esistono linguaggi Assembly e assemblatori di terze parti
• o Si ha libertà di scelta per gli mnemonici, il formato delle linee, il formato con cui
esprimere I modi di indirizzamento, varianti per le istruzioni, pseudooperatori, ecc.
o NON si ha libertà sull'effetto finale di ogni istruzione in linguaggio macchina
53.5.1 Livelli di privilegio
Alcune istruzioni non sono sempre eseguibili
Meccanismi di protezione per l'esecuzione di codice di gestione del sistema, e.g., di un
• sistema operativo
I processori possono trovarsi, durante l'esecuzione, in un particolare stato di protezione, detto
• livello di privilegio: Il Motorola 68000 ne ha 2:
o livello utente: più limitato
o livello supervisore: posso accedere a qualsiasi area di memoria e posso usare tutte le
istruzioni del processore 166
19 – Motorola 68000
6 pagine 167
54 P M 68K
ROCESSORE OTOROLA
Lanciato sul mercato nel 1979 come processore general purpose
Utilizzato in personal computer (Apple Macintosh 128K, Amiga, Atari, etc.), console (Sega
• Genesis/Mega Drive), sistemi di controllo, sistemi embedded
La sua architettura è ancora in uso e largamente diffusa
•
Processore CISC
Architettura complessa, ma al contempo semplice tanto da poter essere usato come
• riferimento didattico
16/32 bits: tutti I registri interni sono a 32 bits, ma ALU e bus verso la memoria sono a 16 bits,
• mentre il bus indirizzi è a 24 bits
Due livelli di privilegio: utente e supervisore
• o I programmi eseguiti a livello utente hanno accesso a tutti I registri, eccetto quelli per
la gestione delle interruzioni
M
54.1 ODELLO DI PROGRAMMAZIONE
Il modello di programmazione include tutti I registri accessibili da programma
8 registri dato, D0-D7, utilizzabili per contenere dati a 8, 16 o 32 bits
• o Utilizzabili liberamente per memorizzare dati temporanei
8 registri indirizzo A0-A7, utilizzabili a 32 o 16 bits
• o Utilizzabili per contenere indirizzi per l'accesso alla memoria
o A7 assolve funzione di stack pointer, e contiene l'indirizzo della cima dell'area stack
(area di memoria gestita in modalità LIFO per allocazione di variabili automatiche e per
I salti a sottoprogramma)
o A7' è un registro alias di A7 accessibile solo in modalità supervisore e costituisce il
supervisor stack pointer
Status register, a 16 bits, contiene I codici di condizione risultandi dall'ALU e altri bit di stato
• Program Counter, a 32 bits
• 168
54.1.1 Status Register
Il registro di stato è a 16 bits, ma solo 10 hanno utilizzo effettivo
Il byte meno significativo è detto user byte, e contiene informazioni riguardo l'ultima
• operazione eseguita all'ALU
Il byte più significativo è detto system byte, e contiene
• o La maschera delle interruzioni, che codifica la sorgente dell'interruzione
o Bit supervisor, che indica se il processore stia eseguendo in modalità privilegiata
o Bit di trace, che indica se il processore stia eseguendo in modalità debug
I
54.2 NTERFACCIA CON LA MEMORIA
Bus dati: 16 bit di parallelismo
Pur disponendo di registri a 32 bits, il processore è in grado di accedere contemporaneamente
• a due soli byte quando si interfaccia con la memoria
o La CU effettua due accessi a 16 bits per accedere a word da 32 bits
Bus indirizzi: 24 bits
Gli 8 bits più significativi dei registri Ax e PC viene ignorato
• o Solo 16MB dei 4GB teorici sono effettivamente indirizzabili
Non è consentito accedere a locazioni di memoria non allineate
I dati sono allineati alla word, cioè tutti I dati sono memorizzati in locazioni di memoria il cui indirizzo
base è pari
I dati sono memorizzati in modalità big endian (il byte più significativo è memorizzato all'indirizzo più
basso)
C
54.3 ONVENZIONI
Ogni istruzione Assembly M68K consta di quattro campi: label, op. code, operandi, eventuali
commenti
La maggior parte delle istruzioni ha due operandi, ma ci sono istruzioni con un solo operando
• o senza operandi
È possibile specificare la dimensione degli operandi su cui un'istruzione deve operare
• o Suffisso .B: indica che l'istruzione deve agire sugli otto bit meno significativi degli
operandi
o Suffisso .W (default): indica che l'istruzione deve agire sui 16 bits meno significativi
degli operandi
o Suffisso .L: indica che l'istruzione deve agire su tutti I bit degli operandi
Gli spazi bianchi vengono ignorati dall'assemblatore
• I commenti in linea vengono fatti precedere dal carattere asterisco
• 169
Le costanti numeriche sono espresse in decimale, o, se precedute dal carattere $, in
• esadecimale
M I
54.4 ODI DI NDIRIZZAMENTO
Gli operandi delle istruzioni, durante la fase di esecuzione di un'istruzione, devono essere sempre
definiti nel loro valore
Le modalità con cui un microprocessore permette alle istruzioni di accedere agli operandi durante il
ciclo fetch-execute viene detto modo di indirizzamento.
Gli operandi vengono prelevati dall'unità di controllo in base al loro indirizzo effettivo,
• specificato, appunto, dal medo di indirizzamento.
I modi di indirizzamento si specializzano in base
Alla tipologia di operandi coinvolti (costante, registro, memoria)
• Alla tecnica con cui gli operandi sono espressi nell'istruzione (per valore, indirizzo, indirizzo
• dell'indirizzo)
o Quelli che si esprimono per indirizzo si particolarizzano ulteriormente per il modo in
cui l'indirizzo è modificato durante la fase di preparazione dell'operando
MODI DI INDIRIZZAMENTO DEL M68K
54.4.1 Indirizzamento Immediato
Il valore di un operando è codificato in uno dei campi dell'istruzione
Può essere usato unicamente per specificare un operando sorgente
• Viene indicato con il carattere # davanti l'operando sorgente
• Se la dimensione lo richiede, vengono utilizzare extension word (campi aggiuntivi)
• dell'istruzione per la memorizzazione del valore dell'operando
Es. MOVE.B #4, D0 sposta la costante 4 nel registro D0 usando indirizzamento immediato per
• l'operando di valore 4 170
54.4.2 Indirizzamento diretto
L'accesso al valore dell'operando è effettuato attraverso il suo indirizzo assoluto, posto in un campo
dell'istruzione
54.4.2.1 Diretto-registro
Nel caso di indirizzamento diretto-registro, il valore dell'operando è contenuto in un registro del
processore
Non richiede di accedere a memoria off-chip
• Lunghezza delle istruzioni ridotta
•
54.4.2.2 Diretto-memoria
Nel caso di indirizzamento diretto-memoria, il valore dell'operando è contenuto in una locazione di
memoria
Per accedere all’operando effettivo richiede, oltre quello già eseguito per prelevare
• l’istruzione, un ulteriore accesso in memoria
Absolute-addressi