# Loongson

Loongson (chinois : 龙芯 ; pinyin : lóngxīn ; litt. « puce dragon », parfois traduit en anglais : Godson), en référence au dieu Dragon de la mythologie chinoise) est une marque de microprocesseurs chinoise appartenant à l'entreprise sans usine (fabless, c'est-à-dire concentré sur la conception et sous-traitant la fabrication) Loongson Technology (zh).
Elle utilise, depuis sa création, une architecture compatible avec l'architecture MIPS, afin de pouvoir continuer à faire fonctionner des logiciels conçus pour les supercalculateurs d'architecture MIPS. Avec le temps Loongson a cependant ajouté 2000 nouvelles instructions, certains anciennes ne correspondant plus à une utilisation moderne en informatique ont été supprimées. D'après PC Watch, différents ensembles de jeux d'instructions ont été ajoutés, tels que certains permettant les conversions (LBT), le calcul vectoriel (LSX), le calcul vectoriel avancé (LASX), et la virtualisation (LVZ).
Les premières versions peuvent supporter jusqu’à 8 cœurs. Les dernières versions supportent également une compatibilité avec l'architecture ouverte RISC-V.
Dans les premières versions, chaque cœur ayant la puissance d’un processeur Pentium 4 de milieu de gamme, mais avec une consommation énergétique très faible de l’ordre de 3 à 8 watts, comparée aux 60 à 130 W d’un Pentium 4. En 2024, le Loongson 3A6000, mélant MIPS et RISC-V, gravé en 12 nm et tournant à 2,5 GHz est évalué à une puissance de calcule équivalente à celle d'un Intel Core i3-10100 ou d'un AMD Ryzen 3 3100, sortis en 2020, mais celui-ci à un meilleur rendement énergétique que ces derniers. Il est compatible avec Linux.
La société franco-italienne STMicroelectronics signe en mars 2007 un contrat de 5 ans avec l'institut de technologie informatique de l'Académie des sciences de Chine, afin de produire et commercialiser des processeurs Loongson. Le premier processeur devant être produit est le Longsoon-2E à 1GHz avec un processus de 90 nm. Ce processeur offre alors des performances similaires aux Pentium III et Pentium 4. Il n'est pas fait pour faire fonctionner MS Windows, mais Linux$^,$ déjà utilisé dans les centres de calculs et de recherche.
Ces microprocesseurs sont utilisés dans des supercalculateurs chinois, ainsi que dans des ordinateurs à ultra-basse consommation électrique, comme les ordinateurs de la marque Lemote (en).

## Versions

Les versions du Loongson ne représentent plus vraiment des évolutions du processeur, mais plutôt des gammes. Ainsi, les Loongson 1 sont des processeurs à très basse consommation électrique réservés aux systèmes ne demandant pas beaucoup de performance.
Les Loongson 2 sont destinés aux ordinateurs portables et aux ordinateurs de bureau alors que les Loongson 3 sont seulement destinés au marché des serveurs et des superordinateurs.

### Loongson 1

La première version de l’architecture Loongson fut un processeur 32 bits fonctionnant à une cadence de 266 MHz et commercialisé à partir de 2002.
Fabriqué avec la technologie CMOS et avec une finesse de gravure de 180 nm, ce processeur ne consomme que 0,5 watt, ce qui le rend idéal pour les architectures embarquées comme les caisses enregistreuses, où des performances élevés ne sont pas nécessaires. Sa conception intègre directement dans le circuit une protection contre les attaques informatiques du type « dépassement de tampon ». Les équipements de sécurité utilisant ce processeur atteignent donc les niveaux de sécurité élevés demandés par les entreprises et agences gouvernementales.

### Loongson 2

