Valutazione attuale:  / 0
ScarsoOttimo 

Il set di istruzioni del 360.

Il set di istruzioni di questa nuova serie di computer della IBM merita sicuramente di essere descritto in un capitolo apposito.

Questo set, come previsto dalla IBM, è infatti ancora attuale ed in uso anche nei suoi ultimi mainframe; nel tempo si è arricchito di molte nuove istruzioni, ma la compatibiltà verso il basso ha sempre consentito e consente il funzionamento anche dei programmi scritti molti anni prima; l'IBM ha sicuramente il grande merito di aver saputo progettare fin dagli anni '60, un set di istruzioni che a distanza di oltre trent'anni è ancora valido e non mostra alcun segno di cedimento.

Le istruzioni di questo set sono di una lunghezza variabile, esistono infatti istruzioni lunghe una, due o tre halfword (2, 4 o 6 bytes) e la loro forma è molto intelligente; ognuna delle tre halfword ha un suo proprio formato e tutte le istruzioni che ne sono dotate lo rispettano; questa osservazione viene meglio illustrata dalla figura che segue:

Come si può notare infatti esiste sempre un perfetto allineamento tra i campi contenuti nelle istruzioni, il primo byte contiene sempre il codice operativo che quindi ha un limite teorico di 256 istruzioni possibili; si può vedere anche che esistono 5 tipi di istruzioni e precisamente:

  • le RR, sono quelle che operano tra registro e registro; sono istruzioni lunghe due bytes, il secondo dei quali è sufficiente a contenere nei due semibytes due indirizzi di registri (che sono 15 e quindi richiedono solo 4 bits per individuarli)
  • Le RX, sono quelle che operano tra registro e memoria e quindi richiedono di indirizzare un registro [R1] e un indirizzo di memoria; si ricordi infatti che gli indirizzi sono sempre ottenuti come somma del valore contenuto in un registro base [B2] e un displacement su 12 bits [D2]; nelle istruzioni RX è poi presente l'indirizzo di un altro registro [X2] (sempre uno dei 15) da usarsi come indice, per cui anche il suo contenuto concorre al calcolo dell'indirizzo di memoria.
  • Le RS, istruzioni particolari con tre operandi, due su registri [R1] e [R3] e uno in memoria [B2] + [D2].
  • Le SI, istruzioni che operano tra memoria [B1] + [D1] e un byte contenuto nell'istruzione stessa [I2].
  • Le SS, istruzioni SS che operano tra memoria e memoria e quindi hanno bisogno di indirizzare due indirizzi di memoria rispettivamente [B1] + [D1] e [B2] + [D2]; alcune di queste istruzioni contengono anche due lunghezze (una per ogni operando [L1] e [L2] ma con un limite di 15 bytes), altre hanno un'unica lunghezza [L] con un limite di 255 bytes.

Esaminando nel dettaglio i codici assegnati alle singole istruzioni si scopre che ogni codice è stato scelto in maniera tale che i suoi primi due bits rappresentano anche la lunghezza in halfword dell'istruzione stessa; questo fatto limita un pò il numero di istruzioni possibili, ma consente all'hardware di calcolare facilmente l'indirizzo dell'istruzione successiva, infatti esso può essere calcolato sommando all'indirizzo corrente, il doppio del valore rappresentato dai primo due bit dell'istruzione stessa.

Si può ancora osservare che con il 360 cambia il modo di operare sui campi; infatti nel 7070 il raggruppamento di più caratteri in un campo di dati era possibile utilizzando le word che erano dei "contenitori" a lunghezza fissa e che potevano contenere al massimo 10 cifre numeriche o 5 alfanumeriche, nel 1401 invece i campi non avevano limitazione di lunghezza in quanto erano delimitati dalla Word Mark; in entrambi i casi quindi le istruzioni non avevano bisogno di contenere l'informazione "lunghezza del campo su cui operare"; il nuovo set di istruzioni nato con il 360 prevede invece che all'interno di molte istruzioni che operano su memoria sia contenuto non solo l'indirizzo su cui operare, ma anche la lunghezza in bytes del campo da trattare.

 

Torna all'indice