Macro view of a ternary processor circuit board with glowing cyan traces
Informatique ternaire · Base 3

Ternair Processor TP

Un processeur fondé sur la logique ternaire (états 0, 1, 2) qui dépasse les contraintes du binaire : densité d’information supérieure, consommation énergétique réduite et nouvelles architectures pour l’IA et le calcul haute performance.

3
états par digit (trit)
~1.58
bits d’information / trit
100×
économie d’énergie visée
2027
horizon d’adoption
Présentation

Qu’est-ce que le Ternair Processor TP ?

Le Ternair Processor TP est une unité de calcul reposant sur la logique ternaire plutôt que binaire. Là où un bit ne peut prendre que deux valeurs (0 ou 1), un trit en admet trois (0, 1, 2), ou de façon équilibrée −1, 0, +1. Cette base 3 permet de coder davantage d’information par unité, de simplifier certains circuits arithmétiques et de réduire le nombre de commutations, donc l’énergie dissipée. Le TP est par ailleurs agnostique du dispositif : il peut être réalisé sur CMOS multi-seuils, sur transistors à nanotubes de carbone (CNTFET) ou sur memristors — ces derniers stockant un trit par composant et ouvrant la voie au calcul en mémoire.

Densité d’information

Un trit transporte log₂(3) ≈ 1,58 bit. À nombre de fils égal, un bus ternaire véhicule ~58 % d’information en plus, réduisant l’encombrement des interconnexions.

Efficacité énergétique

Moins de digits et moins de commutations pour représenter une même valeur : la logique ternaire promet une réduction substantielle de l’énergie dynamique par opération.

Arithmétique équilibrée

Le ternaire équilibré (−1, 0, +1) représente naturellement les nombres signés : le signe est intrinsèque, la négation est triviale et l’arrondi est symétrique.

Adapté à l’IA

Les réseaux de neurones ternaires (poids −1/0/+1) alignent parfaitement le modèle algorithmique et le matériel, ouvrant la voie à une inférence dense et sobre.

Proposition de valeur

  • Repousser le plafond énergétique du calcul à l’ère de l’IA générative et de l’edge.
  • Réduire la complexité des interconnexions grâce à une densité logique supérieure.
  • Offrir une arithmétique élégante et symétrique pour le calcul scientifique.
Technologie ternaire

La logique 0 · 1 · 2 et le ternaire équilibré

La logique ternaire manipule trois niveaux logiques distincts. Deux conventions coexistent : le ternaire non signé (0, 1, 2), pratique pour l’implémentation matérielle par niveaux de tension, et le ternaire équilibré (−1, 0, +1), idéal pour l’arithmétique signée. Les opérateurs fondamentaux ne sont plus le simple ET/OU booléen mais des fonctions min, max et des négations multiples.

Les trois états logiques

0
1
2
Ternaire non signé0, 1, 2

Trois niveaux de tension (p. ex. 0 V, ½ V_DD, V_DD). Naturel pour la mémoire et la logique multi-niveaux ; un memristor multi-niveaux matérialise nativement ces trois états.

Ternaire équilibré−1, 0, +1

Le zéro est central : le signe d’un nombre est celui de son trit le plus significatif non nul. Négation = inversion des signes.

Portes logiques ternaires

Les portes ternaires généralisent les portes booléennes. Le ET devient un minimum, le OU un maximum, et l’inverseur peut être simple, positif ou négatif. Explorez ci-dessous le comportement des opérateurs pour toutes les combinaisons d’entrées.

012

Signal ternaire à trois niveaux discrets (0 / 1 / 2).

Démonstration interactive

Cliquez sur les entrées A et B pour parcourir les états 0 → 1 → 2 et observez les sorties en temps réel.

Entrée A
Entrée B
ET ternaire (MIN)1
OU ternaire (MAX)2
Somme mod 30
Inverseur de A (2−A)0
Mathématiques ternaires

Fondements arithmétiques de la base 3

Le calcul ternaire repose sur une arithmétique rigoureuse. Le ternaire équilibré (chiffres −1, 0, +1, notés T, 0, 1) rend le signe intrinsèque à la représentation et confère aux opérations une symétrie remarquable. Explorez les conversions, les tables d’opérations et le convertisseur interactif ci-dessous.

Économie de base (radix economy)

Le coût matériel pour représenter une plage de valeurs est proportionnel à b · logᵦ(N), où b est la base. Minimiser cette fonction donne la base optimale e ≈ 2,718 — et 3 est l’entier le plus proche. La base 3 est donc théoriquement la plus efficace des bases entières.

E(b) = b / ln(b) → min at b = e ≈ 2.718

Conversions décimal ↔ ternaire équilibré

DécimalTernaire équilibréDéveloppement
−4TT−3 −1
−1T−1
000
11+1
51TT+9 −3 −1
1111T+9 +3 −1
13111+9 +3 +1

Notation : T = −1, chaque colonne vaut une puissance de 3 (…, 9, 3, 1).

Convertisseur interactif

Saisissez un entier (−9841 à 9841) pour voir sa représentation en ternaire équilibré, non signé et en binaire.

Ternaire équilibré (T = −1)
10T10001
8 trits
Ternaire non signé
2210001
7 trits
Binaire
11111101010
11 bits
−3 digits économisés (8 trits vs 11 bits)

Table d’addition (ternaire équilibré)

+T01
T1↓1T0
0T01
101T↑1

La somme de deux trits peut générer une retenue (indiquée par ↑1 ou ↓1). La symétrie autour de 0 est totale.

Propriétés arithmétiques clés

  • Négation triviale : inverser un nombre revient à échanger les chiffres 1 ↔ T. Aucun circuit dédié.
  • Signe intrinsèque : le signe est celui du trit le plus significatif non nul ; pas de bit de signe séparé.
  • Arrondi symétrique : tronquer revient à arrondir au plus proche, sans biais systématique.
  • Retenue rare : la probabilité de propagation de retenue est plus faible, accélérant l’addition.
Architecture & conception

Conception du Ternair Process Unit (TPU)

Le cœur du Ternair Processor est le TPU — Ternair Process Unit. Il organise, autour d’un chemin de données entièrement ternaire, un ensemble d’unités spécialisées reliées par un bus de trits. Le schéma bloc ci-dessous détaille le pipeline, la hiérarchie mémoire et les convertisseurs de frontière assurant l’interopérabilité avec le monde binaire.

Hôte binaireCPU / OS binaireConvertisseur E/Sbinary ↔ ternaryTPU — Ternair Process UnitChemin de données natif en tritsUnité de contrôleFetch · DecodeRegistres de tritsRegistres ternairesALU ternaireMIN / MAX / INVT-CPUContrôleT-APUArithmétiqueT-GPUGraphiqueT-TPUTenseursT-NPUIA / TNNMémoire de trits (T-Cache)Cellules multi-niveauxBus de trits (interconnexion ternaire)Les convertisseurs isolent le cœur ternaire du monde binaire.Toutes les unités partagent le bus de trits et la mémoire multi-niveaux.

Pipeline d’exécution ternaire

1

Chargement

