C’est le niveau le plus bas du livre. Tout ce qui se trouve au-dessus — portes, registres, instructions, programmes — est une manière d’organiser une seule activité physique : déplacer de petites quantités de charge électrique d’un endroit à un autre, et repérer où elles se trouvent. Ce chapitre présente les grandeurs de base (charge, courant, tension, résistance), explique pourquoi certains matériaux conduisent et d’autres non, et se termine par un calcul qui explique une part surprenante de l’architecture des ordinateurs : pourquoi un millimètre de fil sur une puce est plus lent qu’une porte.
Les chiffres de ce niveau sont calculés, pas recopiés. Chaque calcul est donné sous forme de quelques lignes de Python avec son résultat, pour que vous puissiez le vérifier ou changer les hypothèses.
Charge et courant
La matière est faite d’atomes : un petit noyau positif entouré d’électrons, qui portent chacun une charge négative d’exactement e = 1,602176634 × 10⁻¹⁹ coulomb (C). Depuis 2019, cette valeur est exacte par définition : les unités du SI sont construites dessus. Les charges de même signe se repoussent, les charges opposées s’attirent, et la charge n’est jamais créée ni détruite, seulement déplacée.
Le courant est le débit de charge qui passe en un point, mesuré en ampères (A) : un ampère vaut un coulomb par seconde. Comme chaque électron porte très peu de charge, il en faut énormément :
e = 1.602176634e-19 # C, exact
print(1 / e) # 6.241509074460763e+18 electrons per second in 1 A
Un courant de 1 A représente environ 6,24 × 10¹⁸ électrons par seconde. Un accident historique rend la chose un peu déroutante : le sens conventionnel du courant va du + vers le −, alors que dans un métal les porteurs sont des électrons, qui se déplacent dans l’autre sens. Les schémas utilisent le sens conventionnel ; la physique, elle, s’en moque.
Tension, résistance et loi d’Ohm
Les charges se déplacent quand quelque chose les pousse. La tension (ou différence de potentiel), mesurée en volts (V), est l’énergie que chaque coulomb gagne ou perd entre deux points : 1 V signifie 1 joule par coulomb. Une pile ou une alimentation maintient une tension entre ses bornes ; branchez un fil, et la charge circule de l’une à l’autre.
L’intensité du courant dépend de la résistance du chemin, en ohms (Ω). Pour la plupart des conducteurs à température fixe, le courant est proportionnel à la tension. C’est la loi d’Ohm :
V = I × R
Doublez la tension aux bornes d’une résistance, et le courant double. L’énergie que perdent les charges en chemin devient de la chaleur, à un rythme donné par la puissance P = V × I = I²R, en watts (W, joules par seconde). Chaque watt consommé par un processeur finit en chaleur dans ses résistances — le sujet du dernier chapitre de ce niveau.
La résistance dépend de la forme du conducteur et du matériau. Un fil de longueur L et de section A a une résistance
R = ρ × L / A
où la résistivité ρ (rho, en Ω·m) est une propriété du seul matériau. Plus le fil est long, plus il résiste ; plus il est épais, moins il résiste.
| Matériau | Résistivité à température ambiante (Ω·m) |
|---|---|
| argent | 1,59 × 10⁻⁸ |
| cuivre | 1,68 × 10⁻⁸ |
| or | 2,44 × 10⁻⁸ |
| aluminium | 2,65 × 10⁻⁸ |
| tungstène | 5,6 × 10⁻⁸ |
| silicium pur | environ 3 × 10³ (calculé plus bas) |
| verre | 10¹¹ à 10¹⁵ |
| silice fondue (SiO₂) | environ 10¹⁷ |
L’écart est gigantesque : 25 ordres de grandeur entre le cuivre et la silice. C’est l’une des plus grandes plages de toutes les grandeurs physiques, et les ordinateurs dépendent de ses deux extrémités. Une puce, ce sont des fils de cuivre séparés par du dioxyde de silicium et des isolants voisins, à quelques dizaines de nanomètres les uns des autres.
Un mètre de fil de cuivre ordinaire de 1 mm² a une résistance R = 1,68 × 10⁻⁸ × 1 / 10⁻⁶ = 0,0168 Ω : négligeable pour une installation domestique. On va voir que les fils d’une puce racontent une tout autre histoire.
Des signaux rapides, des électrons lents
À quelle vitesse les électrons se déplacent-ils ? Le cuivre a environ un électron libre par atome. D’après sa masse volumique (8,96 g/cm³) et sa masse atomique (63,55 g/mol) :
NA = 6.02214076e23
n = 8.96 / 63.546 * NA * 1e6 # free electrons per m³
print(n) # 8.49e+28
v = 1 / (n * e * 1e-6) # drift speed for 1 A in 1 mm²
print(v * 1e3, "mm/s") # 0.0735 mm/s
Avec 1 A dans un fil de 1 mm², les électrons dérivent à environ 0,07 mm par seconde : il leur faudrait près de quatre heures pour parcourir un mètre. Pourtant, la lampe s’allume dès qu’on actionne l’interrupteur. C’est que le fil est déjà plein d’électrons. Pousser à un bout les pousse tous à la fois, comme l’eau dans un tuyau plein, et cette poussée — le champ électromagnétique — se propage à une fraction importante de la vitesse de la lumière. Les signaux sont rapides ; les charges qui les portent sont lentes. Le chapitre sur les signaux revient sur la vitesse de cette poussée.
Le mouvement propre des électrons est en réalité rapide mais désordonné : ils s’agitent à plus d’un million de mètres par seconde, en heurtant les atomes du réseau cristallin, qui vibrent. La tension appliquée n’ajoute par-dessus qu’une infime dérive moyenne. Ces collisions sont précisément ce qu’est la résistance, et c’est pourquoi la résistance d’un métal augmente avec la température : des atomes plus chauds vibrent davantage. Celle du cuivre augmente d’environ 0,4 % par degré Celsius.
Pourquoi certains matériaux conduisent : les bandes
Pourquoi le cuivre conduit-il et la silice non, alors que les deux regorgent d’électrons ? La réponse vient de la mécanique quantique. Dans un atome isolé, les électrons ne peuvent avoir que certaines énergies, les niveaux d’énergie de l’atome. Dans un solide, les niveaux de milliards d’atomes voisins se fondent en bandes continues d’énergies permises, séparées par des bandes interdites (band gaps) : des plages d’énergie qu’aucun électron ne peut avoir.
À basse température, les électrons occupent d’abord les états les plus bas. Qu’un matériau conduise ou non dépend de l’endroit où ce remplissage s’arrête :
- Dans un métal, la bande occupée la plus haute n’est que partiellement remplie. Juste au-dessus des électrons les plus énergétiques, il y a des états vides presque à la même énergie : la moindre poussée d’une tension peut y faire passer des électrons, qui sont donc libres de porter un courant.
- Dans un isolant, les électrons remplissent exactement une bande, la bande de valence, et la bande suivante, la bande de conduction, est vide et loin au-dessus. Une bande pleine ne porte aucun courant net : chaque électron qui va dans un sens est compensé par un autre qui va dans l’autre, et il n’y a aucun état libre où se décaler. Pour conduire, un électron doit franchir toute la bande interdite, qui vaut environ 9 électronvolts (eV) dans SiO₂. Un électronvolt est l’énergie que gagne un électron à travers 1 V : 1,602 × 10⁻¹⁹ J.
- Un semi-conducteur est un isolant à petite bande interdite : 1,12 eV pour le silicium à température ambiante, 0,66 eV pour le germanium.
La seule énergie disponible pour faire franchir la bande interdite aux électrons, c’est la chaleur. À la température T, l’énergie thermique typique vaut kT, où k est la constante de Boltzmann :
k = 1.380649e-23 # J/K, exact
kT = k * 300 # room temperature, 300 K
print(kT, kT / e) # 4.14e-21 J = 0.02585 eV (25.9 meV)
À 300 K, kT vaut 25,9 meV — environ un quarantième d’électronvolt. La fraction d’électrons excités thermiquement à travers une bande interdite Eg varie grosso modo comme exp(−Eg / 2kT), et cette exponentielle est féroce :
import math
for name, Eg in [("Ge", 0.66), ("Si", 1.12), ("diamond", 5.5), ("SiO2", 9.0)]:
print(name, math.exp(-Eg / (2 * 0.025852)))
# Ge 2.9e-06 Si 3.9e-10 diamond 6.3e-47 SiO2 2.5e-76
Passer des 1,12 eV du silicium aux 9 eV du dioxyde de silicium change le facteur de 66 ordres de grandeur. C’est pourquoi la silice est l’un des meilleurs isolants connus, et pourquoi le silicium, avec sa petite bande interdite, est intéressant : un peu de chaleur, de lumière ou quelques atomes d’impuretés le rendent conducteur, dans des proportions qu’on sait contrôler. Le chapitre suivant porte précisément sur ce contrôle. Pour le silicium pur, les porteurs excités thermiquement donnent la résistivité du tableau ci-dessus :
ni = 1e10 # intrinsic carriers per cm³ in Si at 300 K
mu_n, mu_p = 1400, 450 # electron and hole mobilities, cm²/(V·s)
rho = 1 / (e * ni * (mu_n + mu_p))
print(rho, "ohm·cm") # 3.4e+05 ohm·cm = 3.4e+03 ohm·m
C’est environ 10¹¹ fois moins bien que le cuivre, et environ 10¹³ fois mieux que la silice.
La capacité : là où vivent les bits
L’autre composant clé est le condensateur : deux conducteurs séparés par un isolant. Appliquez-lui une tension V, et une charge +Q s’accumule d’un côté, −Q de l’autre, en proportion :
Q = C × V
La constante C est la capacité, en farads (F). Pour deux plaques parallèles de surface A distantes de d, C = εA/d, où ε est la permittivité de l’isolant : ε₀ = 8,854 × 10⁻¹² F/m pour le vide, environ 3,9 fois plus pour SiO₂. De grandes plaques rapprochées font un gros condensateur. Ceux d’une puce sont minuscules, et se mesurent en femtofarads (1 fF = 10⁻¹⁵ F).
La capacité est partout dans un ordinateur, voulue ou non :
- chaque entrée de porte est un condensateur : la grille du transistor est un conducteur posé sur un isolant très mince au-dessus du canal, comme le montre le chapitre sur le MOSFET ;
- chaque fil forme un condensateur avec ses voisins et avec les couches au-dessus et au-dessous ;
- un bit de DRAM est littéralement un condensateur chargé ou non, comme le calcule le chapitre sur le stockage d’un bit.
Faire passer une valeur logique de 0 à 1 revient donc à charger un condensateur à travers une certaine résistance, et la ramener à 0 à le décharger. Cela prend du temps, et cela coûte de l’énergie. Charger une capacité C à la tension V depuis une alimentation stocke ½CV² dans le condensateur et — quelle que soit la résistance — dissipe ½CV² de plus en chaleur au passage. La décharge brûle la moitié stockée. C’est l’origine de la formule de puissance dynamique du dernier chapitre.
La constante de temps RC
Chargez un condensateur C à travers une résistance R : la tension ne saute pas, elle s’approche de sa valeur finale de façon exponentielle, avec une constante de temps τ = RC (des ohms fois des farads donnent des secondes). Au bout d’un τ, la tension a parcouru 63 % du chemin ; au bout d’environ 0,69 τ, la moitié.
Un fil sur une puce n’est pas une simple résistance suivie d’un simple condensateur : sa résistance et sa capacité sont réparties sur toute sa longueur. Pour une telle ligne RC distribuée, le délai pour atteindre 50 % à l’autre extrémité vaut environ 0,38 RC, où R et C sont les totaux du fil entier. Et voici le point important : R et C augmentent tous deux avec la longueur L, donc le délai croît comme L².
Exemple chiffré : un millimètre de fil sur une puce
Prenons un fil de cuivre fin des couches métalliques inférieures d’une puce moderne : 50 nm de large, 100 nm de haut, 1 mm de long. Pour la capacité, utilisons l’ordre de grandeur courant pour les fils sur puce, environ 0,2 fF par micromètre de longueur.
rho = 1.68e-8 # copper, ohm·m (bulk value: optimistic)
def wire(L, W=50e-9, H=100e-9, c_per_m=0.2e-15 / 1e-6):
R = rho * L / (W * H)
C = c_per_m * L
return R, C, 0.38 * R * C # 50% delay of a distributed RC line
R, C, t = wire(1e-3)
print(R, C, t) # 3360 ohm, 2e-13 F (200 fF), 2.55e-10 s = 255 ps
| Longueur | R | C | Délai RC |
|---|---|---|---|
| 20 µm | 67 Ω | 4 fF | 0,1 ps |
| 0,1 mm | 336 Ω | 20 fF | 2,6 ps |
| 1 mm | 3,4 kΩ | 200 fF | 255 ps |
| 2 mm | 6,7 kΩ | 400 fF | 1,0 ns |
| 10 mm | 34 kΩ | 2 pF | 25,5 ns |
Un millimètre de ce fil a 3 360 Ω de résistance — 200 000 fois plus qu’un mètre de câble domestique — et un délai d’environ 255 ps. À 4 GHz, un cycle d’horloge dure 250 ps. Deux fois plus long, quatre fois plus lent : un fil continu de 10 mm traversant une grande puce mettrait 25 ns, une centaine de cycles d’horloge.
Comparez avec la vitesse de la lumière. Dans SiO₂ (permittivité relative 3,9), la lumière va à c/√3,9, environ la moitié de sa vitesse dans le vide, et parcourt 1 mm en 6,6 ps. Le délai RC est presque 40 fois plus long. Sur une puce, les fils sont limités par leur résistance et leur capacité, pas par la vitesse de la lumière.
Et le calcul est optimiste. À des largeurs de quelques dizaines de nanomètres, les électrons rebondissent sur les surfaces du fil et sur les joints de grains, et une fine couche barrière, qui empêche le cuivre de diffuser dans le silicium, occupe une partie de la section : la résistance réelle est nettement plus élevée que ne le prédit la valeur du cuivre massif.
Tanenbaum fait une remarque voisine à propos des générateurs d’impulsions : un trajet de 20 microns n’ajoute qu’environ 0,0001 ns, parce que le signal se propage « à la vitesse de la lumière ». La conclusion tient — le tableau donne environ 0,1 ps pour 20 µm de ce fil, tout aussi négligeable —, mais pas la raison. Les fils courts d’une puce sont rapides parce que L² est minuscule, pas parce que les signaux y vont à la vitesse de la lumière ; à un millimètre, le délai RC est déjà 40 fois plus lent que la lumière.
Ce que font les concepteurs de puces
La loi en L² façonne la manière dont les puces sont construites :
- Un empilement de couches de câblage. Une puce moderne a plus d’une douzaine de couches métalliques. Les plus basses sont fines et denses, pour les connexions locales courtes. Les plus hautes sont épaisses et larges — de résistance bien plus faible — et transportent les signaux à longue distance, l’horloge et l’alimentation.
- Des répéteurs. Un long fil est découpé en tronçons séparés par un inverseur (un tampon, buffer). Dix tronçons de 1 mm coûtent 10 × 255 ps plus dix petits délais de tampon, au lieu de 25,5 ns pour le fil entier : le délai redevient linéaire en fonction de la longueur.
- De meilleurs matériaux. IBM a remplacé les fils d’aluminium par du cuivre en 1997, réduisant la résistivité de plus d’un tiers. Des isolants de permittivité inférieure à celle de SiO₂ (diélectriques low-k, parfois poreux) réduisent C.
- L’architecture. Puisqu’un signal ne peut pas traverser la puce en un cycle, les conceptions gardent les communications locales. Le pipeline, le découpage des grands caches en bancs et les puces multicœurs qui communiquent par des réseaux sur puce sont tous, en partie, des réponses au délai des fils.
Réduire les dimensions aggrave le problème au lieu de le résoudre. Divisez la largeur et la hauteur d’un fil par un facteur s : sa résistance par unité de longueur est multipliée par s², et sa capacité par unité de longueur reste à peu près la même. Les transistors gagnent en vitesse à chaque génération ; les longs fils, non. C’est pourquoi le chapitre sur le MOSFET dira que les transistors ne sont plus la seule chose qui compte.
À retenir
- La charge vient par unités de e = 1,602 × 10⁻¹⁹ C ; le courant est une charge par seconde (1 A ≈ 6,24 × 10¹⁸ électrons/s) ; la tension est une énergie par charge. Loi d’Ohm : V = RI, et puissance P = VI.
- La résistivité couvre 25 ordres de grandeur, du cuivre (1,68 × 10⁻⁸ Ω·m) à la silice (environ 10¹⁷ Ω·m). Les puces utilisent les deux extrémités.
- Dans un fil, les signaux vont vite mais les électrons dérivent lentement — environ 0,07 mm/s pour 1 A dans 1 mm² de cuivre.
- Dans la théorie des bandes, les métaux ont une bande partiellement remplie ; isolants et semi-conducteurs ont une bande interdite (9 eV pour SiO₂, 1,12 eV pour le silicium) que la chaleur (kT = 25,9 meV à 300 K) ne franchit que rarement.
- Chaque entrée de porte et chaque fil est un condensateur. Faire basculer un bit, c’est le charger ou le décharger, ce qui coûte ½CV² de chaleur à chaque transition.
- Les fils sur puce sont limités par RC : le délai croît comme le carré de la longueur. Un fil de cuivre de 1 mm et de 50 × 100 nm met environ 255 ps — un cycle d’horloge entier — là où la lumière mettrait 6,6 ps. Les puces y répondent par des couches supérieures épaisses, des répéteurs, le cuivre, des isolants low-k et des architectures qui gardent les signaux locaux.