# Loongson

Loongson (龙芯, noto anche come Godson o Dragon chip) è un'architettura di CPU sviluppata dalla Accademia cinese delle scienze CAS (Chinese Academy of Sciences) come alternativa alle architetture sviluppate dalle società statunitensi Intel e AMD. Il progettista capo dell'architettura è il professore cinese Weiwu Hu dell'ICT (Institute of Computing Technology).
BLX IC Design Corporation, Ltd è una società fondata nel 2002 dal personale dell'Institute of Computing Technology, China Academy of Sciences e dal Jiangsu Zhongyi Group. Con sede a Pechino, BLX ha licenziato l'architettura Loongson e si è concentrata nello sviluppo di processori embedded.
Il primo obiettivo dei chip sviluppati è stata l'esecuzione di una versione localizzata in cinese del sistema operativo Linux.

## Nome

Inizialmente chiamato 狗剩 (pinyin: Gou Sheng), che indica "balzo in avanti del cane", il nome seguendo la tradizione popolare cinese doveva essere di buon auspicio per il progetto. Nella documentazione inglese inizialmente venne chiamato "Godson" dato che la pronuncia inglese era simile alla pronuncia cinese del termine corretto. In seguito l'architettura venne rinominata "Loongson" e il nome "Godson" rimase come nome in codice per lo sviluppo interno dei processori.

## Revisioni dell'architettura
### Loongson 1

La prima versione dell'architettura Loongson era a 32 bit puri e il processore risultante aveva una frequenza di funzionamento di 266 MHz. Il processore era sviluppato per applicazioni embedded e quindi non era dotato di ampie cache né di gestione a 64 bit di dati né di alte velocità d'esecuzione. Il processore venne presentato nel 2002.

### Loongson 2