Lecture des instructions ternaires depuis la mémoire de trits (T-Cache).

2

Décodage

Interprétation de l’ISA ternaire ; les opcodes exploitent la densité de la base 3.

3

Exécution

ALU ternaire (MIN/MAX/inverseurs) et additionneur en ternaire équilibré.

4

Mémoire

Accès au fichier de registres de trits et à la mémoire multi-niveaux.

5

Écriture

Renvoi des résultats vers les registres, prêts pour l’instruction suivante.

Principes de conception

  • Chemin de données natif en trits, sans conversion interne binaire.
  • Convertisseurs binaire↔ternaire uniquement aux frontières d’E/S.
  • Modèle hybride : le TPU agit comme accélérateur piloté par un hôte binaire.
  • Mémoire multi-niveaux : trois niveaux par cellule pour densifier le stockage ; des cellules memristives non volatiles autorisent en outre un démarrage instantané.

Optimisation des circuits internes

Pour tenir ses promesses, le TPU ne se contente pas d’unités rapides : il optimise le flux de données entre ses circuits internes. Un tissu d’interconnexion ternaire, des caches cohérents et des opérations fusionnées réduisent les déplacements de trits et la consommation d’énergie.

Tissu d’interconnexion ternaire

Réseau sur puce (NoC) reliant T-CPU, T-GPU, T-TPU et T-NPU par des liens de trits à faible latence.

Cache partagé cohérent

Hiérarchie de caches de trytes cohérents évitant les copies redondantes entre unités.

Ordonnancement inter-unités

Un répartiteur dirige chaque instruction vers l’unité la plus efficace, en recouvrant calcul et transferts.

Opérations fusionnées (MAC)

Les chemins multiplication-accumulation fusionnés évitent les allers-retours vers les registres.

Alimentation adaptative

Chaque unité inactive est isolée (power/clock gating) pour économiser l’énergie.

Chemins de données larges

Des bus de trytes larges déplacent plus d’information par cycle grâce à la densité de la base 3.

Calcul en mémoire (memristif)

Des crossbars de memristors réalisent le produit matrice-vecteur là où les données résident, supprimant le va-et-vient mémoire-calcul.

Unités de traitement

CPU · APU · GPU · TPU · NPU en ternaire

Le Ternair Process Unit fédère cinq familles d’unités de calcul, chacune réinventée pour la logique à trois états. Ensemble, elles couvrent le contrôle général, l’arithmétique intensive, le rendu graphique parallèle, le calcul tensoriel et l’inférence neuronale.

T-CPU
Unité centrale ternaire
Contrôle & logique générale

Orchestre le flux d’instructions, la logique de branchement et le séquencement. Son ISA ternaire code plus d’opérations par mot grâce à la densité de la base 3, réduisant la pression sur le cache d’instructions.

  • Séquenceur & unité de contrôle micro-programmée ternaire
  • Branchement natif à 3 issues (négatif / zéro / positif) en une instruction
  • Fichier de 27 registres de trits + pointeur de pile
  • Prédiction de branchement ternaire et pipeline 5 étages
  • Gestion des interruptions et des E/S mémoire-mappées
T-APU
Unité arithmétique ternaire
Calcul numérique intensif

Spécialisée dans l’arithmétique en ternaire équilibré : addition à retenue rare, négation triviale et arrondi symétrique. Idéale pour le calcul scientifique et le traitement du signal exigeant en précision.

  • Additionneur/soustracteur à propagation de retenue anticipée
  • Multiplieur & diviseur à réduction de retenue
  • Négation triviale (échange 1 ↔ T) sans circuit dédié
  • Virgule flottante ternaire (mantisse/exposant en trits)
  • Opérateurs logiques MIN / MAX / CONS et décalages ternaires
T-GPU
Unité graphique ternaire
Rendu & calcul parallèle

Un large réseau de cœurs ternaires SIMT dédié au parallélisme massif : rastérisation, ombrage et calcul général (GPGPU). La densité de la base 3 augmente le débit de trits par cœur tout en réduisant l’énergie par pixel.

  • Milliers de cœurs SIMT ternaires groupés en warps de trits
  • Pipeline graphique : sommets → rastérisation → fragments
  • Shaders ternaires programmables (T-Shader)
  • Mémoire partagée multi-niveaux et coalescence d’accès
  • Mode GPGPU pour physique, simulation et pré/post-traitement IA
T-TPU
Unité de calcul tensoriel
Algèbre matricielle

Réseau systolique de cellules ternaires exécutant des produits matriciels massifs. Les poids ternaires (−1/0/+1) transforment les multiplications en additions/soustractions, maximisant le débit par watt.

  • Réseau systolique MAC ternaire (produit matriciel)
  • Multiplication sans multiplieur (add/sub sur poids −1/0/+1)
  • Accumulateurs à large plage et convolution matérielle
  • Flux de données à faible mouvement mémoire (dataflow)
  • Option crossbar memristif : produit matrice-vecteur en mémoire
T-NPU
Unité neuronale ternaire
Inférence IA

Conçue pour les réseaux de neurones ternaires et quantifiés. L’alignement parfait entre poids −1/0/+1 et matériel offre une inférence dense, sobre et à faible latence pour les LLM embarqués.

  • Moteur de réseaux de neurones ternaires (TNN)
  • Fonctions d’activation à 3 états et quantification en ligne
  • Mémoire de poids compressée ternaire
  • Traitement en flux (streaming) pour LLM à faible latence
  • Poids stockés en conductances sur crossbar memristif (calcul en mémoire)
Logiciel & chaîne d’outils

TernASM, la bibliothèque libtern et le compilateur ternc

Piloter le Ternair Process Unit exige une pile logicielle native à la base 3. Elle repose sur trois briques : le langage d’assemblage TernASM (jeu d’instructions ternaire), la bibliothèque d’exécution libtern, et le compilateur ternc qui traduit un langage de haut niveau en code machine de trits. Le simulateur ci-dessous exécute réellement du TernASM dans votre navigateur.

Un ordinateur ternaire complet

Grâce à ces instructions et à la bibliothèque libtern, le TPU peut prendre en charge tout ce qu’on attend d’un ordinateur moderne : calcul, mémoire, fichiers, réseau, affichage, son, sécurité et interface graphique.

Calcul & logique

Arithmétique entière, virgule flottante ternaire et logique à trois états.

Mémoire & stockage

RAM de trytes, pile matérielle et hiérarchie de caches multi-niveaux.

Entrées / sorties

Clavier, console, périphériques et flux de données.

Fichiers & système

Système de fichiers ternaire, processus et ordonnancement.

Réseau

Piles de communication et protocoles pour échanger des trytes.

Graphisme

Rendu 2D/3D, shaders et composition via le T-GPU.

Audio

Synthèse, traitement du signal et lecture sonore.

Sécurité & crypto

Primitives cryptographiques exploitant l’entropie ternaire.

Interface graphique

Fenêtres, widgets et événements pour applications interactives.

Chaîne de compilation

1
Source T-Lang

Langage haut niveau à types ternaires (trit, tryte, tint).

2
Compilateur ternc

Analyse, optimisations base 3, allocation de registres de trits.