La deuxième version, en CMOS 180 nm, contient 13,5 millions de transistors. Le Godson 2C (ou Loongson 2C) et cadencée à 500 MHz, ce qui lui donne un niveau de performance de 8 à 10 fois celui du Loongson 1, soit environ le double des performances d’un processeur VIA 1,3 GHz, ou encore l’équivalent d’un Pentium III, cette vitesse étant suffisante pour la plupart des applications de bureau sous Linux.
La version Godson 2E ajouta le jeu d’instructions 64 bits MIPS III à l’architecture et contient 47 millions de transistors. Il est cadencé à une fréquence entre 800 MHz et 1 GHz et consomme de 5 à 7 watts. Il était alors équivalent en puissance à un Pentium III haut de gamme, ou à un Pentium 4 bas de gamme.

#### Loongson 2F

La version 2F est une évolution du Loongson 2E avec des capacités d’entrée/sortie étendues et une bande passante mémoire améliorée. Il comprend une interface 32 bits PCI/PCI-X ainsi que le support 64 bits des mémoires RAM DDR2. Un module permet une accélération vidéo au travers de l’interface PCI-PCI-X. Sa fréquence peut atteindre 1,2 GHz et il est sorti en novembre 2007.
Voici un résumé de ses principales caractéristiques :
* quatre étages superscalaires, Exécution out-of-order, basé sur l’architecture MIPS 64 bits ;
* petit-boutiste (Little-endian) ISA compatible MIPS III ;
* 5 unités d'exéctuion : 2 UAL, 2 UCVF (FPU), et une unité générateur d’adresses (AGU) ;
* L’extension SIMD est intégrée dans l’une des deux unités de calcul en virgule flottante ;
* 64 Ko de mémoire cache L1 séparés pour les instructions et les données ;
* 512 Ko de mémoire cache L2 de 4-way set-associative ;
* contrôleur de mémoire DDR2 64 bits intégré ;
* accélération vidéo de base intégrée ;
* gestion dynamique de la puissance électrique ;
* consommation maximale de 4 watts lorsque cadencé à 1 GHz.
Ce processeur a une puissance similaire à un Intel Atom 1,66 GHz tout en ayant une consommation similaire.
Le 26 décembre 2007, la république populaire de Chine dévoila à Hefei « KD-50-I », son premier supercalculateur à atteindre la puissance d’un téraflop (la puissance effective est d’environ 350 gigaflops). Ce supercalculateur fut conçu par la coopération d’équipes dirigées par l’académicien Chen Guoliang (陈国良), professeur de technologie en science informatique de l’Université des sciences et technologies de Chine, équipe principale du projet, avec l’institut de recherche en technologie informatique de l’Académie chinoise des sciences comme seconde équipe.
Le KD-50-I fut le premier supercalculateur fabriqué en Chine à utiliser des microprocesseurs domestiques chinois. Il possédait plus de 330 microprocesseurs Loongson-2F et sa taille était à peu près celle d’un réfrigérateur d’appartement (« Photo du KD-50 », 27 décembre 2007) et coûta moins de 800 000 RMB (environ 80 000 €). Le Loongson 2F est ainsi devenu le premier microprocesseur chinois utilisé dans un supercalculateur.

#### Loongson 2G

Cette évolution inclut les évolutions suivantes:
* 4 cœurs de 1 GHz ;
* une cache L2 de 4 Mo ;
* un nouveau contrôleur mémoire intégré gérant la DDR2 et la DDR3 ;
* une consommation électrique moindre à puissance identique au 2F grâce au passage d’une gravure de 90 nm à 65 nm ;
* intégralement compatible avec MIPS64 (le « 2F » était compatible avec le MIPS III avec l’extension 64 bits, ce qui n’est pas exactement le MIPS-64) ;
* le Loongson 3G ajoute aussi les instructions x86 introduites par le Loongson 3 ;
* ajout d’un contrôleur HyperTransport pour une liaison plus rapide aux périphériques non intégrés au processeur (comme le southbridge).
Malgré son nom, le Loonson 2G se rapproche bien plus d’un Loongson 3A que du Loongson 2F.

### Loongson 3

