This file is indexed.

/usr/share/doc/HOWTO/fr-html/Alpha-HOWTO.html is in doc-linux-fr-html 2013.01-3.

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 (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.71">
<title>Br&egrave;ve introduction aux syst&egrave;mes et processeurs
Alpha</title>
</head>
<body>
<h1>Br&egrave;ve introduction aux syst&egrave;mes et processeurs
Alpha</h1>
<h2>Neal Crook, Digital Equipment (Publication: <a href=
"mailto:davidm@azstarnet.com">David Mosberger</a>) (Adaptation
Fran&ccedil;aise par Christophe Vallat (miodrag@mygale.org))</h2>
V0.11, 6 Juin 1997
<hr>
<em>Ce document est un rapide aper&ccedil;u des processeurs et
syst&egrave;mes Alpha existants. Il y a un peu de parti pris,
&agrave; cause de mon exp&eacute;rience personnelle. Bien que je
sois un employ&eacute; de Digital Equipment Corporation, il ne
s'agit pas d'un d'un document officiel de Digital et les opinions
exprim&eacute;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&eacute; &agrave; l'architecture RISC 64
bits de Digital. Le projet Alpha commen&ccedil;a &agrave; Digital
&agrave; 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&egrave;re architecture RISC produite par Digital, mais ce fut
la premi&egrave;re &agrave; &ecirc;tre mise sur le march&eacute;.
Quand Digital a annonc&eacute; Alpha en mars 1992, elle a pris la
d&eacute;cision d'entrer sur le march&eacute; des composants
&eacute;lectroniques en vendant des microprocesseurs Alpha.</p>
<p>Alpha est parfois d&eacute;sign&eacute; par Alpha AXP, pour de
vieilles et obscures raisons qu'il est inutile de pr&eacute;ciser.
Il suffit de dire que c'est exactement la m&ecirc;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 &eacute;lectroniques. Parmi les produits de
Digital figurent les processeurs, les chipsets associ&eacute;s, les
pontages PCI-PCI et les composants PCI pour la communication et le
multim&eacute;dia.</p>
<h2><a name="s3">3. Processeurs Alpha</a></h2>
<p>Il y a actuellement 2 g&eacute;n&eacute;rations de base de
processeur impl&eacute;mentant l'architecture Alpha :</p>
<ul>
<li>EV4</li>
<li>EV5</li>
</ul>
<p>Les avis diff&eacute;rent quant au sens de "EV" (note : la vraie
r&eacute;ponse est bien entendu "Electro Vlassic" <a href=
"#ref1">[1]</a>), mais le chiffre repr&eacute;sente la
premi&egrave;re g&eacute;n&eacute;ration de technologie CMOS de
Digital avec laquelle le processeur a &eacute;t&eacute;
con&ccedil;u. Ainsi, EV4 a &eacute;t&eacute; initialement
con&ccedil;ue en CMOS4. Au fil du temps, un processeur tend a
trouver une nouvelle jeunesse en &eacute;tant optiquement
r&eacute;tr&eacute;cie dans la nouvelle g&eacute;n&eacute;ration de
CMOS. EV45 est donc la base EV4 con&ccedil;ue en CMOS5. Il y a une
grande diff&eacute;rence entre r&eacute;tr&eacute;cir une
conception pour une technologie particuli&egrave;re et la
reconcevoir pour cette technologie (mais je ne veux pas entrer dans
les d&eacute;tails). Il y a encore quelques variantes : la CMOS4S
(r&eacute;tr&eacute;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-&eacute;coulement (il peut
traiter 2 instructions processeur par cycle d'horloge)
super-pipelin&eacute; avec une unit&eacute; de calcul entier, une
unit&eacute; de calcul flottant et pr&eacute;diction de
branchement. Il a des bus de donn&eacute;es internes de 64 bits et
des caches de 8Ko &eacute;troitement coupl&eacute;s, un jeu de
chaque pour les instructions, et pour les donn&eacute;es. Les
caches sont en &eacute;criture imm&eacute;diate
("write-through").</p>
<p>La base EV45 a quelques am&eacute;liorations par rapport
&agrave; la base EV4 : l'unit&eacute; de calcul flottant est
l&eacute;g&eacute;rement am&eacute;lior&eacute;e, et les caches
sont de 16Ko. (Note : Neal Crook a indiqu&eacute; dans un courrier
s&eacute;par&eacute; que les modifications de l'unit&eacute; de
calcul flottant am&eacute;liorent les performances de la division.
La FPU de l'EV4 prend 34 cycles pour une division en simple
pr&eacute;cision et 63 cycles pour une division en
double-pr&eacute;cision (quelles que soient les donn&eacute;es). En
comparaison, le FPU de l'EV45 prend g&eacute;n&eacute;ralement 19
cycles (34 au pire) pour la simple pr&eacute;cision et 29 cycles
(63 au pire) pour la double-pr&eacute;cision (en fonction des
donn&eacute;es).)</p>
<p>La base EV5 est un noyau quadruple-&eacute;coulement,
&eacute;galement super-pipelin&eacute; etc etc. Il a des caches de
8 Ko &eacute;troitement coupl&eacute;s, un de pour les instructions
et un pour les donn&eacute;es. Ces caches sont en &eacute;criture
imm&eacute;diate. Il dispose &eacute;galement d'un cache de
deuxi&egrave;me niveau de 96 Ko sur le processeur (le Scache) qui
est associatif 3-morceaux et en &eacute;criture
diff&eacute;r&eacute;e ("write back"). Le gain de performance de
l'EV4 &agrave; l'EV5 est sup&eacute;rieur au seul gain
g&eacute;n&eacute;r&eacute; par l'augmentation de la
fr&eacute;quence. En plus des caches plus grands et du
quadruple-&eacute;coulement, il y a aussi des am&eacute;liorations
de sa microarchitecture pour r&eacute;duire les temps d'attente
producteur/consommateur dans certaines voies.</p>
<p>La base EV56 est fondamentalement la m&ecirc;me
microarchitecture que l'EV5, mais ajoute quelques nouvelles
instructions pour la lecture et l'&eacute;criture sur 8 et 16 bits
(cf. section <a href="#byte%20ld/st">Les octets et leur
multiples</a>). Elles sont principalement destin&eacute;es aux
pilotes de p&eacute;riph&eacute;riques. La base EV56 est
r&eacute;alis&eacute;e en CMOS6, en 2,0 Volts.</p>
<p>Le 21064 a &eacute;t&eacute; annonc&eacute; 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&egrave;me niveau, avec une taille de bloc de 256 bits (2 fois
la taille du bus). La vitesse de ce Bcache est enti&egrave;rement
configurable logiciellement. Le 21064 peut aussi &ecirc;tre
configur&eacute; pour utiliser un bus externe de 64 bits (mais je
crois qu'aucun syst&egrave;me n'utilise ce mode). Le 21064 n'impose
aucune contrainte sur le Bcache, mais il est
g&eacute;n&eacute;ralement configur&eacute; en &eacute;criture
diff&eacute;r&eacute;e. Le 21064 contient un syst&egrave;me
permettant &agrave; du mat&eacute;riel s&eacute;par&eacute; de
maintenir la coh&eacute;rence entre le Bcache et le cache interne,
mais c'est complexe.</p>
<p>Le 21066 utilise la base EV4 et int&eacute;gre un
contr&ocirc;leur de m&eacute;moire et un pontage de bus PCI. Pour
&eacute;conomiser des broches, le contr&ocirc;leur de
m&eacute;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&ocirc;leur de m&eacute;moire
supporte le BCache et la DRAM externe. La vitesse du Bcache et de
la DRAM est enti&egrave;rement configurable logiciellement, et peut
&ecirc;tre contr&ocirc;l&eacute; &agrave; la vitesse du processeur.
La d&eacute;composition en 4 acc&egrave;s pour remplir un bloc de
cacte n'est pas si mauvais qu'on peut le penser parce que
l'acc&egrave;s &agrave; la DRAM est fait en mode page.
Malheureusement, le contr&ocirc;leur de m&eacute;moire ne supporte
ni les types de DRAM &eacute;sot&eacute;rique (SDRAM, EDO ou BEDO),
ni les RAMs de cache synchrone. L'interface du bus PCI est
enti&egrave;rement compatible avec PCI 2.0 et tourne jusqu'&agrave;
33 MHz.</p>
<p>Le 21164 a un bus de donn&eacute;es de 128 bits et supporte les
lectures partielles, avec jusqu'&agrave; deux lectures en cours en
m&ecirc;me temps (ce qui permet une utilisation &agrave; 100% du
bus de donn&eacute;es dans les meilleures conditions de r&ecirc;ve,
i.e. il est possible th&eacute;oriquement de transf&eacute;rer 128
bits de donn&eacute;es &agrave; chaque cycle du bus). Le 21164
supporte une connexion facile d'un cache de troisi&egrave;me niveau
(Bcache) et a tout le syst&egrave;me pour permettre &agrave; du
mat&eacute;riel externe de maintenir la coh&eacute;rence de tous
les caches. De cette fa&ccedil;on, les conceptions de
multiprocesseur sym&eacute;trique sont 'faciles'.</p>
<p>Le 21164A a &eacute;t&eacute; annonc&eacute; en octobre 1995. Il
utilise la base EV56. Son brochage est compatible avec celui du
21164, mais n&eacute;cessite des lignes d'alimentation
s&eacute;par&eacute;es ; toutes les broches qui &eacute;taient +3,3
Volts sur le 21164 ont &eacute;t&eacute; divis&eacute;es en deux
groupes ; un groupe fournit 2,0 Volts au coeur du processeur,
l'autre fournissant 3,3 Volts aux unit&eacute;s
d'entr&eacute;es/sorties. Contrairement aux anciennes conceptions,
les broches du 21164A n'acceptent pas 5 Volts. Le r&eacute;sultat
de ce changement est que les syst&egrave;mes 21164 ne peuvent en
g&eacute;n&eacute;ral pas &ecirc;tre mis &agrave; jour en 21164A
(bien qu'il soit relativement simple de concevoir un syst&egrave;me
21164A qui puisse aussi accepter un 21164). Le 21164A dispose
&eacute;galement de quelques nouvelles broches pour supporter les
lectures et &eacute;critures sur 8 et 16 bits. Il am&eacute;liore
&eacute;galement le support du 21164 pour les SRAMs synchrones qui
composent le Bcache.</p>
<h2><a name="s4">4. Performances compar&eacute;es du 21064 et du
21066</a></h2>
<p>Le 21064 et le 21066 ont la m&ecirc;me base (EV4). Si le
m&ecirc;me programme tourne sur un 21064 et un 21066, &agrave; la
m&ecirc;me fr&eacute;quence, alors la diff&eacute;rence de
performance provient uniquement de la bande passante entre le
Bcache et la m&eacute;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 &eacute;crit &eacute;norm&eacute;ment.
Malgr&eacute; les buffers en &eacute;criture du 21064 et du 21066
pour &eacute;conomiser certains d&eacute;lais, du code qui
&eacute;crit &eacute;norm&eacute;ment sera &eacute;trangl&eacute;
par la bande passante en &eacute;criture du bus syst&egrave;me.
Cela est du au fait que les cache du processeur sont en
&eacute;criture imm&eacute;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
&ecirc;tre faite en m&eacute;moire (Et du coup, puisque les caches
du processeur sont en &eacute;criture imm&eacute;diate, via le
Bcache). (Note : il semble que l'EV4 et l'EV45 peuvent effectuer la
conversion via le premier cache de donn&eacute;es (Dcache),
&agrave; partir du moment ou la m&eacute;moire est cach&eacute;e.
Dans ce cas, l'&eacute;criture faite par la s&eacute;quence de
conversion mettra &agrave; jour le Dcache et la lecture qui va
suivre sera, dans certaines circonstances, capable de lire la
valeur du Dcache, &eacute;vitant un co&ucirc;teux transfert depuis
le Bcache. En particulier, il semble meilleur d'ex&eacute;cuter les
instructions stq/ldt ou stt/ldq dos &agrave; dos, ce qui est
plut&ocirc;t contraire &agrave; l'intuition.)</li>
</ol>
<p>Si vous effectuez la m&ecirc;me comparaison entre un 21064A et
un 21066A, il y a un facteur suppl&eacute;mentaire du aux
diff&eacute;rentes tailles des Icache et Dcache entre les deux
processeurs.</p>
<p>Maintenant, le 21164 r&eacute;soud ces deux probl&egrave;mes :
il atteint des <em>bien</em> meilleures bandes passantes du bus
syst&egrave;me (malgr&eacute; le m&ecirc;me nombre de broches de
signal - oui, je <em>sais</em> que c'est &agrave; peu pr&egrave;s
deux fois plus qu'un 21064, mais les suppl&eacute;mentaires sont
l'alimentation et la masse ! (oui, r&eacute;ellement!!)) et il a
des caches en &eacute;criture diff&eacute;r&eacute;e. Le seul
probl&egrave;me restant est la r&eacute;ponse &agrave; la question
"combien il co&ucirc;te ?"</p>
<h2><a name="s5">5. Quelques notes sur les
fr&eacute;quences</a></h2>
<p>Tous les processeurs Alpha actuels utilisent des horloges
&agrave; haute vitesse, parce que leur microarchitecture a
&eacute;t&eacute; con&ccedil;ue comme "en cycles courts".
Cependant, du coup, aucun des bus syst&egrave;mes n'a besoin de
tourner &agrave; de telles vitesses :</p>
<ul>
<li>sur les 21066(A), 21064(A) et 21164 la vitesse du cache externe
(Bcache) est enti&egrave;rement programmable, &agrave; la
r&eacute;solution de l'horloge du processeur. Par exemple, pour un
processeur &agrave; 275 MHz, le temps d'acc&egrave;s en lecture du
Bcache peut &ecirc;tre contr&ocirc;l&eacute; avec une
r&eacute;solution de 3,6 ns.</li>
<li>sur les 21066(A), la vitesse des DRAM est enti&egrave;rement
programmable, &agrave; la r&eacute;solution de l'horloge du
processeur (<em>pas</em> celle du bus PCI).</li>
<li>sur les 21064(A) et 21164(A), la fr&eacute;quence du bus
syst&egrave;me est un sous-multiple de cele du processeur. La
plupart des cartes m&egrave;res 21064 utilisent une horloge du bus
syst&egrave;me &agrave; 33 MHz.</li>
<li>Le syst&egrave;mes &agrave; base de 21066 peuvent faire tourner
le bus PCI &agrave; n'importe quelle fr&eacute;quence par rapport
au processeur. En g&eacute;n&eacute;ral, le bus PCI tourne &agrave;
33 MHz.</li>
<li>Les syst&egrave;mes qui utilisent les chipset APECS (cf.
section <a href="#Les%20chipsets">Les chipsets</a> ) ont toujours
la fr&eacute;quence du bus processeur &eacute;gale &agrave; celle
du bus PCI. Cela signifie que les deux bus tendent &agrave; tourner
soit &agrave; 25 MHz, soit &agrave; 33 MHz (puisque ce sont les
fr&eacute;quences qui sont sous-multiples de celle du processeur).
Sur les syst&egrave;mes APEC, la vitesse du contr&ocirc;leur de
DRAM est programmable logiciellement en fonction de la
fr&eacute;quence du bus processeur.</li>
</ul>
<p><b>Note:</b> quelqu'un a sugg&eacute;r&eacute; qu'il obtenait de
mauvaises performances sur un syst&egrave;me 21066 parce que le
contr&ocirc;leur de m&eacute;moire du 21066 ne tourne qu'&agrave;
33 MHz. En fait, ce sont soulement les syst&egrave;mes
super-rapides 21064A qui ont des contr&ocirc;leurs de
m&eacute;moire qui tournent 'seulement' &agrave; 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&eacute;nomm&eacute; APECS) supporte les 21064(A). Le chipset
2117x (d&eacute;nomm&eacute; ALCOR) supporte les 21164. Il y aura
aussi un chipset 2117xA (d&eacute;nomm&eacute; ALCOR 2) qui
supportera le 21164A.</p>
<p>Ces deux chipsets fournissent des contr&ocirc;leurs de
m&eacute;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&eacute;ment &agrave; la sp&eacute;cification
PCI) peut supporter des p&eacute;riph&eacute;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&ocirc;leur syst&egrave;me (COMANCHE), 1
contr&ocirc;leur PCI (EPIC)). Il fournit un contr&ocirc;leur de
DRAM (bus m&eacute;moire de 128 bits) et une interface PCI. Il
effectue &eacute;galement tout le travail de maintien de la
coh&eacute;rence quand un p&eacute;riph&eacute;rique PCI effectue
une op&eacute;ration DMA vers (ou depuis) la m&eacute;moire.</p>
<p>ALCOR consiste en 5 puces (4 registres de 64 bits (Data Switch,
DSW) 208 broches PQFP et 1 contr&ocirc;leur (Control, I/O Address,
CIA) - un bo&icirc;tier plastique de 383 broches). Il fournit un
contr&ocirc;leur de DRAM (bus m&eacute;moire de 256 bits) et une
interface PCI. Il effectue &eacute;galement tout le travail de
maintion de coh&eacute;rence quand un p&eacute;riph&eacute;rique
PCI effectue une op&eacute;ration DMA vers (ou depuis) la
m&eacute;moire.</p>
<p>Il n'existe pas de chipset supportant le 21066, puisque le
contr&ocirc;leur de m&eacute;moire et le pontage PCI sont
int&eacute;gr&eacute;s dans le processeur.</p>
<h2><a name="s7">7. Les syst&egrave;mes</a></h2>
<p>Le groupe applications de DS produit des exemples de conceptions
utilisant les processeurs et leurs chipsets associ&eacute;s. Il
s'agit typiquement de cartes m&egrave;res de format PC-AT, avec
toutes les fonctionnalit&eacute;s que vous trouverez typiquement
sur une carte m&egrave;re Pentium haut de gamme. Initialement, ces
exemples de conception &eacute;taient destin&eacute;s &agrave;
&ecirc;tre utilis&eacute;s comme point de d&eacute;part pour des
tierces parties pour concevoir des cartes m&egrave;res. Ces
conceptions de premi&egrave;re g&eacute;n&eacute;ration furent
nomm&eacute;es Evaluation Boards (EB). Comme la quantit&eacute; de
travail n&eacute;cessaire pour concevoir une carte m&egrave;re a
augment&eacute; (&agrave; cause de la mont&eacute;e en
fr&eacute;quence des processeurs et pour respecter les
r&eacute;gles sur l'&eacute;mission de fr&eacute;quences radio)
l'accent a &eacute;t&eacute; mis sur la conception de cartes
m&egrave;res utilisables pour une production en masse.</p>
<p>Les groupes syst&egrave;me de Digital ont produit plusieurs
g&eacute;n&eacute;rations de machines &agrave; base de processeurs
Alpha. Certains de ces syst&egrave;mes utilisent des chipsets
con&ccedil;ues par les groupes syst&egrave;me, d'autres utilisent
les chipsets de DS. Dans certains cas, les syst&egrave;mes
utilisent une combinaison des deux.</p>
<p>Plusieurs tierces parties ont construit des syst&egrave;mes
&agrave; base de processeurs Alpha. Certaines de ces entreprises
ont con&ccedil;u leurs syst&egrave;mes &agrave; partir de
z&eacute;ro, d'autres ont utilis&eacute; les chipsets de DS, ou ont
copi&eacute;/modifi&eacute; les exemples de conception de DS, ou
simplement assemblent leurs syst&egrave;mes &agrave; partir des
cartes fabriqu&eacute;es et v&eacute;rifi&eacute;es par DS.</p>
<p>L'EB64 : Conception obsol&egrave;te utilisant un 21064 avec un
contr&ocirc;leur de m&eacute;moire impl&eacute;ment&eacute; en
logique programm&eacute;e. Entr&eacute;es/Sorties
r&eacute;alis&eacute;es par de la logique programm&eacute;e pour
s'interfacer &agrave; un chipset de pontage 486&lt;-&gt;ISA.
Ethernet, SuperI/O (2S, 1P, LD) int&eacute;gr&eacute; sur la carte
m&egrave;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&eacute;). Supporte des SIMMs de DRAM 36 bits. Le
bus ISA est g&eacute;r&eacute; par un chipset de pontage Intel
Saturn. Contr&ocirc;leur SCSI (NCR 810 PCI), ethernet (Digital
21040), contr&ocirc;leur clavier et souris (PS/2), SuperI/O (2S,
1P, LD), m&eacute;moire CMOS et horloge sur la carte m&egrave;re.
ROM de d&eacute;marrage en EPROM. Taille PC-AT. Alimentation
standard PC.</p>
<p>L'EB66 : Utilise un 21066 ou un 21066A. Le sous-syst&egrave;me
d'entr&eacute;es sorties est identique &agrave; celui de l'EB64+.
Taille baby PC-AT. Alimentation standard PC. Les sch&eacute;mas de
l'EB66 furent publi&eacute;s dans des publicit&eacute;s vantant le
21066 comme "le premier microprocesseur au monde avec PCI
int&eacute;gr&eacute;" (pour les amateurs d'anecdotes : il y a deux
versions de cette publicit&eacute; - j'ai dessin&eacute; les
circuits et &eacute;crit le boniment dans la premi&egrave;re
version, et des am&eacute;ricains ont malmen&eacute; le boniment
pour la deuxi&egrave;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&eacute; avec un emplacement ISA) et 2 emplacements PCI 32
bits). Emplacement SIMM pour le Bcache. Le sous-syst&egrave;me
d'entr&eacute;es sorties fournit un contr&ocirc;leur SuperI/O (2S,
1P, LD), un contr&ocirc;leur clavier et souris (PS/2),
m&eacute;moire CMOS et horloge. ROM de d&eacute;marrage en
m&eacute;moire flash. Taille PC-AT. N&eacute;cessite une
alimentation en 3,3 Volts.</p>
<p>L'AlphaPC64 (aussi nomm&eacute;e Cabriolet) :
d&eacute;riv&eacute; de l'EB64+ mais d&eacute;sormais en taille
baby PC-AT avec une ROM de d&eacute;marrage en flash, et plus de
contr&ocirc;leur SCSI et ethernet sur la carte m&egrave;re. 3
emplacements ISA, 4 emplacements PCI (dont un partag&eacute; avec
un emplacement ISA), emplacement SIMM pour le Bcache.
N&eacute;cessite une alimentation en 3,3 Volts.</p>
<p>L'AXPpci33 (aussi nomm&eacute;e NoName), est bas&eacute;e sur
l'EB66. Cette conception est produite par le groupe technique OEM
de Digital (TOEM). A base d'un processeur 21066 tournant &agrave;
166 MHz ou 233 MHz. Taille baby PC-AT, n&eacute;cessite une
alimentation standard PC. 5 emplacements ISA et 3 emplacements PCI
(dont un partag&eacute; 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&egrave;res &agrave; base de 21066 : la
plupart, sinon toutes, disponibles sur le march&eacute; sont
bas&eacute;es sur l'EB66 - il n'y a pas beaucoup d'options dans la
conception d'un syst&egrave;me 21066, parce que tout le
contr&ocirc;le est fait par les puces.</p>
<p>Multia (aussi nomm&eacute; Universal Desktop Box) : il s'agit
d'un syst&egrave;me bo&icirc;tier bureau tr&egrave;s compact
&agrave; base de 21066. Il comporte deux ports PCMCIA, une carte
graphique 21030 (TGA), une carte ethernet 21040 et un
contr&ocirc;leur SCSI NCR 810, ainsi qu'un lecteur de disquettes, 2
port s&eacute;rie et un port parall&egrave;le. Ses capacit&eacute;s
d'extension sont limit&eacute;es (un emplacement PCI) &agrave;
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 &agrave; base de 21066A ou de Pentium sont
aussi disponibles).</p>
<p>DEC PC 150 AXP (aussi nomm&eacute; Jensen) : c'est un
tr&egrave;s vieux syst&egrave;me Digital - l'un des syst&egrave;mes
Alpha de premi&egrave;re g&eacute;n&eacute;ration. Il n'est
mentionn&eacute; ici que parce qu'un certain nombre de ces
syst&egrave;mes semblent &ecirc;tre disponibles sur le
march&eacute; de l'occasion. Le Jensen est un syst&egrave;me grande
tour qui utilise un 21064 &agrave; 150 MHz (des versions plus
r&eacute;centes utilis&egrave;rent des processeurs plus rapides
mais je ne suis pas s&ucirc;r des vitesses). Il utilisait de la
logique programm&eacute;e pour interfacer le processeur &agrave; un
pontage 486&lt;-&gt;EISA.</p>
<p>D'autres syst&egrave;mes &agrave; base de 21064(A) : il existe
encore 3 ou 4 autres conceptions de cartes m&egrave;re (sans
compter les <em>syst&egrave;mes</em> Digital) et tous ceux que je
connais sont d&eacute;riv&eacute;s de l'EB64+. Parmi ceux-ci :</p>
<ul>
<li>EB64+ (certains vendeurs l'ont assembl&eacute; et vendu sans
modifications); taille AT.</li>
<li>Carte m&egrave;re Aspen Systems : d&eacute;riv&eacute;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&eacute;e Cabriolet), taile baby AT.</li>
</ul>
<p>D'autres syst&egrave;mes &agrave; base de 21164(A) : le seul que
je connaisse qui ne soit pas un simple clone d'un EB164 est un
syst&egrave;me de DeskStation. Ce syst&egrave;me est construit avec
un contr&ocirc;leur de m&eacute;moire et d'entr&eacute;es/sorties
propri&eacute;taire de DeskStation. Je ne sais pas quelle est leur
attitude vis-&agrave;-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&eacute;sent&eacute;e, elle
&eacute;tait unique par rapport aux autres architectures RISC en
emp&ecirc;chant les lectures et &eacute;critures sur 8 et 16 bits.
Elle supportait les lectures et &eacute;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&egrave;me
m&eacute;moire tend &agrave; ralentir les acc&egrave;s pour les
quantit&eacute;s de 32 et 64 bits.</li>
<li>Le support des octets rend difficile la cr&eacute;ation d'un
circuit de correction d'erreur haute-vitesse dans le cache et le
sous-syst&egrave;me m&eacute;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&eacute;rations sur les cha&icirc;nes de caract&egrave;res (par
exemples, certains tests de Byte) montrent que l'Alpha se comporte
tr&egrave;s bien pour la manipulation des octets.</p>
<p>L'absence de lectures et &eacute;critures sur octet a des
r&eacute;percussions sur certains s&eacute;maphores logiciels et
sur la conception des sous-syst&egrave;mes
d'entr&eacute;es/sorties. La solution de Digital au probl&egrave;me
des entr&eacute;es/sorties est d'utiliser certaines lignes
d'adresse de bas niveau pour sp&eacute;cifier la taille des
donn&eacute;es pendant les transferts de donn&eacute;es, et de les
d&eacute;coder en masque d'octets. Cet adressage
d&eacute;nomm&eacute; "adressage clairsem&eacute;" g&acirc;che une
partie de l'espace d'adressage et rend l'espace
d'entr&eacute;es/sorties non contig&uuml; (j'en dirais plus sur cet
adressage clairsem&eacute; quand j'aurai fini par l'&eacute;crire).
Notez que l'espace d'entr&eacute;es/sorties, dans ce contexte, se
r&eacute;f&egrave;re &agrave; toutes les ressources
pr&eacute;sentes sur le bus PCI et comprend aussi bien l'espace
m&eacute;moire PCI que l'espace d'entr&eacute;es/sorties PCI.</p>
<p>Avec l'apparition du 21164A, l'architecture Alpha a
&eacute;t&eacute; &eacute;tendue pour inclure l'adressage des
octets. L'ex&eacute;cution des nouvelles instructions sur un
processeur plus ancien d&eacute;clenchera une exception PALcode
OPCDEC, pour que le PALcode puisse g&eacute;rer cet acc&egrave;s.
Cela aura une incidence sur les performances. Les ramifications de
ceci font que l'utilisation de ces instructions devraient (&agrave;
mon humble avis) &ecirc;tre limit&eacute;e aux pilotes de
p&eacute;riph&eacute;riques plut&ocirc;t qu'aux applications.</p>
<p>Ces nouvelles possibilit&eacute; de lecture et &eacute;criture
au niveau octet signifient que de futurs chipsets pourront
supporter un espace d'entr&eacute;es/sorties contig&uuml;.</p>
<h2><a name="s9">9. Le PALcode</a></h2>
<p>Cet emplacement est destin&eacute; &agrave; une section
expliquant le PALcode. Je l'&eacute;crirai s'il y a suffisemment
d'int&eacute;r&ecirc;t.</p>
<h2><a name="s10">10. Portabilit&eacute;</a></h2>
<p>La possibilit&eacute; de faire tourner Linux sur n'importe
quelle machine Alpha est g&eacute;n&eacute;ralement limit&eacute;e
par votre possibilit&eacute; d'obtenir des informations sur les
d&eacute;tails sanglants de ses arcanes. Puisque des portages de
Linux existent pour les cartes m&egrave;res EB66, EB64+ et EB164,
tous les syst&egrave;mes bas&eacute;s sur les 21066, 21064/APECS et
21164/ALCOR devraient pouvoir faire tourner Linux avec tr&egrave;s
peu voire aucune modification. La principale diff&eacute;rence
entre toutes ces cartes m&egrave;res est la fa&ccedil;on dont elles
diffusent les interruptions. Il y a trois sources d'interruptions
:</p>
<ul>
<li>p&eacute;riph&eacute;riques int&eacute;gr&eacute;s</li>
<li>p&eacute;riph&eacute;riques PCI</li>
<li>p&eacute;riph&eacute;riques ISA</li>
</ul>
<p>Tous les syst&egrave;mes utilisent un syst&egrave;me de pontage
d'entr&eacute;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&eacute; pour supporter les
p&eacute;riph&eacute;riques anciens ou basse vitesse). Le SIO
contient la traditionnelle paire de 8259 cha&icirc;n&eacute;s.</p>
<p>Certains syst&egrave;mes (par exemple le NoName) diffusent leurs
interruptions via le SIO vers le processeur. Certains
syst&egrave;mes ont un contr&ocirc;leur d'interruptions
s&eacute;par&eacute; et diffusent toutes les interruptions PCI plus
l'interruption SIO (sortie du 8259) via ce contr&ocirc;leur, et
toutes les interruptions ISA via le SIO.</p>
<p>Les autres diff&eacute;rences entre ces syst&egrave;mes
comprennent :</p>
<ul>
<li>de combien d'emplacements ils disposent</li>
<li>quels sont les p&eacute;riph&eacute;riques PCI
int&eacute;gr&eacute;s</li>
<li>si la ROM de d&eacute;marrage est en m&eacute;moire flash ou en
EPROM</li>
</ul>
<h2><a name="s11">11. Plus d'informations</a></h2>
<p>Toutes les conceptions de cartes d'&eacute;valuation et de
cartes m&egrave;res de DS sont libres de droits et la documentation
compl&egrave;te pour une conception co&ucirc;te environ 50$
(300FF). Cela comprend tous les sch&eacute;mas, les sources des
parties programm&eacute;es, les feuilles d'informations du
processeur et du chipset. Les kits de documentation sont
disponibles aupr&egrave;s des distributeurs de Digital
Semiconductor. Je ne sugg&egrave;re pas de vous pr&eacute;cipiter
aller l'acheter, mais je veux faire remarquer que ces informations
sont disponibles.</p>
<p>J'esp&egrave;re que cela vous a &eacute;t&eacute; utile. Les
commentaires, mises &agrave; jour, suggestions d'extension sont
&agrave; envoyer &agrave; <a href=
"mailto:neal.crook@reo.mts.digital.com">Neal Crook</a>.</p>
<h2><a name="s12">12. R&eacute;f&eacute;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>