3
TernASM

Assembleur ternaire lisible : mnémoniques et étiquettes.

4
Assembleur tas

Résolution des étiquettes, encodage en mots de trits.

5
Code machine (trits)

Exécutable natif chargé par le TPU.

Jeu d’instructions TernASM

CPU · T-CPU · TernASM

Registres R0–R8 (ternaire équilibré). Les valeurs immédiates sont en décimal. Branchements à 3 issues selon le signe.

MnémoniqueOpérandesDescription
LDIRd, immCharge une valeur immédiate dans Rd.
MOVRd, RsCopie Rs dans Rd.
ADDRd, Rs, RtRd = Rs + Rt (ternaire équilibré).
SUBRd, Rs, RtRd = Rs − Rt.
MULRd, Rs, RtRd = Rs × Rt.
DIVRd, Rs, RtDivision entière : Rd = Rs ÷ Rt.
MODRd, Rs, RtReste : Rd = Rs mod Rt.
MACRd, Rs, RtMultiplication-accumulation fusionnée : Rd += Rs × Rt.
ADDIRd, Rs, immRd = Rs + valeur immédiate.
MULIRd, Rs, immRd = Rs × valeur immédiate.
ABSRd, RsValeur absolue : Rd = |Rs|.
NEGRd, RsNégation triviale : Rd = −Rs (échange 1↔T).
SWAPRd, RsÉchange le contenu de Rd et Rs.
CLRRdRemet Rd à zéro.
SIGNRd, RsSigne natif : Rd = −1, 0 ou +1 selon Rs (une seule opération).
SATRd, RsSature en un trit : Rd ∈ {−1, 0, +1}.
CLAMPRd, Rs, Rlo, RhiBorne Rs dans [Rlo, Rhi].
MED3Rd, Ra, Rb, RcMédiane de 3 (filtrage anti-bruit natif).
TSELRd, Rc, Rn, Rz, RpMultiplexeur ternaire : choisit selon le signe de Rc.
MINRd, Rs, RtET ternaire : Rd = min(Rs, Rt).
MAXRd, Rs, RtOU ternaire : Rd = max(Rs, Rt).
JMPlabelSaut inconditionnel vers l’étiquette.
BR3Rs, neg, zer, posBranche à 3 issues selon le signe de Rs.
JLZRs, labelSaute si Rs < 0.
JGZRs, labelSaute si Rs > 0.
OUTRsÉcrit Rs sur la sortie (décimal + ternaire).
HALTArrête l’exécution.

Jeu d’instructions système & mémoire

T-CPU · MEM · STACK

Pour se comporter comme un vrai ordinateur, le TPU dispose d’instructions généralistes : accès mémoire, pile matérielle, sous-programmes (CALL/RET), comparaison à trois issues, décalages ternaires et E/S. Toutes ces instructions sont réellement exécutées par le simulateur ci-dessous.

Mémoire de 243 trytes (adresses 0–242). La pile grandit à partir du sommet. CMP renvoie −1, 0 ou +1 — un comparateur naturellement ternaire.

MnémoniqueOpérandesDescription
LDRd, [Rs]Charge depuis la mémoire : Rd = MEM[Rs].
ST[Rd], RsRange en mémoire : MEM[Rd] = Rs.
LDARd, addrCharge depuis une adresse immédiate.
STAaddr, RsRange à une adresse immédiate.
PUSHRsEmpile Rs sur la pile matérielle.
POPRdDépile le sommet dans Rd.
CALLlabelAppelle un sous-programme (empile le retour).
RETRetour de sous-programme.
CMPRd, Rs, RtComparateur ternaire : Rd = signe(Rs − Rt).
INCRdIncrémente : Rd = Rd + 1.
DECRdDécrémente : Rd = Rd − 1.
SHLRd, RsDécalage ternaire gauche : Rd = Rs × 3.
SHRRd, RsDécalage ternaire droit : Rd = Rs ÷ 3.
JEQRs, Rt, labelSaute si Rs = Rt.
JNERs, Rt, labelSaute si Rs ≠ Rt.
JZRs, labelSaute si Rs = 0.
NOPAucune opération.

Instructions arithmétiques ternaires (T-APU)

ALU · T-APU · FP3

Le T-APU expose un jeu d’instructions taillé pour le calcul numérique intensif en ternaire équilibré. L’addition profite d’une retenue rare, la négation est triviale (échange 1 ↔ T) et l’arrondi est symétrique. Une unité de virgule flottante ternaire complète l’ensemble pour le calcul scientifique.

Les nombres flottants ternaires codent mantisse et exposant en trits. Les comparaisons renvoient directement les trois issues (−, 0, +) du comparateur ternaire natif.

Arithmétique entière & haute précision

MnémoniqueOpérandesDescription
ADDXRd, Ra, RbAddition étendue avec retenue anticipée (retenue rare).
SUBXRd, Ra, RbSoustraction étendue via négation triviale de Rb.
MULWRhi, Rlo, Ra, RbMultiplication large (résultat double longueur).
DIVRRq, Rr, Ra, RbDivision euclidienne : quotient Rq et reste Rr.
NEGTRd, RsNégation triviale (échange 1 ↔ T) sans circuit dédié.
CMP3Rd, Ra, RbComparaison à 3 issues : Rd = − / 0 / + selon Ra vs Rb.

Virgule flottante ternaire

MnémoniqueOpérandesDescription
FADDFd, Fa, FbAddition flottante ternaire (arrondi symétrique).
FMULFd, Fa, FbMultiplication flottante ternaire.
FMAFd, Fa, Fb, FcMultiplication-addition fusionnée (Fd = Fa·Fb + Fc).
FDIVFd, Fa, FbDivision flottante ternaire.
FCVTFd, RsConversion entier ternaire ↔ flottant ternaire.
FCMPRd, Fa, FbComparaison flottante à 3 issues.

Logique ternaire & décalages

MnémoniqueOpérandesDescription
TMINRd, Ra, RbET ternaire : minimum trit par trit.
TMAXRd, Ra, RbOU ternaire : maximum trit par trit.
TCONSRd, Ra, RbConsensus : renvoie la valeur commune, sinon 0.
TSHLRd, Rs, nDécalage à gauche : multiplie par 3^n.
TSHRRd, Rs, nDécalage à droite : divise par 3^n.
TCLZRd, RsCompte les trits nuls de tête (normalisation).
Addition à retenue rare

La base 3 réduit la fréquence des propagations de retenue, accélérant les additions larges.

Négation triviale

Changer de signe = échanger 1 et T : aucun circuit de complément à deux nécessaire.

Virgule flottante ternaire

Mantisse et exposant en trits, arrondi symétrique sans biais pour le calcul scientifique.

Logique MIN / MAX / CONS

Les opérateurs ternaires natifs remplacent des séquences booléennes entières.

Instructions graphiques 3D & trigonométrie (T-GPU)

3D · T-GPU · CORDIC / TMX

