Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Introduzione all'assembler<br />
del Powerpc<br />
Dopo essersi fatto a lungo attendere, il PowerPC è ormai<br />
una realtà cori cui gli utenti <strong>Amiga</strong> devono fare i conti. Perché<br />
questa alternativa diventi praticabile, sotto forma di<br />
schede PowerUp, PIOS ONE o quant'altro, occorre però un<br />
requisito indispensabile: devono esistere programmi in grado<br />
di sfruttare il PowerPC, che possano motivare gli utenti<br />
all'aggiornamento. Fortunatamente, non viviamo più negli<br />
anni '70, e cambiare processore non vuol dire riscrivere<br />
completamente tutto un parco software: in genere basta ricompilare<br />
i propri sorgenti con un compilatore adeguato<br />
(che nel nostro caso potrebbe essere lo StormC o il GNU<br />
C). Tuttavia, anche chi programma in C, C++ o linguaggi<br />
simili può trarre profitto, o almeno una migliore comprensione,<br />
dalla conoscenza del modello di programmazione<br />
del processore su cui il suo programma verrà eseguito, e<br />
rimarrà sempre una certa quota, per quanto piccola, di<br />
software che, per motivi di efficienza o di flessibilità, deve<br />
essere scritto direttamente in Assembler. Per questo motivo,<br />
esamineremo brevemente l'architettura dei processori<br />
PowerPC dal punto di vista del programmatore: non ci occuperemo<br />
dunque di caratteristiche specifiche come funzionamento<br />
della pipeline o delle cache, che sono intenzionalmente<br />
invisibili al programmatore, ma piuttosto di registri,<br />
set di istruzioni e modi di indirizzamento, nella migliore<br />
tradizione della programmazione in Assembler.<br />
1 Galeotto fu il libro...<br />
Gli architetti della famiglia PowerPC si sono trovati di fron-<br />
te a un problema di difficile soluzione. Da una parte, si vo-<br />
leva che i programmi potessero migrare senza difficoltà fra<br />
un componente e l'altro della famiglia, senza penalizzare le<br />
prestazioni né la compatibilità. Dall'altra, non si voleva con<br />
questa richiesta ostacolare l'adozione di miglioramenti ar-<br />
chitetturali nei processori più potenti, cosa che avrebbe ral-<br />
lentato l'evoluzione della famiglia. Fortunatamente, sia IBM<br />
che Motorola avevano già una lunga tradizione di compati-<br />
Come programmare il Po werPC @arte I)<br />
zioni di 70 volte fra le versioni più economiche e quelle<br />
più potenti) e quella della famiglia Motorola 68000 (basta<br />
pensare alla differenza fra un 68000 a 7 MHz e un 68060 a<br />
50 MHz ... ).<br />
A differenza di quanto fatto da Intel, che in pratica a ogni<br />
nuovo processore introduceva un nuovo "modo" di funzio-<br />
namento (cosicché i programmi preesistenti dovevano gira-<br />
re in una sorta di emulazione), l'approccio di IBM e Moto-<br />
rola è da sempre basato sulla definizione di un'architettura<br />
astratta, definita in maniera indipendente dall'implementa-<br />
zione che un particolare processore può darne.<br />
Nel caso del PowerPC, questa idea è incarnata dalla suddi-<br />
visione delle specifiche architetturali in quattro libri., corri-<br />
spondenti a diversi livelli di astrazione (figura 1). Questa<br />
suddivisione, di vago sapore biblico, vede il set di istruzio-<br />
ni del modo utente nel Libro I, la descrizione dell'ambiente<br />
virtuale nel Libro 11, la descrizione dell'ambiente operativo<br />
nel Libro 111 e infine l'implementazione vera e propria nel<br />
Libro IV. Solo quest'ultimo è redatto in varie versioni, una<br />
-~~~~ ~ ~-<br />
Libro I - User Znstmction Ser Architecture<br />
Qunto libro desnve i regisui, le isuuzioni, 11 modello di memona e 11<br />
modello di esecuztone dtspon~bill ai programmi applicativi.<br />
Libro I1 - Wrtuaì Environment Architecture<br />
Questo libro drscnve lecarattenstichedell'architetturacheconsentono ai<br />
pmgnmmi appl~cativi d! creare o modificare il cud~ce, di condividere dati<br />
fra programmi diveni in un sistema con più pesson, edi ottimluare le<br />
pmfarionl degli accessi in memoria.<br />
Libro 111 - @eraring Environmenr Archirecture<br />
Questo libro drscnve le caratteristiche delhchitettuta che permettono a<br />
un sistema operativo di alloinre r gesure la memona, di tra& gli erron<br />
in cui possono incomre t programmi applicativi, di suppoifarr i<br />
dtspositivi di UO s di fornire tuni gli altn serviz~ che è Ircito attendersi da<br />
un aistima operativo multipmessore, sicuro e moderno.<br />
~ ~<br />
Libro IV - PowerPC Zmplemenrafion Fearures<br />
Questo libro, diveru, per ogni implementarione, descrive le<br />
cmttenstiche specifiche di ogni singolo membro della famiglia<br />
Powerpc.<br />
bilità architetturale alle spalle: ne sono prova l'evoluzione fig. l - L'organizzazione dei documenti<br />
del sistema IBM 360/370 (con un miglioramento di presta- di speczjica dell'architettura PowerPC<br />
~ ~ - -