Le Loongson 3 est conçu pour fonctionner à une cadence d’entre 1 et 1,2 GHz avec quatre cœurs dans sa version A et huit dans sa version B. En avril 2010, le Loongson 3A est sorti avec le support de la SDRAM DDR3.
Le Loongson 3 ajoute aussi 200 nouvelles instructions à l’architecture MIPS pour simplifier l’émulation de l’architecture x86, facilitant ainsi la transition à partir de cette plateforme. Une autre amélioration du Loongson est l’ajout de deux contrôleurs Hyper Transport qui permettent l’interconnexion entre les processeurs et ainsi la création d’environnements multiprocesseurs complexes (il existe des prototypes de cartes mère à 8 processeurs).

#### Loongson 3A

En mai 2010, le premier supercalculateur KD-60 à base de Loongson 3A commençait ses premiers tests. Constitué de 80 processeurs Loongson 3A, sa puissance théorique est d’un téraflop pour une consommation électrique de 2 381 W.

#### Loongson 3B

Le Loongson 3B est une évolution du Loongson 3A et ses améliorations par rapport à son prédécesseur sont:
* le passage de 4 à 8 cœurs ;
* le remplacement des unités de calcul en virgule flottante traditionnelles par de nouvelles unités de calcul à virgule flottante vectorielle de 256 bits haute-performance augmentant considérablement la puissance de calcul théorique par rapport au 3A dans le cadre de calculs de nombres réels. On parle de 128 GFLOPS par processeur pour seulement 50 watts, soit 16 GFLOPS pour environ 7 watts par cœur.

#### Loongson 3B 1500

Le Loongson 3B 1500 est sorti en 2013 et les nouveaux apports furent:
* passage du processus de gravure à 32 nm ;
* support 8 cœurs par processeur grâce à la consommation électrique optimisée et la meilleure miniaturisation ;
* passage à une fréquence maximale de 1,2 à 1,5 GHz pouvant alors atteindre 150 GFLOPS grâce à la diminution de la taille des connexions (et ainsi la diminution de la latence) permise par le nouveau processus de gravure ;
* 9 niveaux de superpipeline ;
* 64 Ko de cache de niveau 1 séparées pour les instructions et les données, 128 Ko de cache de niveau 2 et 8 Mo de cache de niveau 3 ;
* support de la RAM DDR2 et DDR3 avec ECC ;
* Gère les bus PCI, LPC, SPI, UART et GPIO ;
* inclusion d’un circuit HyperTransport 2.0 ;
* le processeur est contenu dans un BGA 40 × 40 mm de 1 121 broches et compatible avec le Loongson 3A.

#### Loongson 3A 2000 et 3B 2000

Le Loongson 3A 2000 et 3B 2000 fut annoncé en septembre 2015. Basé sur l’architecture GS464E, il s’agit d’une architecture 64 bits améliorant notamment le nombre de pipelines et la prédiction des embranchements. Ils proposent:
* un jeu d’instructions MIPS64 version 3 ;
* LoongBT, une technologie d’émulation binaire permettant d’exécuter du code x86 ou ARM ;
* LoongVM, des instructions de machines virtuelles ;
* LoongSIMD, des instructions pour opérations arithmétiques avec des vecteurs de 128 et 256 bits.

#### Loongson 3A 3000 et 3B 3000

Les 3A 3000 et 3B 3000 devraient suivre en 2016 avec un processus lithographique de 28 nm.

#### Loongson 3A 4000 et 3B 4000

La série 4000 sortie en 2019, utilise des GS464EV gravés en 28 nm.

#### Loongson 3A 5000 à 3D 5000

la série 5000 comporte 4 modèles. Les 3C 5000 et 3D 5000 sortent en 2020, ils comportent 32 cœurs et consomment entre 150 et 300 W

#### Loongson 3A 6000

En novembre 2023, la marque annonce la sortie de la série 3A 6000, qui mélange les caractéristiques de l'architecture MIPS et de l'architecture RISC-V, le process de fabrication est de 12 à 14 nm. Asus produit une carte mère fonctionnement à 3 GHz, avec un refroidissement à l'azote liquide.