Le T-GPU ajoute un jeu d’instructions dédié au rendu 3D temps réel. Les fonctions trigonométriques sont évaluées par un cœur CORDIC ternaire (rotations successives sans multiplieur), et les transformations géométriques opèrent sur des vecteurs et matrices de trytes. Angles et coordonnées sont normalisés en virgule fixe ternaire, où le tour complet se divise naturellement en puissances de 3.

Registres vectoriels V0–V7 (voies x, y, z). Les angles sont exprimés en tours fractionnaires ternaires (1 tour = 3^n pas). Le test de profondeur exploite le comparateur ternaire natif (− devant, 0 égalité, + derrière).

Trigonométrie (CORDIC ternaire)

MnémoniqueOpérandesDescription
TSINRd, RaSinus de l’angle Ra (tour fractionnaire) via CORDIC.
TCOSRd, RaCosinus de l’angle Ra.
TSINCOSRs, Rc, RaSinus et cosinus en une passe (Rs = sin, Rc = cos).
TTANRd, RaTangente de l’angle Ra.
TATAN2Rd, Ry, RxArc-tangente à deux arguments atan2(y, x) — angle d’un vecteur.
TSQRTRd, RsRacine carrée (CORDIC hyperbolique).
TRSQRTRd, RsRacine carrée inverse 1/√Rs — normalisation rapide.

Vecteurs & géométrie

MnémoniqueOpérandesDescription
VDOT3Rd, Vs, VtProduit scalaire 3D : Rd = x·x + y·y + z·z.
VCROSSVd, Vs, VtProduit vectoriel 3D (normale d’un triangle).
VNORMVd, VsNormalise un vecteur (utilise TRSQRT).
VLENRd, VsLongueur euclidienne d’un vecteur.
VLERPVd, Vs, Vt, RkInterpolation linéaire entre deux vecteurs (facteur Rk).
VREFLVd, Vi, VnRéflexion d’un vecteur Vi sur la normale Vn (éclairage).

Transformations & pipeline de rendu

MnémoniqueOpérandesDescription
MROTMd, Ra, axisConstruit une matrice de rotation autour d’un axe (appelle TSINCOS).
MMUL4Md, Ma, MbMultiplie deux matrices 4×4 (composition de transformations).
MVECVd, Ma, VsApplique une matrice à un vecteur (modèle → monde → vue).
PROJVd, Vs, RfProjection perspective (division par la profondeur, focale Rf).
ZTESTRd, Rz, RbufTest de profondeur à 3 issues (devant / égal / derrière).
RASTERV0, V1, V2Rastérise un triangle (coordonnées barycentriques).
TEXVd, Ruv, RtexÉchantillonne une texture aux coordonnées UV.

SIMD média — extension TMX

MnémoniqueOpérandesDescription
VLDIVd, a, b, cCharge 3 voies immédiates dans Vd.
VMOVVd, VsCopie le vecteur Vs dans Vd.
VADDVd, Vs, VtAddition packée : Vd[i] = Vs[i] + Vt[i].
VSUBVd, Vs, VtSoustraction packée voie par voie.
VMULVd, Vs, VtMultiplication packée voie par voie.
VNEGVd, VsNégation packée (échange 1↔T sur chaque voie).
VABSVd, VsValeur absolue packée voie par voie.
VSHLVd, VsDécalage ternaire gauche packé (×3 par voie).
VMINVd, Vs, VtET ternaire packé : min voie par voie.
VMAXVd, Vs, VtOU ternaire packé : max voie par voie.
VSATVd, VsSaturation packée voie par voie vers un trit.
VMED3Vd, Va, Vb, VcMédiane packée de 3 vecteurs (filtre médian rapide).
VOUTVsÉcrit les 3 voies de Vs sur la sortie.
CORDIC ternaire sans multiplieur

Sinus, cosinus et racines s’obtiennent par de simples décalages et additions ternaires, idéal pour un GPU sobre.

Angles en tours ternaires

Un tour complet se divise en 3^n pas égaux : pas d’erreur d’arrondi sur les angles remarquables.

Test de profondeur natif

Le comparateur ternaire tranche devant / égal / derrière en une seule opération (ZTEST).

Pipeline modèle → écran

Transformations, projection, rastérisation et texturage enchaînés en trytes, du sommet au pixel.

Instructions de calcul tensoriel (T-TPU)

TENSOR · T-TPU · GEMM / TMX

Le T-TPU orchestre un réseau systolique de cellules ternaires pour exécuter des produits matriciels massifs. Les poids ternaires (−1/0/+1) transforment les multiplications en additions et soustractions, et un mode crossbar memristif permet le produit matrice-vecteur directement en mémoire.

Les instructions opèrent sur des tuiles (tiles) chargées dans le réseau. Le flux de données minimise le mouvement mémoire ; les accumulateurs sont à large plage pour éviter tout débordement.

Produit matriciel systolique

MnémoniqueOpérandesDescription
MLOADMa, ptrCharge une tuile de poids ternaires dans le réseau.
MMACMc, Ma, MbMultiplication-accumulation matricielle (add/sub sur poids).
GEMMMc, Ma, MbProduit matriciel général Mc = Ma·Mb.
MTRANSPMd, MsTransposition matérielle d’une tuile.
MREDVd, MsRéduction (somme) d’une matrice sur un axe.

Convolution & flux de données

MnémoniqueOpérandesDescription
CONV2DMd, Ms, MkConvolution 2D matérielle (noyau ternaire Mk).
CONVDWMd, Ms, MkConvolution profondeur par profondeur (depthwise).
IM2COLMd, MsDéroule les fenêtres en colonnes pour le GEMM.
POOLMd, Ms, modeSous-échantillonnage (max/moyenne ternaire).
PADMd, Ms, nRembourrage des bords avec des trits nuls.

Crossbar memristif (calcul en mémoire)

MnémoniqueOpérandesDescription
XLOADXarr, MsProgramme les poids en conductances sur le crossbar.
XMVVd, Xarr, VsProduit matrice-vecteur analogique en mémoire (loi d’Ohm).
XACCVd, Xarr, VsAccumule plusieurs passes XMV pour de grandes matrices.
XREFRESHXarrRafraîchit les conductances (compense la dérive).

SIMD tenseurs — extension TMX

MnémoniqueOpérandesDescription
VMACVd, Vs, VtMAC packée fusionnée : Vd[i] += Vs[i]·Vt[i].
VDOTRd, Vs, VtProduit scalaire : Rd = Σ Vs[i]·Vt[i].
VSUMRd, VsRéduction horizontale : Rd = Σ Vs[i].
Réseau systolique ternaire

Les cellules propagent poids et activations en cadence pour un débit matriciel élevé.

Multiplication sans multiplieur

Des poids −1/0/+1 réduisent chaque produit à une addition, une soustraction ou rien.

Flux de données sobre

Le mouvement mémoire est minimisé : les données circulent au sein du réseau.

Crossbar memristif

Le produit matrice-vecteur s’exécute en mémoire, sans va-et-vient vers la RAM.

Instructions neuronales ternaires (T-NPU)

NEURAL · T-NPU · TNN

Le T-NPU cible les réseaux de neurones ternaires et quantifiés. L’alignement parfait entre poids −1/0/+1 et matériel offre une inférence dense et sobre : les couches, activations et étapes de quantification deviennent des instructions natives, jusqu’au décodage en flux des grands modèles de langage.

