16.06.2013 Views

2 - Amiga Magazine Online

2 - Amiga Magazine Online

2 - Amiga Magazine Online

SHOW MORE
SHOW LESS

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 />

~ ~ - -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!