# Apollo PRISM

PRISM (Parallel Reduced Instruction Set machine) fu una linea di microprocessori sviluppati dalla Apollo Computer per la sua linea di workstation DN10000. Questi processori sono noti anche come A88K. Al momento della loro presentazione erano i processori più veloci disponibili sul mercato. Hewlett-Packard acquisì Apollo nel 1989 e terminò lo sviluppo dei processori PRISM, comunque diverse idee alla base del progetto PRISM sono state riutilizzate in processori successivi prodotti da HP.
I processori PRISM seguivano un approccio VLIW mentre allora la maggior parte dei processori concorrenti seguivano un'architettura RISC. Nei progetti RISC originari il processore doveva essere il più semplice possibile al fine di poter essere molto veloce nell'eseguire le operazioni. Il compilatore aveva il compito di utilizzare al meglio i registri del processore al fine di ridurre al minimo gli accessi e le copie in memoria. Con l'evoluzione dei processori però l'approccio RISC divenne problematico dato che l'inserimento di più unità funzionali da far funzionare in parallelo costringeva il processore a cercare di rendere il codice parallelo e quindi il processore doveva essere dotato di complesse unità che ricevuto il codice seriale lo rendevano parallelo. Invece l'approccio VLIW partiva dal presupposto che la gestione del codice era un problema del compilatore, il processore era dotato di unità di calcolo parallele ma si aspettava di ricevere codice già parallelo. Il compilatore ricevuto il codice scritto dal programmatore doveva individuare le componenti parallele e segnalarle in modo esplicito al microprocessore. In sostanza si spostava la gestione del codice parallelo dal processore al compilatore.
Questo approccio rendeva il processore piccolo e molto veloce ma legava strettamente i processori e il compilatore, un nuovo processore per poter esprimere le sue potenzialità spesso necessitava di codice compilato appositamente.
I processori PRISM sono processori a 32 bit con 32 registri per gli interi a 32 bit e 32 registri a 64 bit per i numeri in virgola mobile. I processori PRISM potevano gestire in parallelo un'istruzione in virgola mobile e un'istruzione per gli interi per ogni ciclo di clock. Il compilatore per sfruttare al meglio i processori cercava sempre di inserire un'istruzione per gli interi e un'istruzione per i numeri in virgola mobile in ogni ciclo di clock ma se questo non era possibile segnalava con un flag la mancanza di un'istruzione. PRIMS fu uno dei primi processori a includere istruzioni di moltiplicazione con somma/sottrazione/troncamento.
Il primo PRISM venne prodotto nel 1988 ed venne montato sulle macchine Apollo DN10000 dove poteva essere montato fino a 4 processori per computer. Il prefisso DN indicava Domain Node, Domain/OS e un sistema operativo tipo Unix utilizzato dalle macchine Apollo. Il processore PRISM era formato da più integrati, non era un singolo processore come la maggior parte dei microprocessori moderni.
Il successore PRISM II doveva funzionare a una frequenza doppia del primo PRISM ma problemi di produzione ne ritardarono la presentazione e in seguito all'acquisto della società da parte di HP il progetto venne abbandonato, sebbene alcune sue idee furono riutilizzate per la linea di processori Itanium prodotta in collaborazione con Intel.
PRISM era il processore più rapido del suo periodo, rispetto agli altri progetti il PRISM poteva essere visto come un doppio processore e quindi aveva prestazioni migliori degli altri processori RISC alla medesima frequenza. Anche l'Intel i860 utilizzava l'approccio VLIW (o propriamente LIW data la relativa lunghezza delle istruzioni), ma la sua architettura interna rendeva difficile sfruttare al pieno le sue potenzialità e quindi in generale forniva prestazioni inferiori al PRISM.