Il processore Loongson 2 aggiunse la gestione a 64 bit dei dati all'architettura Loongson. Inizialmente funzionava a 500 MHz, in seguito la revisione 2E portò la frequenza di funzionamento a 1 GHz. In seguito la versione 2F portò la frequenza a 1,2 GHz, questa versione è stata resa disponibile all'inizio del 2008.
Il 26 dicembre 2007 venne reso noto lo sviluppo del primo supercomputer cinese da 1 TeraFLOPS (l'attuale potenza è di 350 GigaFLOPS). Questo sistema noto come KD-50-I è localizzato a Hefai e è gestito del professor Chen Guoliang (陈国良), dell'University of Science and Technology of China (il primo costruttore con Institute of Computing Technology of Chinese Academy of Sciences come secondo costruttore). KD-50-I è il primo supercomputer cinese a utilizzare CPU sviluppate in Cina, l'attuale configurazione utilizza 330 Loongson-2F. Il sistema occupa quanto un frigorifero domestico ed è costato 800.000 yuan. La versione da 1 TeraFLOPS sarà basata su Loongson 3 e dovrebbe essere operativa nel 2010.

#### Caratteristiche

Loongson 2F:
* superscalare, esecuzione fuori ordine 32/64 bit architettura MIPS.
* compatibile con Little endian ISA MIPS III
* cache L1 da 64/64 KiB separata per dati e istruzioni.
* cache L2 a quattro vie associativa da 512 KiB un chip.
* 4 unità di esecuzione, 2 ALU e 2 FPU
* unità SIMD integrata in una delle due unità FPU
* controller RAM DDR2 integrato
* acceleratore grafico basilare integrato
* consumo massimo di 4 W a 1 GHz.

### Loongson 3

Il Loongson 3 è un processore multicore costruito con tecnologia a 65 nanometri, con frequenza di funzionamento compresa tra 1 GHz e 1,2 GHz. La prima versione messa in commercio nel 2008 ha 4 core e gestisce solo RAM DDR2, non ha SMT (Simultaneous Multi-Threading) e consuma circa 10 Watt a 1 GHz; nel corso del 2009 è stata messa in commercio una seconda versione, il Loongson 3A con 8 core, supporto alla RAM DDR3 e un consumo di 20 W.

#### Emulazione x86 assistita dall'hardware

Sono state aggiunte al Loongson 3 altre 200 istruzioni per le applicazioni multimediali e per l'esecuzione di codice X86, al costo di un 5% di superficie in più del die. Le nuove istruzioni aiutano l'emulatore QEMU abbassando l'overhead introdotto dalle istruzioni x86 nella pipeline MIPS; con altri miglioramenti introdotti nell'architettura di QEMU stesso, l'accoppiata QEMU/Loongson3 raggiunge, secondo nove benchmark diversi, il 70% delle prestazioni nell'esecuzione di codice nativo x86.

## Specifiche dei microprocessori Loongson/Godson

| Nome/ Generazione | Modello | Frequenza [MHz] | Architettura Versione | Anno | Core | Processo [nm] | Transistor [milioni] | Area del die [mm^2] | Potenza [W] | Tensione [V] | Dcache L1 [k] | Icache L1 [k] | Cache L2 [k] | Prestazioni [SPEC2000] |
| Godson-1 | 1 | 200 | MIPS 32-bit | 2002 | 1 | 180 | -- | -- | 1 | -- | 8 | 8 | none | 19/25 |
| Godson-2 (Core singolo) | 2B | 250 | MIPS-III 64-bit | 2003 | 1 | 180 | -- | -- | -- | -- | 32 | 32 | none | 52/58 |
| Godson-2 (Core singolo) | 2C | 450 | MIPS-III 64-bit | 2004 | 1 | 180 | 13.5 | 41.5 | -- | -- | 64 | 64 | none | 159/114 |
| Godson-2 (Core singolo) | STLS2E | 1000 | MIPS-III 64-bit | 2006 | 1 | 90 | 47 | 36 | 7 | 1.2 | 64 | 64 | 512 | 503/503 |
| Godson-2 (Core singolo) | STLS2F | 1200 | MIPS-III 64-bit | 2007 | 1 | 90 | 51 | 43 | 5 | 1.2 | 64 | 64 | 512 | -- |
| Godson-2 (Core singolo) | L2G01 | 1000 | MIPS64 | 2010 | 1 | 65 | 100 | 60 | | ?1.2? | 64 | 64 | 1024 | -- |
| Godson-2 (Core singolo) | ?2H? | 1000 | MIPS64 | 2011 | 1 | 65 | | | | | 64 | 64 | 512 | -- |
| Godson-3 (multicore) | L3A01 | 1000 | MIPS64 | 2009 | 4 | 65 | 425+ | 174.5 | <15 | -- | 4x64 | 4x64 | 4096 | -- |
| Godson-3 (multicore) | ?3B? | 1000 | MIPS64 | 2011? | 4+4 | 65 | 582.6 | 299.8 | 40 | -- | 2x4x64 | 2x4x64 | 4096 | -- |
| Godson-3 (multicore) | ?3C? | 1500+ | MIPS64 | 2012 | 16 | 28 | ? | ? | 20 | -- | ? | ? | -- |

## Storia

Il set d'istruzioni è MIPS III compatibile ma i progettisti hanno sempre glissato su questa caratteristica per evitare azioni legali da parte del detentori dei diritti sul set d'istruzioni MIPS. Il problema è stato ora definitivamente superato con l'acquisto della licenza per l'ISA MIPS 64 da parte di STMicroelectronics.
Nel marzo 2006 venne annunciato da Lemote un computer basato su Loongson 2 dal costo di 100 dollari.
Nel giugno del 2006 al Computex'2006 di Taipei la YellowSheepRiver annunciò il Municator YSR-639, un minicomputer basato su Loongson 2 a 400 MHz.
Nel settembre del 2006 Li Guojie direttore del Institute of Computer Technology del CAS annunciò il Longxin IIE (Godson IIE), un processore a 64-bit formato da 47 milioni di transistor e funzionante a 1 GHz. Questo implementava un sottoinsieme di istruzioni MIPS III.
Nel terzo quarto del 2006 venne presentata la nuova revisione del processore, il Godson 2E. Questo aveva prestazioni analoghe a quelle del Pentium 4 pur avendo consumi minori e costi di sviluppo e produzione minori. Comunque il processore a differenza dei processori Intel o AMD non era compatibile con il set d'istruzioni X86 dato che il processore utilizzava un sottoinsieme del set di istruzioni MIPS III che erano state rimpiazzate con istruzioni proprietarie ma compatibili sviluppata da ICT. Questo diverso set d'istruzioni impedisce il funzionamento del processore nei normali personal computer, difatti i sistemi basati sul processore utilizzano una particolare versione di Linux opportunamente modificata per il processore.
Il processore funzionava a 1 GHz e come gli altri processori della famiglia venne sviluppato dalla Chinese Academy of Science's Institute of Computing Technology (ICT). Questo fu il primo processore della famiglia a 90 nm, i precedenti processori erano sviluppati con tecnologia a 180 nm e funzionavano a 500 MHz. Il Godson 2E conteneva 47 milioni di transistor e consumava fra i 3 e gli 8 Watt secondo le misurazioni del produttore. Alla fine del 2006 venne messo in sviluppo la revisione F del processore, questa aumentava le prestazioni del 30% e riduceva i consumi del 50%. Il Godson-3 è previsto per fine 2008.
Nel gennaio 2007 la Gentoo Linux venne portata per l'architettura Loongson, il primo porting venne fatto sui server Cobalt Qube.
Nel marzo 2007 STMicroelectronics comprò una licenza del set d'istruzioni dalla MIPS Technologies e annunciò una collaborazione con la CAE per la produzione e la vendita dei processori Godson nel mercato mondiale.

## Sistemi operativi

I computer basati sull'architettura Loongson utilizzano normalmente una versione modificata di Linux, comunque Windows CE è stato portato con relativa facilità su macchine basate su Loongson.
Attualmente le distribuzioni disponibili sono:
* gNewSense, stabile e perfettamente funzionante
* Debian Gnu\Linux, nello specifico il port mipsel
* Gentoo Linux, in sviluppo
* Slackware Linux, è stata realizzata ma non ufficialmente distribuita.
* Red Flag Linux
* Mandriva, dal settembre 2007
* OpenBSD dalla release 4.7

## Compilatori per Loongson

La GNU Compiler Collection (GCC) è il principale compilatore per lo sviluppo di codice su Loongson; nella versione 4.4 di GCC è stato aggiunto il supporto esplicito per questo processore con le direttive -march=loongson2f e -mtune=loongson2f.
L'ICT ha poi portato su Loongson 2 anche il suo Open64, un compilatore a 64 bit avanzato, impiegato per studi sulla generazione ottimizzata di codice macchina.

## Sistemi basati su Loongson

Attualmente (2010) sistemi Loongson basati su Godson 2E a 667 MHz o su Godson 2F a 800 MHz sono correntemente venduti in Cina rispettivamente a 1599 yuan e 1800 yuan (circa 160€), esclusi tastiera, mouse e monitor; sempre al momento, un solo rivenditore commercializza prodotti Loongson in Europa, la Tekmote Electronics, che offre dei mini-sistemi completi e alcuni subnotebook. Tekmote Electronics, dal 2013, ha in catalogo un laptop (molto simile nel design ad un macbook air) basato su processore Loongson 3A.