Les poids sont stockés compressés en ternaire. Les activations à trois états et la quantification en ligne évitent les allers-retours vers une représentation binaire.

Couches neuronales ternaires

MnémoniqueOpérandesDescription
TLINVd, Vs, MwCouche linéaire (entièrement connectée) à poids ternaires.
TCONVVd, Vs, MkCouche de convolution ternaire.
TBNVd, VsNormalisation par lot repliée dans l’échelle ternaire.
TRESVd, Va, VbConnexion résiduelle (addition d’activations).
TATTVd, Vq, Vk, VvBloc d’attention ternaire (Q, K, V).

Activations & quantification

MnémoniqueOpérandesDescription
TRELUVd, VsActivation à 3 états (négatif → 0, garde 0 et +).
TSIGNVd, VsFonction signe ternaire (−, 0, +).
TQUANTVd, Vs, RsQuantifie des activations vers des trits (seuil Rs).
TSOFTVd, VsSoftmax approximé en base 3 pour l’attention.
TDEQVd, Vs, ReDéquantification vers virgule flottante ternaire.

Inférence LLM en flux

MnémoniqueOpérandesDescription
TEMBVd, RtokRecherche d’embedding pour un jeton.
TROPEVd, Vs, RposEncodage positionnel rotatif (RoPE) ternaire.
TKVKbuf, Vbuf, Vk, VvMet à jour le cache clé/valeur en flux.
TGEMVVd, Mw, VsProduit matrice-vecteur (décodage jeton par jeton).
TTOPRd, Vs, kÉchantillonnage top-k du prochain jeton.
Moteur de réseaux ternaires

Couches, attention et résidus s’exécutent nativement sur des poids −1/0/+1.

Activations à 3 états

Signe et seuils ternaires remplacent les activations binaires coûteuses.

Poids compressés ternaires

Stocker les poids en trits réduit la mémoire et la bande passante nécessaires.

LLM en flux à faible latence

Cache clé/valeur, RoPE et décodage jeton par jeton pour l’IA embarquée.

Fonctions accélérées nativement

MMX-like · natif base 3

De même que MMX/SSE ont donné aux processeurs binaires des instructions spécialisées pour le multimédia, la base 3 offre des primitives que le TPU réalise en une seule opération là où un binaire en demande plusieurs. Ces fonctions exploitent l’existence naturelle d’un troisième état (négatif, zéro, positif).

Signe & test à 3 issues
T-CPU

Le signe est une valeur ternaire native : négatif, nul, positif — un seul branchement à trois voies.

Binaire
2–3 instructions binaires
Ternaire
1 instruction (SIGN / BR3)
Filtre médian (anti-bruit)
T-GPU

La médiane de trois échantillons, base du débruitage capteur et image, tient en une instruction packée.

Binaire
Tris et comparaisons multiples
Ternaire
MED3 / VMED3 packé
Multiplexeur ternaire
T-CPU

Choisir parmi trois valeurs selon un signe se fait sans branchement, idéal pour la logique de contrôle.

Binaire
Branches imbriquées
Ternaire
TSEL en une passe
Inférence TNN (poids −1/0/+1)
T-NPU

Les réseaux ternaires remplacent la multiplication par une simple addition, accélérée par VMAC.

Binaire
Multiplications coûteuses
Ternaire
Additions/soustractions
Recherche TCAM (routage/filtrage)
T-CPU

Le troisième état « indifférent » est natif : idéal pour les tables de routage et le filtrage de paquets IoT.

Binaire
Deux bits par cellule
Ternaire
Un trit : 0 / 1 / « indifférent »
Négation & arithmétique signée
T-APU

En ternaire équilibré, la négation est triviale et il n’existe pas de zéro négatif ni de dépassement asymétrique.

Binaire
Complément à deux
Ternaire
Échange 1↔T (NEG)
Saturation en un trit
T-APU

Ramener une valeur à {−1, 0, +1} — utile pour la quantification et les activations — est une instruction unique.

Binaire
Comparaisons + masques
Ternaire
SAT / VSAT
Aléa & crypto ternaire
T-CPU

Chaque trit porte log₂3 ≈ 1,58 bit d’entropie, densifiant clés et masques cryptographiques.

Binaire
Bits pseudo-aléatoires
Ternaire
Trits à plus haute entropie

Interopérabilité binaire : ponts IoT, ARM et x64

IoT · ARM · x64

Le TPU vit dans un monde binaire : il agit comme coprocesseur piloté par un hôte classique (microcontrôleur IoT, cœur ARM, processeur x64). Un jeu d’instructions de conversion traduit les entiers binaires en trits à l’entrée et reconvertit les résultats en sortie, aux seules frontières d’E/S — le cœur reste 100 % ternaire.

Les conversions se font uniquement aux frontières. B2T/T2B traitent les entiers signés ; PACK/UNPACK sérialisent des trytes vers des octets pour les bus binaires (I2C, SPI, UART, PCIe).

MnémoniqueOpérandesDescription
B2TRd, immBinaire → ternaire : convertit un entier binaire (complément à deux) en trits équilibrés dans Rd.
T2BRd, RsTernaire → binaire : écrit la représentation binaire de Rs dans le registre hôte Rd.
PACK[Rd], RsSérialise un tryte en octets pour un bus binaire (5 trits → 1 octet).
UNPACKRd, [Rs]Reconstruit un tryte ternaire depuis des octets reçus du bus.
INRd, portLit un mot binaire depuis un port hôte (MMIO) et le convertit en trits.
OUT2port, RsÉcrit Rs converti en binaire vers un port hôte (MMIO).
DMARd, Rs, RnTransfert par blocs entre mémoire ternaire et mémoire hôte, avec conversion à la volée.
ENDIANRd, RsAjuste l’ordre des octets (little/big-endian) pour l’hôte cible.
FROMFRd, RsConvertit un flottant IEEE-754 binaire en entier ternaire à point fixe.
TOFRd, RsConvertit un entier ternaire en flottant IEEE-754 pour l’hôte.
HCALLimmAppel système vers l’hôte binaire (interruption logicielle).
SYNCBarrière de synchronisation hôte↔TPU (cohérence mémoire partagée).
Hôte IoT (MCU 8/32 bits)

Le TPU se branche en coprocesseur sur I2C, SPI ou UART. PACK/UNPACK adaptent les trytes aux trames octet, idéal pour l’inférence embarquée à très basse consommation.

Hôte ARM (Cortex-A/M)

Couplage via AXI/AMBA ou MMIO : l’hôte ARM délègue les noyaux ternaires (TNN, DSP) au TPU par DMA et HCALL.

Hôte x64 (PCIe)

Carte accélératrice sur PCIe avec mémoire partagée cohérente : B2T/T2B et FROMF/TOF assurent l’échange d’entiers et de flottants avec le pilote.

Bibliothèque d’exécution libtern

Une bibliothèque standard fournissant les primitives réutilisables pour programmer chaque unité du TPU sans réécrire l’assembleur à la main.