## Spécifications des microprocesseurs Loongson

| Nom | Modèle | Fréquence [MHz] | Architecture Version | Année | Cœurs | Gravure [nm] | Transistors [millions] | Taille Die [mm^2] | Énergie dissipée [W] | Voltage [V] | L1 Dcache [k] | L1 Icache [k] | L2 Cache [k] | L3 Cache [k] | Performance [SPEC2000] |
| Loongson-1 | 1 | 200 | MIPS 32 bits | 2002 | 1 | 180 | -- | -- | 1 | -- | 8 | 8 | non | non | 19/25 |
| Loongson-2 | 2B | 250 | MIPS-III 64 bits | 2003 | 1 | 180 | -- | -- | -- | -- | 32 | 32 | non | non | 52/58 |
| Loongson-2 | 2C | 450 | MIPS-III 64 bits | 2004 | 1 | 180 | 13.5 | 41.5 | -- | -- | 64 | 64 | non | non | 159/114 |
| Loongson-2E | STLS2E | 1000 | MIPS-III 64 bits | 2006 | 1 | 90 | 47 | 36 | 7 | 1.2 | 64 | 64 | 512 | | 503/503 |
| Loongson-2F | STLS2F | 1200 | MIPS-III 64 bits | 2007 | 1 | 90 | 51 | 43 | 5 | 1.2 | 64 | 64 | 512 | | -- |
| Loongson-2G | ?? | 1000 | MIPS64 | 2011 | 3-4 | 65 | -- | -- | 10 | -- | 64 | 64 | | 4096 | -- |
| Loongson-3A | 3A | 1000 | MIPS64 | 2009 | 4 | 65 | 400+ | -- | 10 | -- | 64 | 64 | | 4096 | 568/788 |
| Loongson-3B | 3B | 1000 | MIPS64 | 2010? | 4+4 | 65 | 600+ | 299,8 | 20 | -- | 64 | 64 | | 4096 | -- |
| Loongson-3B 1500 | 3B 1500 | 1500 | MIPS64 | 2013 | 8 | 32 | ? | 182,5 | 40 (1,2 GHz, usage courant) 80 (1Ghz, vectoriel) | -- | 64 | 64 | 128 | 8192 | 150 GFlops |
| Loongson-3A 2000 | 3A 2000 | 800 MHz - 1 GHz | GS464 (MIPS64) | 2015 | 32 | 40 | 621,44 | 202,3 | 15 | ? | 64 | 64 | 256 | 4096 | 16 GFlops |
| Loongson-3B 2000 | 3B 2000 | ? | GS464 (MIPS64) | 2015 | 32 | 40 | ? | ? | ? | ? | ? | 64/cœur | ? | ? | ? |
| Loongson-3A 3000 | 3A 3000 | ? | GS464 (MIPS64) | 2016 | ? | 28 | ? | ? | ? | ? | 64 | 64 | 256 | 8192 | 24 GFlops |
| Loongson-3B 3000 | 3B 3000 | ? | GS464 (MIPS64) | 2016 | ? | 28 | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Loongson-3A 4000 | 3A 4000 | ? | GS464EV (MIPS64) | 2019 | ? | 28 | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Loongson-3B 4000 | 3B 4000 | ? | GS464EV (MIPS64) | 2019 | ? | 28 | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Loongson-3D 5000 | 3D 5000 | ? | LA464 (MIPS64) | 2020 | 32 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Loongson-3A 6000 | 3A 5000 | ? | GS464EV (MIPS64) | 2023 | ? | 12~14 | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Godson-3B 6000 | 3B 6000 | ? | GS464EV (MIPS64) | 2023 | ? | 12~14 | ? | ? | ? | ? | ? | ? | ? | ? | ? |

## Historique

