# IBM RS64

L'IBM RS64 è una famiglia di microprocessori prodotta da IBM per la sua linea di server AS/400 e RS/6000.
I processori erano ottimizzati per lo svolgimento dei compiti commerciali (prestazioni sugli interi, larghe cache, gestione salti) e non avevano caratteristiche come un'unità in virgola mobile potente come la famiglia POWER da cui derivano. Questi processori derivavano dai processori PowerPC ma includevano delle caratteristiche aggiuntive e fin dal primo modello furono progettati a 64 bit.

## RS64 (Apache)

Il modello Apache venne presentato nel 1997 nella linea RS/6000 e AS/400. Venne sviluppato a partire dai primi PowerPC e venne sviluppato specificamente per la linea AS/400. Il processore era dotato di 128 KB di cache di primo livello nel processore. Aveva 4 MB di cache di secondo livello su chip esterni collegati al processore da un bus da 125 MHz a 128 bit. Il processore poteva gestire una configurazione SMP con 12 unità al massimo.

## RS64-II (Northstar)

Il processore Northstar venne presentato nel 1998 a una frequenza di 262 MHz con 8 MB di cache di secondo livello collegata da un bus da 256 bit. La scheda del processore comprendeva quattro PS64-II in modo da poter sostituire la precedente scheda a quattro processori RS64 in modo da consentire un aggiornamento delle macchine indolore.

## RS64-III (Pulsar)

Il Pulsar venne presentato nel 1999 a una frequenza di 450 MHz con 8 MB di SRAM DDR come cache di secondo livello collegata al processore da un bus a 256 bit a 450 MHz. la cache di primo livello integrata nel processore venne portata a 256 KB. La predizione delle diramazioni venne migliorata e l'errore per la predizione errata venne ridotto a 0 o 1 ciclo. Il processore era dotato di una pipeline da 5 stadi e gestiva configurazioni SMP a 24 vie.

## RS64-IV (Istar, Sstar)

Istar e Sstar vennero presentati nel 2000 a 600 MHz, in seguito incrementati a 750 MHz. La cache di secondo livello venne portata a 16 MB gestita come nel RS64-III. Fu il primo processore ad ampia diffusione a gestire il multithreading. In sostanza ogni processore memorizza le informazioni di due thread e al sistema operativo appare come un biprocessore. Quando un processo è in esecuzione il secondo risulta fermo. Quando il primo processo incontra un evento a latenza elevata (tipo una cache miss della cache di secondo livello) il processo viene messo in stop e il secondo processo viene attivato, dal punto di vista del sistema operativo è come se si attivasse il secondo processore logico. Nel caso il processo invece incontri un evento a latenza non elevata (cache miss della cache di primo livello) il secondo processo viene attivato solamente se è pronto per l'esecuzione e il processo in stop era il successivo processo da attivare secondo lo scheduler del sistema operativo. IBM chiamò questa tecnica multithreading a grana grossa. Questo multithreading è leggermente diverso dal multithreading implementato di processori come il Pentium 4. Secondo i documenti IBM il multithreading a grana grossa fornisce prestazioni migliori in un'architettura con esecuzione in ordine delle istruzioni come quella degli RS64. I processori RS inoltre a differenza dei processori POWER sono stati sempre parchi nei consumi arrivando a consumare circa 15 Watt per il core.
Per diversi anni la linea di processori POWER fornì frequenze operative basse rispetto alla concorrenza. La linea RS64 era il top della gamma IBM nei server unix SMP. Nei programmi commerciali le prestazioni dei sistemi RS64-IV erano paragonabili a quelle dei processori Sun Microsystems e degli altri concorrenti sebbene le prestazioni nel calcolo in virgola mobile non fossero paragonabili a quelle dei processori POWER3-II. Con l'introduzione dei POWER4 comunque la linea fu dismessa.