libtern/core

Types trit/tryte/tint, conversions binaire↔ternaire, E/S de base.

libtern/math

Arithmétique équilibrée, virgule flottante ternaire, fonctions transcendantes.

libtern/tensor

Produits matriciels et convolutions ciblés sur le T-TPU.

libtern/nn

Couches de réseaux ternaires (TNN) et activations pour le T-NPU.

libtern/gfx

Noyaux de rastérisation, shaders et calcul parallèle pour le T-GPU.

libtern/sys

Ordonnancement, interruptions et gestion mémoire du T-CPU.

libtern/io

Clavier, console, périphériques et flux d’entrée/sortie.

libtern/str

Chaînes de trytes, encodage de texte et formatage.

libtern/fs

Système de fichiers ternaire : ouverture, lecture, écriture.

libtern/net

Sockets et protocoles pour échanger des trytes sur le réseau.

libtern/time

Horloges, minuteries et ordonnancement temporel.

libtern/audio

Synthèse, filtres et lecture de signaux audio ternaires.

libtern/crypto

Hachage, chiffrement et aléa exploitant l’entropie ternaire.

libtern/gui

Fenêtres, widgets et gestion d’événements pour l’interface.

libtern/os

Noyau : processus, ordonnancement préemptif et interruptions.

libtern/dsp

Traitement du signal : FFT ternaire, filtres et convolution.

libtern/db

Stockage structuré, index de trytes et requêtes.

libtern/parallel

Fils d’exécution, synchronisation et répartition multi-cœurs.

libtern/compress

Compression et sérialisation compacte de données ternaires.

libtern/rng

Générateurs pseudo-aléatoires et bruit ternaire de qualité.

Le compilateur ternc

Étapes de traduction d’un programme de haut niveau vers du code machine de trits, avec des optimisations spécifiques à la base 3.

  1. 1Analyse lexicale & syntaxique (AST).
  2. 2Vérification de types ternaires (trit/tryte/tint).
  3. 3Représentation intermédiaire et optimisations base 3 (fusion, propagation).
  4. 4Allocation de registres de trits et sélection d’unité (CPU/GPU/TPU/NPU).
  5. 5Émission de TernASM puis assemblage en mots de trits.
ternc → tas → TPU
$ ternc somme.tl -o somme.tbin
  parsing......... ok
  typecheck....... ok (trit/tryte/tint)
  optim base-3.... 2 passes
  emit TernASM.... somme.tasm
  assemble tas.... somme.tbin
$ tpu-run somme.tbin
  15  ·  1TT0 (tern)

Simulateur TernASM interactif

TernASM · Simulateur TernASM interactif

Éditez le programme puis cliquez sur Exécuter. Le simulateur assemble et exécute réellement le code sur une machine ternaire virtuelle.

Exemples:
Registres scalaires
R0
0
0
R1
0
0
R2
0
0
R3
0
0
R4
0
0
R5
0
0
R6
0
0
R7
0
0
R8
0
0
Registres vectoriels (TMX)
V0
[0, 0, 0]
V1
[0, 0, 0]
V2
[0, 0, 0]
V3
[0, 0, 0]
V4
[0, 0, 0]
V5
[0, 0, 0]
V6
[0, 0, 0]
V7
[0, 0, 0]
Sortie
— aucune sortie —
Comparaison

Binaire contre ternaire

Le passage de la base 2 à la base 3 modifie en profondeur les compromis d’ingénierie. Voici les principaux indicateurs techniques, illustrés par des données de recherche et des projections industrielles.

CritèreBinaireTernaire
Information / digit1 bit≈1,58 bit
Digits pour coder Nlog₂(N)log₃(N) ≈ 0,63·log₂(N)
Niveaux de tension23
Représentation signéeComplément à 2Native (équilibré)
Densité d’interconnexionRéférence~37 % de fils en moins
Écosystème logicielMatureÉmergent

Digits nécessaires pour coder une valeur

Moins de digits = interconnexions et registres plus compacts.

Efficacité énergétique relative (revendiquée)

Facteurs annoncés par les acteurs du secteur, base binaire = 1×.

Profil comparatif multi-critères

Score qualitatif 0–100 (estimations de recherche).

Recherches dans le domaine

État de la recherche ternaire

La recherche sur le calcul ternaire est active sur plusieurs fronts : dispositifs physiques, circuits, algorithmes et outils de conception. Voici les grands axes qui structurent le domaine aujourd’hui.

Prototypage physique

Dispositifs & matériaux

Étude des CNTFET (nanotubes de carbone), transistors multi-seuils et memristors pour créer nativement trois niveaux logiques stables et reproductibles ; les crossbars de memristors ouvrent la voie au calcul en mémoire.

Circuits démontrés

Circuits & logique (MVL)

Conception de portes ternaires, cellules standard et additionneurs optimisés dans le cadre de la logique multi-valuée (Multiple-Valued Logic).

Croissance rapide

Algorithmes & IA

Réseaux de neurones ternaires (TNN/BitNet-like) et quantification à trois états : co-conception matériel-logiciel pour l’inférence sobre.

Émergent

Outils & EDA

Développement de chaînes de conception (PDK, synthèse logique, simulateurs) et de compilateurs capables de gérer nativement la base 3.

Jalons scientifiques marquants

  1. 1Formalisation du ternaire équilibré et de la logique multi-valuée (années 1950–60).
  2. 2Émulateur ternaire Ternac sur machine binaire (1973), pour l’étude algorithmique.
  3. 3Démonstrations de portes ternaires en CNTFET à l’échelle nanométrique (années 2010–2020).
  4. 4Essor des réseaux de neurones ternaires pour l’inférence efficace (années 2020).
Acteurs du marché

Qui construit le ternaire ?

Un écosystème encore restreint mais dynamique rassemble industriels et laboratoires autour du calcul ternaire.

Tern

Semi-conducteurs & serveurs

Tern développe le semi-conducteur TALC et la gamme de serveurs centraux Tree. L’entreprise revendique jusqu’à 100× d’économie d’énergie sur certaines charges par rapport aux architectures binaires équivalentes.

TALC — semi-conducteur ternaireTree — ordinateurs centraux (mainframes)
100×économie d’énergie

T3ISC

Circuits intégrés ternaires

T3ISC vise une efficacité énergétique 12× supérieure et une réduction de coût d’un facteur 10, en s’appuyant sur des circuits ternaires optimisés compatibles avec les procédés CMOS existants.

Circuits logiques ternairesIP pour fondeurs
12× / 10×efficacité / coût

Laboratoires CNTFET

Recherche fondamentale

Les laboratoires travaillant sur les CNTFET (Carbon Nanotube Field-Effect Transistors) exploitent l’ajustement fin du seuil de conduction pour créer nativement trois niveaux logiques, une voie prometteuse pour des portes ternaires à faible consommation.

Transistors à nanotubes de carbonePortes ternaires multi-seuils
3 niveauxseuils natifs
Applications

Où le ternaire change la donne

La logique ternaire trouve ses cas d’usage les plus convaincants là où la densité et l’efficacité énergétique priment.

Inférence IA