Le jeu d'instructions est compatible avec celui des microprocesseurs MIPS, mais les créateurs de ce processeur ont cessé de promouvoir cette compatibilité à la suite d’une poursuite judiciaire de la société Lexra.
En mars 2006, un micro-ordinateur de la taille d’un lecteur de DVD de 5,4 pouces contenant un processeur Godson II à 100 € et appelé Longmeng (chinois : 龙梦, « rêve de dragon ») fut annoncé.
En juin 2006 au Computex'2006 de Taipei, la société YellowSheepRiver a annoncé la sortie du Municator YSR-639, un mini-ordinateur basé sur le Loongson 2 à 400 MHz.
En avril 2008, la société néerlandaise Vanderled spécialisée dans l’éclairage à LED, annonce la sortie d’un ultramobile dans la lignée du Eee PC d’Asus, appelé Jisus, utilisant un écran LCD rétroéclairé à LED et un processeur Loongson. L’ordinateur serait livré avec une version du système d’exploitation GNU/Linux Ubuntu adapté à l’architecture MIPS pour fin mai 2008.
En novembre 2023, la marque annonce la sortie de la série 3A 6000, qui mélange les caractéristiques de l'architecture MIPS et de l'architecture RISC-V, le process de fabrication est de 12 à 14 nm. la marque Asus produit pour la première fois une carte mère pour ce processeur et fait une démonstration de son fonctionnement à 3 GHz, avec un refroidissement au nitrogène liquide.

## Logiciels supportés

Contrairement aux processeurs plus classiques comme Intel, AMD ou VIA Technologies, les Loongson ne supportent pas le jeu d'instructions x86. Le principal système d’exploitation est Linux, mais en théorie tous les SE supportant MIPS feront l’affaire. Par exemple, Windows CE a été porté facilement sur les systèmes basés sur Loongson.
Les distributions Linux fonctionnant sur Loongson :
* Debian, spécialement « Portage pour MIPSel », Debian, juillet 2016 (consulté le 4 juin 2017) ;
* Gentoo Linux, (en) « Travail en cours » ;
* gNewSense, (en) « gNewSense on the Lemote Yeeloong », gNewSense, 23 février 2014 (consulté le 4 juin 2017) ;
* Red Flag Linux ;
* Mandriva, depuis « Mandriva et la CPU chinoise Godson », sur boursorama.com, 28 septembre 2007 (consulté le 4 juin 2017) ;
* Linux From Scratch, (en) « MIPS 32-bit,64-bit,Multilib », sur cross-lfs.org, Cross Linux From Scratch (CLFS) ;
* Ututo, (es) « Travail en cours », 2013 (consulté le 9 avril 2013) ;
* EVEREST Linux.
Les systèmes d’exploitation autres que Linux :
* NetBSD, « Index of pub/NetBSD/NetBSD-current/src/sys/arch/evbmips/gdium/index.html (evbmips/gdium) », sur ftp.netbsd.org, 23 décembre 2017 (consulté le 4 juin 2017) ;
* OpenBSD, (en) « OpenBSD loongson fonctionnel », avril 2017 (consulté le 4 juin 2017).

### Compilateur supporté

GNU Compiler Collection (GCC) est le principal compilateur utilisé dans le développement logiciel pour la plateforme « Loongson ». Des optimisations spécifiques pour Loongson ont été ajoutées à GCC 4.4. Les options -march=loongson2z -march=loongson2f et, plus récemment, -march=loongson3a, peuvent être utilisées pour bénéficier pleinement des optimisations disponibles.
ICT a aussi porté Open64, un compilateur optimisé avancé pour les platesformes Loongson II.

### Applications

Les logiciels libres sous la plateforme Linux peuvent être portés très simplement. Les applications à code source ouvert les plus communes (comme OpenOffice.org, Mozilla Firefox, Pidgin et MPlayer) ont été portées pour l’architecture MIPS et les applications écrites en Java sont également supportées via les JDK d’Oracle, OpenJDK et IcedTea (en).