/usr/share/doc/HOWTO/fr-html/Alpha-HOWTO.html is in doc-linux-fr-html 2013.01-3ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for HTML5 for Linux version 5.2.0">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.72">
<title>Brève introduction aux systèmes et processeurs Alpha</title>
</head>
<body>
<h1>Brève introduction aux systèmes et processeurs Alpha</h1>
<h2>Neal Crook, Digital Equipment (Publication: <a href=
"mailto:davidm@azstarnet.com">David Mosberger</a>) (Adaptation
Française par Christophe Vallat (miodrag@mygale.org))</h2>
V0.11, 6 Juin 1997
<hr>
<em>Ce document est un rapide aperçu des processeurs et systèmes
Alpha existants. Il y a un peu de parti pris, à cause de mon
expérience personnelle. Bien que je sois un employé de Digital
Equipment Corporation, il ne s'agit pas d'un d'un document officiel
de Digital et les opinions exprimées sont les miennes, pas celles
de Digital.</em>
<hr>
<h2><a name="s1">1. Qu'est-ce que Alpha ?</a></h2>
<p>"Alpha" est le nom donné à l'architecture RISC 64 bits de
Digital. Le projet Alpha commença à Digital à la mi-1989, dans le
but de fournir une voie de migration haute-performance pour les
clients VAX. Il ne s'agit pas de la première architecture RISC
produite par Digital, mais ce fut la première à être mise sur le
marché. Quand Digital a annoncé Alpha en mars 1992, elle a pris la
décision d'entrer sur le marché des composants électroniques en
vendant des microprocesseurs Alpha.</p>
<p>Alpha est parfois désigné par Alpha AXP, pour de vieilles et
obscures raisons qu'il est inutile de préciser. Il suffit de dire
que c'est exactement la même chose.</p>
<h2><a name="s2">2. Qu'est-ce que Digital Semiconductor ?</a></h2>
<p><a href="http://www.digital.com/info/semiconductor/">Digital
Semiconductor</a> (DS) est la section commerciale de Digital
Equipment Corporation (Digital - nous n'aimons pas le sigle DEC)
qui vend les composants électroniques. Parmi les produits de
Digital figurent les processeurs, les chipsets associés, les
pontages PCI-PCI et les composants PCI pour la communication et le
multimédia.</p>
<h2><a name="s3">3. Processeurs Alpha</a></h2>
<p>Il y a actuellement 2 générations de base de processeur
implémentant l'architecture Alpha :</p>
<ul>
<li>EV4</li>
<li>EV5</li>
</ul>
<p>Les avis différent quant au sens de "EV" (note : la vraie
réponse est bien entendu "Electro Vlassic" <a href=
"#ref1">[1]</a>), mais le chiffre représente la première génération
de technologie CMOS de Digital avec laquelle le processeur a été
conçu. Ainsi, EV4 a été initialement conçue en CMOS4. Au fil du
temps, un processeur tend a trouver une nouvelle jeunesse en étant
optiquement rétrécie dans la nouvelle génération de CMOS. EV45 est
donc la base EV4 conçue en CMOS5. Il y a une grande différence
entre rétrécir une conception pour une technologie particulière et
la reconcevoir pour cette technologie (mais je ne veux pas entrer
dans les détails). Il y a encore quelques variantes : la CMOS4S
(rétrécissement optique de la CMOS4) et une CMOS5L.</p>
<p>Les vrais technophiles seront curieux de savoir que CMOS4 est
une gravure en 0,75 micron, CMOS5 est une gravure en 0,5 micron, et
CMOS6 est une gravure en 0,35 micron.</p>
<p>Pour faire correspondre ces bases de processeur aux
<em>puces</em> nous avons:</p>
<dl>
<dt><b>21064-150,166</b></dt>
<dd>
<p>EV4 (initialement), EV4S (maintenant)</p>
</dd>
<dt><b>21064-200</b></dt>
<dd>
<p>EV4S</p>
</dd>
<dt><b>21064A-233,275,300</b></dt>
<dd>
<p>EV45</p>
</dd>
<dt><b>21066</b></dt>
<dd>
<p>LCA4S (base EV4, avec coprocesseur EV4)</p>
</dd>
<dt><b>21066A-233</b></dt>
<dd>
<p>LCA45 (base EV4, mais avec coprocesseur EV45)</p>
</dd>
<dt><b>21164-233,300,333</b></dt>
<dd>
<p>EV5</p>
</dd>
<dt><b>21164A-417</b></dt>
<dd>
<p>EV56</p>
</dd>
<dt><b>21264</b></dt>
<dd>
<p><a href=
"http://www.mdronline.com/report/articles/21264/21264.html">EV6</a></p>
</dd>
</dl>
<p>La base EV4 est un noyau double-écoulement (il peut traiter 2
instructions processeur par cycle d'horloge) super-pipeliné avec
une unité de calcul entier, une unité de calcul flottant et
prédiction de branchement. Il a des bus de données internes de 64
bits et des caches de 8Ko étroitement couplés, un jeu de chaque
pour les instructions, et pour les données. Les caches sont en
écriture immédiate ("write-through").</p>
<p>La base EV45 a quelques améliorations par rapport à la base EV4
: l'unité de calcul flottant est légérement améliorée, et les
caches sont de 16Ko. (Note : Neal Crook a indiqué dans un courrier
séparé que les modifications de l'unité de calcul flottant
améliorent les performances de la division. La FPU de l'EV4 prend
34 cycles pour une division en simple précision et 63 cycles pour
une division en double-précision (quelles que soient les données).
En comparaison, le FPU de l'EV45 prend généralement 19 cycles (34
au pire) pour la simple précision et 29 cycles (63 au pire) pour la
double-précision (en fonction des données).)</p>
<p>La base EV5 est un noyau quadruple-écoulement, également
super-pipeliné etc etc. Il a des caches de 8 Ko étroitement
couplés, un de pour les instructions et un pour les données. Ces
caches sont en écriture immédiate. Il dispose également d'un cache
de deuxième niveau de 96 Ko sur le processeur (le Scache) qui est
associatif 3-morceaux et en écriture différée ("write back"). Le
gain de performance de l'EV4 à l'EV5 est supérieur au seul gain
généré par l'augmentation de la fréquence. En plus des caches plus
grands et du quadruple-écoulement, il y a aussi des améliorations
de sa microarchitecture pour réduire les temps d'attente
producteur/consommateur dans certaines voies.</p>
<p>La base EV56 est fondamentalement la même microarchitecture que
l'EV5, mais ajoute quelques nouvelles instructions pour la lecture
et l'écriture sur 8 et 16 bits (cf. section <a href=
"#byte%20ld/st">Les octets et leur multiples</a>). Elles sont
principalement destinées aux pilotes de périphériques. La base EV56
est réalisée en CMOS6, en 2,0 Volts.</p>
<p>Le 21064 a été annoncé en mars 1992. Il utilise la base EV4,
avec un bus de 128 bits. L'interface du bus supporte une connexion
'facile' d'un cache externe de deuxième niveau, avec une taille de
bloc de 256 bits (2 fois la taille du bus). La vitesse de ce Bcache
est entièrement configurable logiciellement. Le 21064 peut aussi
être configuré pour utiliser un bus externe de 64 bits (mais je
crois qu'aucun système n'utilise ce mode). Le 21064 n'impose aucune
contrainte sur le Bcache, mais il est généralement configuré en
écriture différée. Le 21064 contient un système permettant à du
matériel séparé de maintenir la cohérence entre le Bcache et le
cache interne, mais c'est complexe.</p>
<p>Le 21066 utilise la base EV4 et intégre un contrôleur de mémoire
et un pontage de bus PCI. Pour économiser des broches, le
contrôleur de mémoire a un bus de 64 bits (mais les caches internes
ont une taille de bloc de 256 bits, comme le 21064, donc une
lecture de bloc prend 4 cycles du bus). Le contrôleur de mémoire
supporte le BCache et la DRAM externe. La vitesse du Bcache et de
la DRAM est entièrement configurable logiciellement, et peut être
contrôlé à la vitesse du processeur. La décomposition en 4 accès
pour remplir un bloc de cacte n'est pas si mauvais qu'on peut le
penser parce que l'accès à la DRAM est fait en mode page.
Malheureusement, le contrôleur de mémoire ne supporte ni les types
de DRAM ésotérique (SDRAM, EDO ou BEDO), ni les RAMs de cache
synchrone. L'interface du bus PCI est entièrement compatible avec
PCI 2.0 et tourne jusqu'à 33 MHz.</p>
<p>Le 21164 a un bus de données de 128 bits et supporte les
lectures partielles, avec jusqu'à deux lectures en cours en même
temps (ce qui permet une utilisation à 100% du bus de données dans
les meilleures conditions de rêve, i.e. il est possible
théoriquement de transférer 128 bits de données à chaque cycle du
bus). Le 21164 supporte une connexion facile d'un cache de
troisième niveau (Bcache) et a tout le système pour permettre à du
matériel externe de maintenir la cohérence de tous les caches. De
cette façon, les conceptions de multiprocesseur symétrique sont
'faciles'.</p>
<p>Le 21164A a été annoncé en octobre 1995. Il utilise la base
EV56. Son brochage est compatible avec celui du 21164, mais
nécessite des lignes d'alimentation séparées ; toutes les broches
qui étaient +3,3 Volts sur le 21164 ont été divisées en deux
groupes ; un groupe fournit 2,0 Volts au coeur du processeur,
l'autre fournissant 3,3 Volts aux unités d'entrées/sorties.
Contrairement aux anciennes conceptions, les broches du 21164A
n'acceptent pas 5 Volts. Le résultat de ce changement est que les
systèmes 21164 ne peuvent en général pas être mis à jour en 21164A
(bien qu'il soit relativement simple de concevoir un système 21164A
qui puisse aussi accepter un 21164). Le 21164A dispose également de
quelques nouvelles broches pour supporter les lectures et écritures
sur 8 et 16 bits. Il améliore également le support du 21164 pour
les SRAMs synchrones qui composent le Bcache.</p>
<h2><a name="s4">4. Performances comparées du 21064 et du
21066</a></h2>
<p>Le 21064 et le 21066 ont la même base (EV4). Si le même
programme tourne sur un 21064 et un 21066, à la même fréquence,
alors la différence de performance provient uniquement de la bande
passante entre le Bcache et la mémoire. Du code qui tombe
principalement dans les caches <em>internes</em> tournera aussi
rapidement. Il y a 2 principaux tueurs de performances :</p>
<ol>
<li>Du code qui écrit énormément. Malgré les buffers en écriture du
21064 et du 21066 pour économiser certains délais, du code qui
écrit énormément sera étranglé par la bande passante en écriture du
bus système. Cela est du au fait que les cache du processeur sont
en écriture immédiate.</li>
<li>Du code qui veut traiter les flottants en tant qu'entiers.
L'architecture Alpha ne permet pas des transferts entre registres
entiers et registres flottants. Une telle conversion doit être
faite en mémoire (Et du coup, puisque les caches du processeur sont
en écriture immédiate, via le Bcache). (Note : il semble que l'EV4
et l'EV45 peuvent effectuer la conversion via le premier cache de
données (Dcache), à partir du moment ou la mémoire est cachée. Dans
ce cas, l'écriture faite par la séquence de conversion mettra à
jour le Dcache et la lecture qui va suivre sera, dans certaines
circonstances, capable de lire la valeur du Dcache, évitant un
coûteux transfert depuis le Bcache. En particulier, il semble
meilleur d'exécuter les instructions stq/ldt ou stt/ldq dos à dos,
ce qui est plutôt contraire à l'intuition.)</li>
</ol>
<p>Si vous effectuez la même comparaison entre un 21064A et un
21066A, il y a un facteur supplémentaire du aux différentes tailles
des Icache et Dcache entre les deux processeurs.</p>
<p>Maintenant, le 21164 résoud ces deux problèmes : il atteint des
<em>bien</em> meilleures bandes passantes du bus système (malgré le
même nombre de broches de signal - oui, je <em>sais</em> que c'est
à peu près deux fois plus qu'un 21064, mais les supplémentaires
sont l'alimentation et la masse ! (oui, réellement!!)) et il a des
caches en écriture différée. Le seul problème restant est la
réponse à la question "combien il coûte ?"</p>
<h2><a name="s5">5. Quelques notes sur les fréquences</a></h2>
<p>Tous les processeurs Alpha actuels utilisent des horloges à
haute vitesse, parce que leur microarchitecture a été conçue comme
"en cycles courts". Cependant, du coup, aucun des bus systèmes n'a
besoin de tourner à de telles vitesses :</p>
<ul>
<li>sur les 21066(A), 21064(A) et 21164 la vitesse du cache externe
(Bcache) est entièrement programmable, à la résolution de l'horloge
du processeur. Par exemple, pour un processeur à 275 MHz, le temps
d'accès en lecture du Bcache peut être contrôlé avec une résolution
de 3,6 ns.</li>
<li>sur les 21066(A), la vitesse des DRAM est entièrement
programmable, à la résolution de l'horloge du processeur
(<em>pas</em> celle du bus PCI).</li>
<li>sur les 21064(A) et 21164(A), la fréquence du bus système est
un sous-multiple de cele du processeur. La plupart des cartes mères
21064 utilisent une horloge du bus système à 33 MHz.</li>
<li>Le systèmes à base de 21066 peuvent faire tourner le bus PCI à
n'importe quelle fréquence par rapport au processeur. En général,
le bus PCI tourne à 33 MHz.</li>
<li>Les systèmes qui utilisent les chipset APECS (cf. section
<a href="#Les%20chipsets">Les chipsets</a> ) ont toujours la
fréquence du bus processeur égale à celle du bus PCI. Cela signifie
que les deux bus tendent à tourner soit à 25 MHz, soit à 33 MHz
(puisque ce sont les fréquences qui sont sous-multiples de celle du
processeur). Sur les systèmes APEC, la vitesse du contrôleur de
DRAM est programmable logiciellement en fonction de la fréquence du
bus processeur.</li>
</ul>
<p><b>Note:</b> quelqu'un a suggéré qu'il obtenait de mauvaises
performances sur un système 21066 parce que le contrôleur de
mémoire du 21066 ne tourne qu'à 33 MHz. En fait, ce sont soulement
les systèmes super-rapides 21064A qui ont des contrôleurs de
mémoire qui tournent 'seulement' à 33 MHz.</p>
<h2><a name="Les chipsets"></a> <a name="s6">6. Les
chipset</a></h2>
<p>DS vend deux chipsets de support processeur. Le chipset 2107x
(dénommé APECS) supporte les 21064(A). Le chipset 2117x (dénommé
ALCOR) supporte les 21164. Il y aura aussi un chipset 2117xA
(dénommé ALCOR 2) qui supportera le 21164A.</p>
<p>Ces deux chipsets fournissent des contrôleurs de mémoire et des
pontages PCI pour leur processeur. APECS fournit un pontage PCI de
32 bits, ALCOR fournit un pontage PCI de 64 bits qui (conformément
à la spécification PCI) peut supporter des périphériques PCI aussi
bien 32 bits que 64 bits.</p>
<p>APECS consiste en 6 puces de 208 broches (4 registres de 32 bits
(DECADE), 1 contrôleur système (COMANCHE), 1 contrôleur PCI
(EPIC)). Il fournit un contrôleur de DRAM (bus mémoire de 128 bits)
et une interface PCI. Il effectue également tout le travail de
maintien de la cohérence quand un périphérique PCI effectue une
opération DMA vers (ou depuis) la mémoire.</p>
<p>ALCOR consiste en 5 puces (4 registres de 64 bits (Data Switch,
DSW) 208 broches PQFP et 1 contrôleur (Control, I/O Address, CIA) -
un boîtier plastique de 383 broches). Il fournit un contrôleur de
DRAM (bus mémoire de 256 bits) et une interface PCI. Il effectue
également tout le travail de maintion de cohérence quand un
périphérique PCI effectue une opération DMA vers (ou depuis) la
mémoire.</p>
<p>Il n'existe pas de chipset supportant le 21066, puisque le
contrôleur de mémoire et le pontage PCI sont intégrés dans le
processeur.</p>
<h2><a name="s7">7. Les systèmes</a></h2>
<p>Le groupe applications de DS produit des exemples de conceptions
utilisant les processeurs et leurs chipsets associés. Il s'agit
typiquement de cartes mères de format PC-AT, avec toutes les
fonctionnalités que vous trouverez typiquement sur une carte mère
Pentium haut de gamme. Initialement, ces exemples de conception
étaient destinés à être utilisés comme point de départ pour des
tierces parties pour concevoir des cartes mères. Ces conceptions de
première génération furent nommées Evaluation Boards (EB). Comme la
quantité de travail nécessaire pour concevoir une carte mère a
augmenté (à cause de la montée en fréquence des processeurs et pour
respecter les régles sur l'émission de fréquences radio) l'accent a
été mis sur la conception de cartes mères utilisables pour une
production en masse.</p>
<p>Les groupes système de Digital ont produit plusieurs générations
de machines à base de processeurs Alpha. Certains de ces systèmes
utilisent des chipsets conçues par les groupes système, d'autres
utilisent les chipsets de DS. Dans certains cas, les systèmes
utilisent une combinaison des deux.</p>
<p>Plusieurs tierces parties ont construit des systèmes à base de
processeurs Alpha. Certaines de ces entreprises ont conçu leurs
systèmes à partir de zéro, d'autres ont utilisé les chipsets de DS,
ou ont copié/modifié les exemples de conception de DS, ou
simplement assemblent leurs systèmes à partir des cartes fabriquées
et vérifiées par DS.</p>
<p>L'EB64 : Conception obsolète utilisant un 21064 avec un
contrôleur de mémoire implémenté en logique programmée.
Entrées/Sorties réalisées par de la logique programmée pour
s'interfacer à un chipset de pontage 486<->ISA. Ethernet,
SuperI/O (2S, 1P, LD) intégré sur la carte mère, bus ISA. Taille
PC-AT. Alimentation standard PC.</p>
<p>L'EB64+ : Utilise un 21064 ou un 21064A, et un APECS. Bus ISA et
PCI (3 emplacements ISA, 2 emplacements PCI, une paire sur un
emplacement partagé). Supporte des SIMMs de DRAM 36 bits. Le bus
ISA est géré par un chipset de pontage Intel Saturn. Contrôleur
SCSI (NCR 810 PCI), ethernet (Digital 21040), contrôleur clavier et
souris (PS/2), SuperI/O (2S, 1P, LD), mémoire CMOS et horloge sur
la carte mère. ROM de démarrage en EPROM. Taille PC-AT.
Alimentation standard PC.</p>
<p>L'EB66 : Utilise un 21066 ou un 21066A. Le sous-système
d'entrées sorties est identique à celui de l'EB64+. Taille baby
PC-AT. Alimentation standard PC. Les schémas de l'EB66 furent
publiés dans des publicités vantant le 21066 comme "le premier
microprocesseur au monde avec PCI intégré" (pour les amateurs
d'anecdotes : il y a deux versions de cette publicité - j'ai
dessiné les circuits et écrit le boniment dans la première version,
et des américains ont malmené le boniment pour la deuxième
version)</p>
<p>L'EB164 : Utilise un 21164 et ALCOR. Bus ISA et PCI (3
emplacements ISA, 2 emplacements PCI 64 bits (dont un partagé avec
un emplacement ISA) et 2 emplacements PCI 32 bits). Emplacement
SIMM pour le Bcache. Le sous-système d'entrées sorties fournit un
contrôleur SuperI/O (2S, 1P, LD), un contrôleur clavier et souris
(PS/2), mémoire CMOS et horloge. ROM de démarrage en mémoire flash.
Taille PC-AT. Nécessite une alimentation en 3,3 Volts.</p>
<p>L'AlphaPC64 (aussi nommée Cabriolet) : dérivé de l'EB64+ mais
désormais en taille baby PC-AT avec une ROM de démarrage en flash,
et plus de contrôleur SCSI et ethernet sur la carte mère. 3
emplacements ISA, 4 emplacements PCI (dont un partagé avec un
emplacement ISA), emplacement SIMM pour le Bcache. Nécessite une
alimentation en 3,3 Volts.</p>
<p>L'AXPpci33 (aussi nommée NoName), est basée sur l'EB66. Cette
conception est produite par le groupe technique OEM de Digital
(TOEM). A base d'un processeur 21066 tournant à 166 MHz ou 233 MHz.
Taille baby PC-AT, nécessite une alimentation standard PC. 5
emplacements ISA et 3 emplacements PCI (dont un partagé avec un
emplacement ISA). Il existe deux versions, avec un connecteur soit
PS/2, soit DIN pour le clavier.</p>
<p>D'autres cartes mères à base de 21066 : la plupart, sinon
toutes, disponibles sur le marché sont basées sur l'EB66 - il n'y a
pas beaucoup d'options dans la conception d'un système 21066, parce
que tout le contrôle est fait par les puces.</p>
<p>Multia (aussi nommé Universal Desktop Box) : il s'agit d'un
système boîtier bureau très compact à base de 21066. Il comporte
deux ports PCMCIA, une carte graphique 21030 (TGA), une carte
ethernet 21040 et un contrôleur SCSI NCR 810, ainsi qu'un lecteur
de disquettes, 2 port série et un port parallèle. Ses capacités
d'extension sont limitées (un emplacement PCI) à cause de sa petite
taille (il y a en plus des restrictions sur l'utilisation de
l'emplacement PCI, dont je ne me souviens plus). (Notez que des
Multia à base de 21066A ou de Pentium sont aussi disponibles).</p>
<p>DEC PC 150 AXP (aussi nommé Jensen) : c'est un très vieux
système Digital - l'un des systèmes Alpha de première génération.
Il n'est mentionné ici que parce qu'un certain nombre de ces
systèmes semblent être disponibles sur le marché de l'occasion. Le
Jensen est un système grande tour qui utilise un 21064 à 150 MHz
(des versions plus récentes utilisèrent des processeurs plus
rapides mais je ne suis pas sûr des vitesses). Il utilisait de la
logique programmée pour interfacer le processeur à un pontage
486<->EISA.</p>
<p>D'autres systèmes à base de 21064(A) : il existe encore 3 ou 4
autres conceptions de cartes mère (sans compter les
<em>systèmes</em> Digital) et tous ceux que je connais sont dérivés
de l'EB64+. Parmi ceux-ci :</p>
<ul>
<li>EB64+ (certains vendeurs l'ont assemblé et vendu sans
modifications); taille AT.</li>
<li>Carte mère Aspen Systems : dérivée de l'EB64+ ; taille baby
AT.</li>
<li>Carte serveur Aspen Systems : beaucoup d'emplacements PCI
(inclut un pontage PCI).</li>
<li>AlphaPC64 (aussi nommée Cabriolet), taile baby AT.</li>
</ul>
<p>D'autres systèmes à base de 21164(A) : le seul que je connaisse
qui ne soit pas un simple clone d'un EB164 est un système de
DeskStation. Ce système est construit avec un contrôleur de mémoire
et d'entrées/sorties propriétaire de DeskStation. Je ne sais pas
quelle est leur attitude vis-à-vis de Linux.</p>
<h2><a name="byte ld/st"></a> <a name="s8">8. Les octets et leur
multiples</a></h2>
<p>Quand l'architecture Alpha fut présentée, elle était unique par
rapport aux autres architectures RISC en empêchant les lectures et
écritures sur 8 et 16 bits. Elle supportait les lectures et
écritures sur 32 et 64 bits (mot long et quadruple mot, dans la
terminologie Digital). Les co-architectes (Dick Sites et Rich
Witek) justifiaient ce choix par ces avantages :</p>
<ol>
<li>Le support des octets dans le cache et le sous-système mémoire
tend à ralentir les accès pour les quantités de 32 et 64 bits.</li>
<li>Le support des octets rend difficile la création d'un circuit
de correction d'erreur haute-vitesse dans le cache et le
sous-système mémoire.</li>
</ol>
<p>L'Alpha compense par de puissantes instructions pour la
manipulation des octets et des groupes d'octets dans les registres
de 64 bits. Les tests de performances standard pour les opérations
sur les chaînes de caractères (par exemples, certains tests de
Byte) montrent que l'Alpha se comporte très bien pour la
manipulation des octets.</p>
<p>L'absence de lectures et écritures sur octet a des répercussions
sur certains sémaphores logiciels et sur la conception des
sous-systèmes d'entrées/sorties. La solution de Digital au problème
des entrées/sorties est d'utiliser certaines lignes d'adresse de
bas niveau pour spécifier la taille des données pendant les
transferts de données, et de les décoder en masque d'octets. Cet
adressage dénommé "adressage clairsemé" gâche une partie de
l'espace d'adressage et rend l'espace d'entrées/sorties non contigü
(j'en dirais plus sur cet adressage clairsemé quand j'aurai fini
par l'écrire). Notez que l'espace d'entrées/sorties, dans ce
contexte, se réfère à toutes les ressources présentes sur le bus
PCI et comprend aussi bien l'espace mémoire PCI que l'espace
d'entrées/sorties PCI.</p>
<p>Avec l'apparition du 21164A, l'architecture Alpha a été étendue
pour inclure l'adressage des octets. L'exécution des nouvelles
instructions sur un processeur plus ancien déclenchera une
exception PALcode OPCDEC, pour que le PALcode puisse gérer cet
accès. Cela aura une incidence sur les performances. Les
ramifications de ceci font que l'utilisation de ces instructions
devraient (à mon humble avis) être limitée aux pilotes de
périphériques plutôt qu'aux applications.</p>
<p>Ces nouvelles possibilité de lecture et écriture au niveau octet
signifient que de futurs chipsets pourront supporter un espace
d'entrées/sorties contigü.</p>
<h2><a name="s9">9. Le PALcode</a></h2>
<p>Cet emplacement est destiné à une section expliquant le PALcode.
Je l'écrirai s'il y a suffisemment d'intérêt.</p>
<h2><a name="s10">10. Portabilité</a></h2>
<p>La possibilité de faire tourner Linux sur n'importe quelle
machine Alpha est généralement limitée par votre possibilité
d'obtenir des informations sur les détails sanglants de ses
arcanes. Puisque des portages de Linux existent pour les cartes
mères EB66, EB64+ et EB164, tous les systèmes basés sur les 21066,
21064/APECS et 21164/ALCOR devraient pouvoir faire tourner Linux
avec très peu voire aucune modification. La principale différence
entre toutes ces cartes mères est la façon dont elles diffusent les
interruptions. Il y a trois sources d'interruptions :</p>
<ul>
<li>périphériques intégrés</li>
<li>périphériques PCI</li>
<li>périphériques ISA</li>
</ul>
<p>Tous les systèmes utilisent un système de pontage
d'entrées/sorties (SIO) Intel en tant que pontage entre les bus PCI
et ISA (le bus principal est PCI, le bus ISA est un bus secondaire
utilisé pour supporter les périphériques anciens ou basse vitesse).
Le SIO contient la traditionnelle paire de 8259 chaînés.</p>
<p>Certains systèmes (par exemple le NoName) diffusent leurs
interruptions via le SIO vers le processeur. Certains systèmes ont
un contrôleur d'interruptions séparé et diffusent toutes les
interruptions PCI plus l'interruption SIO (sortie du 8259) via ce
contrôleur, et toutes les interruptions ISA via le SIO.</p>
<p>Les autres différences entre ces systèmes comprennent :</p>
<ul>
<li>de combien d'emplacements ils disposent</li>
<li>quels sont les périphériques PCI intégrés</li>
<li>si la ROM de démarrage est en mémoire flash ou en EPROM</li>
</ul>
<h2><a name="s11">11. Plus d'informations</a></h2>
<p>Toutes les conceptions de cartes d'évaluation et de cartes mères
de DS sont libres de droits et la documentation complète pour une
conception coûte environ 50$ (300FF). Cela comprend tous les
schémas, les sources des parties programmées, les feuilles
d'informations du processeur et du chipset. Les kits de
documentation sont disponibles auprès des distributeurs de Digital
Semiconductor. Je ne suggère pas de vous précipiter aller
l'acheter, mais je veux faire remarquer que ces informations sont
disponibles.</p>
<p>J'espère que cela vous a été utile. Les commentaires, mises à
jour, suggestions d'extension sont à envoyer à <a href=
"mailto:neal.crook@reo.mts.digital.com">Neal Crook</a>.</p>
<h2><a name="s12">12. Références</a></h2>
<p><a name="ref1"></a> <a href=
"http://www.research.digital.com/wrl/publications/abstracts/TN-13.html">
[1]</a> Bill Hamburgen, Jeff Mogul, Brian Reid, Alan Eustace,
Richard Swan, Mary Jo Doherty, and Joel Bartlett.
<em>Characterization of Organic Illumination Systems</em>. DEC WRL,
Technical Note 13, April 1989.</p>
</body>
</html>
|