Les réseaux de neurones ternaires (poids −1/0/+1) s’exécutent nativement : multiplications remplacées par des additions/soustractions, mémoire réduite et débit d’inférence accru pour les LLM sur puce.

LLM quantifiés en ternaire Accélérateurs matriciels denses

Calcul haute performance (HPC)

Le ternaire équilibré simplifie l’arithmétique signée et réduit la longueur des mots, offrant un meilleur rapport calcul/énergie pour la simulation scientifique à grande échelle.

Simulation numérique Cryptographie et théorie des nombres

Edge Computing

Sous forte contrainte thermique et énergétique, la réduction des commutations rend le ternaire attractif pour l’intelligence embarquée à faible latence.

Vision embarquée Traitement du signal local

Internet des objets (IoT)

Pour des capteurs alimentés sur batterie ou par récupération d’énergie, la sobriété du ternaire prolonge l’autonomie et densifie l’information transmise.

Capteurs autonomes Micro-contrôleurs sobres

Réseaux & télécoms

La mémoire adressable par contenu ternaire (TCAM) stocke nativement l’état « indifférent » (0), ce qui accélère le routage, le filtrage de paquets et les tables de correspondance sans logique de masquage additionnelle.

Tables de routage & ACL Classification de flux réseau

Sécurité & cryptographie

L’entropie ternaire fournit 1,585 bit par trit pour la génération d’aléa, et l’arithmétique signée équilibrée simplifie de nombreuses primitives (masquage, résidus, courbes) tout en offrant une surface d’attaque par canaux auxiliaires différente du binaire.

Générateurs d’aléa matériels Primitives post-quantiques

Traitement du signal (DSP)

Le filtre médian natif (MED3) supprime le bruit impulsionnel sans multiplication, et les coefficients ternaires {−1,0,+1} transforment les convolutions en additions/soustractions, idéal pour l’audio, la biométrie et la radio logicielle sobres.

Filtrage audio & biosignaux Radio logicielle embarquée
Profil IoT

Le processeur IoT idéal

Conçu pour l’objet connecté : sobriété énergétique extrême, traitement local intelligent et communication dense. Chaque caractéristique ci-dessous découle directement de la logique à trois états et de l’arithmétique équilibrée.

Ultra-basse consommation

Moins de chiffres pour représenter la même valeur → moins de commutations, moins de fils actifs et une énergie par opération réduite. Le zéro « neutre » ne consomme pas de courant de polarisation, et une mémoire memristive non volatile permet un démarrage instantané sans fuite en veille.

Signalisation 3 états sur un fil

Un seul conducteur transporte −1, 0 et +1 : bus plus étroits, moins de broches et une densité d’information de 1,585 bit par ligne — précieux pour les micro-capteurs à faible nombre de broches.

Récupération d’énergie

La faible enveloppe énergétique permet un fonctionnement sur cellule solaire, thermoélectrique ou vibratoire, avec veille profonde et réveil sur événement pour des capteurs réellement autonomes.

Routage & filtrage natifs (TCAM)

La mémoire adressable par contenu ternaire gère l’état « indifférent » sans masque : classification de paquets, tables de correspondance et règles de passerelle IoT en un seul accès.

Fusion de capteurs anti-bruit

Le filtre médian matériel (MED3) élimine les pics de bruit des capteurs sans multiplication, idéal pour fiabiliser des mesures environnementales bruitées à très faible coût.

IA embarquée ternaire

Les réseaux à poids {−1,0,+1} tournent en additions/soustractions : détection de mots-clés, reconnaissance de gestes ou anomalies directement sur l’objet, sans cloud.

Sécurité matérielle

L’entropie ternaire alimente un générateur d’aléa intégré pour l’identité et le chiffrement des messages, avec une signature par canaux auxiliaires distincte du binaire.

Robustesse thermique

Moins de commutations signifie moins de dissipation : le processeur reste dans son enveloppe thermique même en boîtier scellé sans dissipateur, adapté aux déploiements extérieurs.

Profil de conception proposé : les avantages décrits sont des objectifs de conception, pas des mesures certifiées.

Histoire

Une idée ancienne, un renouveau moderne

Du calcul mécanique du XIXᵉ siècle aux prototypes en nanotubes de carbone, le ternaire traverse l’histoire de l’informatique.

1
1840

Thomas Fowler

L’inventeur anglais Thomas Fowler conçoit une machine à calculer mécanique utilisant le ternaire équilibré, motivé par l’économie de composants qu’offre la base 3.

2
1958

Setun (Union soviétique)

À l’Université d’État de Moscou, l’ordinateur Setun devient la première machine ternaire opérationnelle, reconnue pour sa fiabilité et son économie de matériel.

3
2025–2026

Prototypes modernes

Une nouvelle génération de prototypes voit le jour : semi-conducteurs TALC, circuits T3ISC et portes ternaires en CNTFET démontrent la viabilité du ternaire à l’échelle nanométrique.

4
2027–2030

Adoption industrielle

L’industrie anticipe une adoption progressive du ternaire sur des niches à forte valeur (IA, HPC), sous réserve de la maturation de l’écosystème logiciel et des standards.

Défis & perspectives

Obstacles et solutions concrètes

La percée du ternaire dépend moins de la physique que de l’écosystème. Pour chaque obstacle majeur, des voies de solution étayées par la recherche existent.

Écosystème logiciel

Obstacle

Absence de compilateurs, de systèmes d’exploitation et de chaînes d’outils matures pour la base 3. Les langages et bibliothèques supposent le binaire.

Solutions proposées
  • Backends ternaires pour LLVM/GCC générant du code trit-natif à partir de langages existants.
  • Émulateurs et machines virtuelles ternaires pour développer avant la disponibilité du silicium.
  • Bibliothèques d’arithmétique équilibrée et types de données ouverts (open source).

Standardisation de la fabrication

Obstacle

Pas de procédés ni de kits de conception (PDK) normalisés pour la logique multi-niveaux ; le rendement des portes à trois seuils reste à industrialiser.

Solutions proposées
  • Concevoir des portes ternaires sur CMOS existant (multi-Vt, tensions intermédiaires) pour réutiliser les fonderies.
  • Développer des PDK ternaires et des cellules standard partagés entre acteurs.
  • Mûrir les CNTFET pour des seuils nets et reproductibles à grande échelle.
  • Intégrer des memristors multi-niveaux dans les couches métalliques (BEOL) au-dessus du CMOS, sans nouvelle fonderie.

Interopérabilité avec le binaire

Obstacle

Le monde numérique est binaire : mémoires, bus, protocoles et données existantes doivent coexister avec le ternaire.

Solutions proposées
  • Convertisseurs binaire↔ternaire matériels efficaces aux frontières du système.
  • Architectures hybrides : cœurs ternaires en accélérateurs pilotés par un hôte binaire.
  • Formats d’échange et ABI normalisés pour la sérialisation trit/octet.

Adoption économique

Obstacle

Coûts de R&D élevés, effet d’inertie du binaire et absence de marché de masse freinent l’investissement.

