/usr/share/doc/HOWTO/fr-html/Alpha-HOWTO.html is in doc-linux-fr-html 2013.01-2.
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 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<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>
|