Solutions proposées
  • Cibler d’abord des niches à forte valeur (inférence IA, HPC) où le gain d’énergie justifie le coût.
  • Modèle « accélérateur » réduisant le ticket d’entrée par rapport à un CPU ternaire complet.
  • Consortiums public-privé pour partager risques et standards (à l’image des débuts du RISC-V).
Technologies ternaires

Tableau comparatif des technologies

Plusieurs voies matérielles concourent pour réaliser des portes ternaires. Chacune arbitre différemment maturité, consommation et compatibilité industrielle.

TechnologiePrincipeMaturitéEfficacité énergétiqueCompatibilité CMOSActeur type
TALCSemi-conducteur ternaire dédiéPrototype avancéTrès élevée (jusqu’à 100×)PartielleTern
CNTFETNanotubes de carbone multi-seuilsRechercheÉlevéeFaible (nouveau matériau)Laboratoires CNTFET
CMOS multi-VtSeuils intermédiaires sur CMOS standardCircuits démontrésBonne (≈12×)ÉlevéeT3ISC
MemristorsRésistances multi-états non volatiles (1 trit/dispositif, calcul en mémoire)RecherchePotentiellement très élevéeIntégrable (back-end)Laboratoires académiques
Memristors ternaires

Le memristor : la brique idéale du ternaire

Le memristor — quatrième composant passif fondamental postulé par Leon Chua en 1971 et réalisé en 2008 — est une résistance dont la valeur dépend de l’histoire du courant qui l’a traversé. Non volatile, il conserve son état sans alimentation et peut stabiliser plusieurs niveaux de résistance. En n’en retenant que trois, il stocke exactement un trit par dispositif, ce qui en fait le support matériel le plus naturel de la logique ternaire.

Trois états résistifs natifs

Un memristor multi-niveaux fixe trois résistances stables (basse, moyenne, haute) qui encodent directement −1, 0 et +1 — un trit dans un seul composant, sans cellule à plusieurs transistors.

Mémoire non volatile

L’état persiste sans courant : démarrage instantané (instant-on), veille profonde à fuite quasi nulle et registres, poids ou tables de trits conservés entre deux réveils.

Calcul en mémoire (in-memory)

Stockage et logique dans le même dispositif : le calcul s’exécute là où résident les données, supprimant le va-et-vient du goulet de von Neumann et l’énergie de déplacement des trits.

Réseaux crossbar

Organisés en matrice crossbar, les memristors calculent un produit matrice-vecteur en un seul pas grâce aux lois d’Ohm et de Kirchhoff — les poids ternaires {−1,0,+1} se projettent parfaitement sur trois conductances.

Accélération des réseaux ternaires

Substrat idéal des réseaux de neurones ternaires : les poids sont stockés comme conductances et la multiplication-accumulation s’effectue en analogique, sur place, pour une inférence dense et sobre.

Intégration CMOS back-end

Fabriqués dans les couches métalliques au-dessus du CMOS (BEOL), les memristors empilent une mémoire-logique ternaire dense sur une puce binaire standard, sans nouvelle fonderie.

Plasticité synaptique

La conductance d’un memristor évolue avec les impulsions reçues, imitant une synapse. Cette plasticité permet un apprentissage local, sur la puce, particulièrement adapté au calcul neuromorphique ternaire.

Commutation rapide et sobre

Le basculement entre états résistifs s’opère en quelques nanosecondes pour une énergie de l’ordre du picojoule, sans partie mobile ni charge de grille — un atout pour des trits écrits vite et à bas coût énergétique.

Densité extrême & empilement 3D

Une cellule crossbar occupe théoriquement 4F² et les couches peuvent s’empiler en 3D. À un trit par point, la densité d’information par millimètre carré dépasse celle d’une mémoire binaire équivalente.

Crossbar memristif interactif

Un crossbar calcule un produit matrice-vecteur en un seul pas : chaque memristor porte un poids ternaire (conductance) et la loi de Kirchhoff somme les courants de colonne. Cliquez sur les cellules et les entrées pour modifier les trits et observer la sortie.

Entrée x
Poids (memristors)
+2
-1
+2
Sortie y = W · x

Astuce : un poids 0 éteint la contribution ; +1 et −1 ajoutent ou retranchent le courant d’entrée.

Familles de dispositifs memristifs

Plusieurs technologies non volatiles peuvent stabiliser trois niveaux et servir de support au ternaire. Chacune privilégie un compromis différent entre vitesse, endurance et facilité d’intégration.

FamilleMécanismeAtout pour le ternaire
OxRAM / RRAMFilament conducteur dans un oxyde métalliqueNiveaux analogiques réglables, intégration BEOL simple
PCMChangement de phase amorphe ↔ cristallinÉtats intermédiaires stables, bonne rétention
CBRAMPont métallique électrochimique (ions Ag/Cu)Très faible énergie de commutation
FeFETPolarisation ferroélectrique de la grilleLecture non destructive, compatible logique
Spintronique (MRAM)Orientation magnétique d’une jonction tunnelEndurance quasi illimitée, commutation rapide

Concept de conception : la variabilité, l’endurance et la dispersion des états restent des sujets de recherche ouverts ; les avantages décrits sont des objectifs, non des mesures certifiées.

Références

Bibliographie & sources

Une sélection de travaux fondateurs et récents sur le calcul ternaire, la logique multivaluée, les memristors et le calcul en mémoire, ainsi que les réseaux de neurones à poids ternaires.

1

The Art of Computer Programming, Vol. 2 : Seminumerical Algorithms (§ 4.1, numération équilibrée base 3)

D. E. Knuth · Addison-Wesley · 1997

2

Setun : ordinateur expérimental à ternaire équilibré, Université d’État de Moscou

N. P. Brusentsov et al. · MSU · 1958

3

Ternary Computers: The Setun and the Setun 70

N. P. Brusentsov, J. Ramil Alvarez · IFIP AICT, Springer · 2011

4

Machine à calculer mécanique en ternaire équilibré

T. Fowler · Great Torrington, UK · 1840

5

TERNAC : un émulateur d’ordinateur ternaire sur machine binaire

G. Frieder et al. · SUNY / IEEE · 1973

6

Multiple-Valued Logic — son statut et son avenir

S. L. Hurst · IEEE Trans. Computers · 1984

7

Portes logiques ternaires CNTFET à base de nanotubes de carbone

S. Lin, Y.-B. Kim, F. Lombardi · IEEE Trans. Nanotechnology · 2011

8

Memristor — le chaînon manquant des composants passifs

L. O. Chua · IEEE Trans. Circuit Theory · 1971

9

La découverte du memristor manquant (HP Labs)

D. B. Strukov et al. · Nature · 2008

10

Calcul en mémoire sur crossbar de memristors, entièrement matériel

P. Yao et al. · Nature · 2020

11

Ternary Weight Networks : réseaux de neurones à poids {−1,0,+1}

F. Li et al. · arXiv:1605.04711 · 2016

12

Trained Ternary Quantization

C. Zhu et al. · ICLR · 2017

13

The Era of 1-bit LLMs : BitNet b1.58 (poids ternaires)

S. Ma et al. · arXiv:2402.17764 · 2024