  Breve introduction aux systemes et processeurs Alpha
  Neal  Crook, Digital Equipment (Publication: David Mosberger
  <mailto:davidm@azstarnet.com>)  (Adaptation  Francaise   par
  Christophe Vallat (miodrag@mygale.org))
  V0.11, 6 Juin 1997

  Ce  document  est  un  rapide apercu des processeurs et systemes Alpha
  existants.  Il y a un peu de parti pris, a  cause  de  mon  experience
  personnelle. Bien que je sois un employe de Digital Equipment Corpora-
  tion, il ne s'agit pas d'un d'un document officiel de Digital  et  les
  opinions exprimees sont les miennes, pas celles de Digital.

  11..  QQuu''eesstt--ccee qquuee AAllpphhaa ??

  "Alpha"  est le nom donne a l'architecture RISC 64 bits de Digital. Le
  projet Alpha commenca a Digital a 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 premiere architecture RISC produite par Digital, mais
  ce  fut la premiere a etre mise sur le marche. Quand Digital a annonce
  Alpha en mars 1992, elle a pris la decision d'entrer sur le marche des
  composants electroniques en vendant des microprocesseurs Alpha.

  Alpha  est parfois designe par Alpha AXP, pour de vieilles et obscures
  raisons qu'il est inutile de preciser. Il suffit  de  dire  que  c'est
  exactement la meme chose.

  22..  QQuu''eesstt--ccee qquuee DDiiggiittaall SSeemmiiccoonndduuccttoorr ??

  Digital   Semiconductor   <http://www.digital.com/info/semiconductor/>
  (DS) est la  section  commerciale  de  Digital  Equipment  Corporation
  (Digital  -  nous  n'aimons  pas le sigle DEC) qui vend les composants
  electroniques. Parmi les produits de Digital figurent les processeurs,
  les chipsets associes, les pontages PCI-PCI et les composants PCI pour
  la communication et le multimedia.

  33..  PPrroocceesssseeuurrss AAllpphhaa

  Il y a actuellement 2 generations de base de  processeur  implementant
  l'architecture Alpha :

  +o  EV4

  +o  EV5

  Les  avis different quant au sens de "EV" (note : la vraie reponse est
  bien entendu "Electro Vlassic" ``[1]''), mais le chiffre represente la
  premiere  generation  de  technologie CMOS de Digital avec laquelle le
  processeur a ete concu. Ainsi, EV4 a ete initialement concue en CMOS4.
  Au fil du temps, un processeur tend a trouver une nouvelle jeunesse en
  etant optiquement retrecie dans la nouvelle generation de  CMOS.  EV45
  est  donc  la  base  EV4 concue en CMOS5. Il y a une grande difference
  entre retrecir une conception pour une technologie particuliere et  la
  reconcevoir  pour  cette  technologie (mais je ne veux pas entrer dans
  les  details).  Il  y  a  encore  quelques  variantes  :   la   CMOS4S
  (retrecissement optique de la CMOS4) et une CMOS5L.

  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.

  Pour faire correspondre ces bases de processeur aux _p_u_c_e_s nous avons:

     2211006644--115500,,116666
        EV4 (initialement), EV4S (maintenant)

     2211006644--220000
        EV4S

     2211006644AA--223333,,227755,,330000
        EV45

     2211006666
        LCA4S (base EV4, avec coprocesseur EV4)

     2211006666AA--223333
        LCA45 (base EV4, mais avec coprocesseur EV45)

     2211116644--223333,,330000,,333333
        EV5

     2211116644AA--441177
        EV56

     2211226644
        EV6 <http://www.mdronline.com/report/articles/21264/21264.html>

  La  base  EV4  est  un  noyau  double-ecoulement  (il  peut  traiter 2
  instructions processeur par cycle d'horloge) super-pipeline  avec  une
  unite  de calcul entier, une unite de calcul flottant et prediction de
  branchement. Il a des bus de donnees internes de 64 bits et des caches
  de 8Ko etroitement couples, un jeu de chaque pour les instructions, et
  pour les donnees. Les  caches  sont  en  ecriture  immediate  ("write-
  through").

  La  base  EV45  a  quelques  ameliorations par rapport a la base EV4 :
  l'unite de calcul flottant est legerement  amelioree,  et  les  caches
  sont de 16Ko. (Note : Neal Crook a indique dans un courrier separe que
  les  modifications  de  l'unite  de  calcul  flottant  ameliorent  les
  performances  de la division. La FPU de l'EV4 prend 34 cycles pour une
  division en simple precision et 63 cycles pour une division en double-
  precision  (quelles que soient les donnees). En comparaison, le FPU de
  l'EV45 prend generalement 19  cycles  (34  au  pire)  pour  la  simple
  precision  et  29  cycles  (63  au  pire) pour la double-precision (en
  fonction des donnees).)

  La base  EV5  est  un  noyau  quadruple-ecoulement,  egalement  super-
  pipeline  etc  etc. Il a des caches de 8 Ko etroitement couples, un de
  pour les instructions et un pour  les  donnees.  Ces  caches  sont  en
  ecriture immediate. Il dispose egalement d'un cache de deuxieme niveau
  de 96 Ko sur le processeur (le Scache) qui est  associatif  3-morceaux
  et  en  ecriture  differee  ("write back").  Le gain de performance de
  l'EV4 a l'EV5 est superieur au seul gain genere par l'augmentation  de
  la  frequence.  En  plus  des  caches  plus  grands  et  du quadruple-
  ecoulement, il y a aussi des  ameliorations  de  sa  microarchitecture
  pour   reduire   les   temps  d'attente  producteur/consommateur  dans
  certaines voies.

  La base EV56 est fondamentalement la meme microarchitecture que l'EV5,
  mais  ajoute  quelques  nouvelles  instructions  pour  la  lecture  et
  l'ecriture sur 8  et  16  bits  (cf.  section  ``Les  octets  et  leur
  multiples'').  Elles  sont  principalement  destinees  aux  pilotes de
  peripheriques. La base EV56 est realisee en CMOS6, en 2,0 Volts.

  Le 21064 a ete annonce 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 deuxieme niveau, avec une taille de bloc de  256
  bits  (2  fois  la  taille  du  bus).  La  vitesse  de  ce  Bcache est
  entierement configurable logiciellement.  Le  21064  peut  aussi  etre
  configure  pour  utiliser  un  bus  externe  de 64 bits (mais je crois
  qu'aucun  systeme  n'utilise  ce  mode).  Le  21064  n'impose   aucune
  contrainte  sur  le  Bcache,  mais  il  est  generalement configure en
  ecriture differee. Le  21064  contient  un  systeme  permettant  a  du
  materiel  separe de maintenir la coherence entre le Bcache et le cache
  interne, mais c'est complexe.

  Le 21066 utilise la base EV4 et integre un controleur de memoire et un
  pontage  de  bus  PCI.  Pour  economiser des broches, le controleur de
  memoire 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 controleur de memoire supporte le BCache et la DRAM
  externe.   La  vitesse  du  Bcache  et  de  la  DRAM  est  entierement
  configurable logiciellement, et peut etre controle  a  la  vitesse  du
  processeur.  La decomposition en 4 acces pour remplir un bloc de cacte
  n'est pas si mauvais qu'on peut le penser parce que l'acces a la  DRAM
  est  fait  en mode page.  Malheureusement, le controleur de memoire ne
  supporte ni les types de DRAM esoterique (SDRAM, EDO ou BEDO), ni  les
  RAMs  de  cache  synchrone.  L'interface  du  bus  PCI est entierement
  compatible avec PCI 2.0 et tourne jusqu'a 33 MHz.

  Le 21164 a un bus de donnees de 128  bits  et  supporte  les  lectures
  partielles,  avec jusqu'a deux lectures en cours en meme temps (ce qui
  permet une utilisation a 100% du bus de donnees  dans  les  meilleures
  conditions  de  reve, i.e. il est possible theoriquement de transferer
  128 bits de donnees a chaque cycle du  bus).  Le  21164  supporte  une
  connexion  facile d'un cache de troisieme niveau (Bcache) et a tout le
  systeme pour permettre a du materiel externe de maintenir la coherence
  de tous les caches. De cette facon, les conceptions de multiprocesseur
  symetrique sont 'faciles'.

  Le 21164A a ete annonce en octobre 1995. Il utilise la base EV56.  Son
  brochage est compatible avec celui du 21164, mais necessite des lignes
  d'alimentation separees ; toutes les broches qui  etaient  +3,3  Volts
  sur  le 21164 ont ete divisees en deux groupes ; un groupe fournit 2,0
  Volts au coeur du processeur, l'autre fournissant 3,3 Volts aux unites
  d'entrees/sorties.    Contrairement  aux  anciennes  conceptions,  les
  broches  du  21164A  n'acceptent  pas  5  Volts.  Le  resultat  de  ce
  changement  est  que les systemes 21164 ne peuvent en general pas etre
  mis a jour en 21164A (bien qu'il soit relativement simple de concevoir
  un  systeme  21164A  qui  puisse  aussi  accepter un 21164). Le 21164A
  dispose egalement de quelques nouvelles  broches  pour  supporter  les
  lectures  et  ecritures  sur  8  et  16 bits. Il ameliore egalement le
  support du 21164 pour les SRAMs synchrones qui composent le Bcache.

  44..  PPeerrffoorrmmaanncceess ccoommppaarreeeess dduu 2211006644 eett dduu 2211006666

  Le 21064 et le 21066 ont la meme base  (EV4).  Si  le  meme  programme
  tourne  sur  un  21064  et  un  21066,  a  la meme frequence, alors la
  difference de performance provient uniquement  de  la  bande  passante
  entre  le  Bcache et la memoire. Du code qui tombe principalement dans
  les caches _i_n_t_e_r_n_e_s tournera aussi rapidement. Il  y  a  2  principaux
  tueurs de performances :

  1. Du  code  qui  ecrit  enormement. Malgre les buffers en ecriture du
     21064 et du 21066 pour economiser  certains  delais,  du  code  qui
     ecrit enormement sera etrangle par la bande passante en ecriture du
     bus systeme. Cela est du au fait que les cache du  processeur  sont
     en ecriture immediate.

  2. 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 etre
     faite en memoire (Et du coup, puisque les caches du processeur sont
     en  ecriture immediate, via le Bcache). (Note : il semble que l'EV4
     et l'EV45 peuvent effectuer la conversion via le premier  cache  de
     donnees (Dcache), a partir du moment ou la memoire est cachee. Dans
     ce cas, l'ecriture faite par la sequence  de  conversion  mettra  a
     jour  le  Dcache  et  la lecture qui va suivre sera, dans certaines
     circonstances, capable de lire la  valeur  du  Dcache,  evitant  un
     couteux  transfert  depuis  le  Bcache.  En  particulier, il semble
     meilleur d'executer les instructions stq/ldt ou stt/ldq dos a  dos,
     ce qui est plutot contraire a l'intuition.)

  Si vous effectuez la meme comparaison entre un 21064A et un 21066A, il
  y a un facteur supplementaire du aux differentes tailles des Icache et
  Dcache entre les deux processeurs.

  Maintenant,  le  21164 resoud ces deux problemes : il atteint des _b_i_e_n
  meilleures bandes passantes du bus systeme (malgre le meme  nombre  de
  broches  de  signal - oui, je _s_a_i_s que c'est a peu pres deux fois plus
  qu'un 21064, mais les supplementaires sont l'alimentation et la  masse
  !  (oui,  reellement!!))  et  il a des caches en ecriture differee. Le
  seul probleme restant est la reponse a la question "combien  il  coute
  ?"

  55..  QQuueellqquueess nnootteess ssuurr lleess ffrreeqquueenncceess

  Tous  les  processeurs  Alpha  actuels  utilisent des horloges a haute
  vitesse, parce que leur  microarchitecture  a  ete  concue  comme  "en
  cycles  courts". Cependant, du coup, aucun des bus systemes n'a besoin
  de tourner a de telles vitesses  :

  +o  sur les 21066(A), 21064(A) et 21164 la  vitesse  du  cache  externe
     (Bcache) est entierement programmable, a la resolution de l'horloge
     du processeur. Par exemple, pour un processeur a 275 MHz, le  temps
     d'acces en lecture du Bcache peut etre controle avec une resolution
     de 3,6 ns.

  +o  sur les 21066(A), la vitesse des DRAM est entierement programmable,
     a  la resolution de l'horloge du processeur (_p_a_s celle du bus PCI).

  +o  sur les 21064(A) et 21164(A), la frequence du bus  systeme  est  un
     sous-multiple  de  cele  du processeur. La plupart des cartes meres
     21064 utilisent une horloge du bus systeme a 33 MHz.

  +o  Le systemes a base de 21066 peuvent faire  tourner  le  bus  PCI  a
     n'importe  quelle  frequence par rapport au processeur. En general,
     le bus PCI tourne a 33 MHz.

  +o  Les systemes qui utilisent les chipset APECS (cf. section ``'') ont
     toujours  la  frequence du bus processeur egale a celle du bus PCI.
     Cela signifie que les deux bus tendent a tourner  soit  a  25  MHz,
     soit  a  33  MHz  (puisque  ce  sont  les frequences qui sont sous-
     multiples de celle  du  processeur).  Sur  les  systemes  APEC,  la
     vitesse  du  controleur  de DRAM est programmable logiciellement en
     fonction de la frequence du bus processeur.

  NNoottee:: quelqu'un a suggere qu'il obtenait de mauvaises performances sur
  un systeme 21066 parce que le controleur de memoire du 21066 ne tourne
  qu'a 33 MHz. En fait, ce sont  soulement  les  systemes  super-rapides
  21064A  qui  ont des controleurs de memoire qui tournent 'seulement' a
  33 MHz.

  66..  LLeess cchhiippsseett

  DS vend deux chipsets de support processeur. Le chipset 2107x (denomme
  APECS)  supporte  les  21064(A).  Le  chipset  2117x  (denomme  ALCOR)
  supporte les 21164. Il y aura aussi un chipset 2117xA  (denomme  ALCOR
  2) qui supportera le 21164A.

  Ces  deux  chipsets  fournissent  des  controleurs  de  memoire et des
  pontages PCI pour leur processeur. APECS fournit un pontage PCI de  32
  bits,  ALCOR  fournit un pontage PCI de 64 bits qui (conformement a la
  specification PCI) peut supporter des peripheriques PCI aussi bien  32
  bits que 64 bits.

  APECS  consiste  en  6  puces  de  208 broches (4 registres de 32 bits
  (DECADE), 1 controleur systeme (COMANCHE), 1 controleur  PCI  (EPIC)).
  Il  fournit  un  controleur  de  DRAM (bus memoire de 128 bits) et une
  interface PCI. Il effectue egalement tout le travail de maintien de la
  coherence  quand  un  peripherique PCI effectue une operation DMA vers
  (ou depuis) la memoire.

  ALCOR consiste en 5 puces (4 registres de 64 bits (Data  Switch,  DSW)
  208  broches  PQFP  et  1  controleur (Control, I/O Address, CIA) - un
  boitier plastique de 383 broches). Il fournit un  controleur  de  DRAM
  (bus memoire de 256 bits) et une interface PCI.  Il effectue egalement
  tout le travail de maintion de coherence  quand  un  peripherique  PCI
  effectue une operation DMA vers (ou depuis) la memoire.

  Il  n'existe pas de chipset supportant le 21066, puisque le controleur
  de memoire et le pontage PCI sont integres dans le processeur.

  77..  LLeess ssyysstteemmeess

  Le groupe applications de  DS  produit  des  exemples  de  conceptions
  utilisant  les  processeurs  et  leurs  chipsets  associes.  Il s'agit
  typiquement  de  cartes  meres  de  format  PC-AT,  avec  toutes   les
  fonctionnalites  que  vous  trouverez  typiquement  sur une carte mere
  Pentium haut  de  gamme.  Initialement,  ces  exemples  de  conception
  etaient  destines  a  etre  utilises  comme  point  de depart pour des
  tierces parties pour concevoir des cartes meres.  Ces  conceptions  de
  premiere  generation  furent nommees Evaluation Boards (EB).  Comme la
  quantite de  travail  necessaire  pour  concevoir  une  carte  mere  a
  augmente  (a  cause  de la montee en frequence des processeurs et pour
  respecter les regles sur l'emission de frequences  radio)  l'accent  a
  ete  mis  sur  la  conception  de  cartes  meres  utilisables pour une
  production en masse.

  Les groupes systeme de Digital ont produit  plusieurs  generations  de
  machines  a  base  de  processeurs  Alpha.  Certains  de  ces systemes
  utilisent des chipsets  concues  par  les  groupes  systeme,  d'autres
  utilisent  les  chipsets  de  DS.  Dans  certains  cas,  les  systemes
  utilisent une combinaison des deux.
  Plusieurs tierces  parties  ont  construit  des  systemes  a  base  de
  processeurs  Alpha.  Certaines  de  ces  entreprises  ont  concu leurs
  systemes a partir de zero, d'autres ont utilise les chipsets de DS, ou
  ont  copie/modifie  les  exemples  de  conception de DS, ou simplement
  assemblent leurs systemes a partir des cartes fabriquees et  verifiees
  par DS.

  L'EB64  : Conception obsolete utilisant un 21064 avec un controleur de
  memoire implemente en logique  programmee.  Entrees/Sorties  realisees
  par de la logique programmee pour s'interfacer a un chipset de pontage
  486<->ISA. Ethernet, SuperI/O (2S, 1P, LD) integre sur la carte  mere,
  bus ISA. Taille PC-AT. Alimentation standard PC.

  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
  partage).  Supporte des SIMMs de DRAM 36 bits. Le bus ISA est gere par
  un chipset de pontage Intel Saturn. Controleur  SCSI  (NCR  810  PCI),
  ethernet   (Digital  21040),  controleur  clavier  et  souris  (PS/2),
  SuperI/O (2S, 1P, LD), memoire CMOS et horloge sur la carte mere.  ROM
  de demarrage en EPROM. Taille PC-AT. Alimentation standard PC.

  L'EB66  :  Utilise  un  21066  ou un 21066A. Le sous-systeme d'entrees
  sorties  est  identique  a  celui  de  l'EB64+.  Taille  baby   PC-AT.
  Alimentation  standard  PC.  Les schemas de l'EB66 furent publies dans
  des publicites vantant le 21066 comme "le premier  microprocesseur  au
  monde  avec  PCI integre" (pour les amateurs d'anecdotes : il y a deux
  versions de cette publicite - j'ai dessine les circuits  et  ecrit  le
  boniment  dans  la  premiere version, et des americains ont malmene le
  boniment pour la deuxieme version)

  L'EB164 : Utilise un 21164 et ALCOR. Bus ISA et  PCI  (3  emplacements
  ISA,  2  emplacements PCI 64 bits (dont un partage avec un emplacement
  ISA) et 2 emplacements PCI 32 bits). Emplacement SIMM pour le  Bcache.
  Le  sous-systeme d'entrees sorties fournit un controleur SuperI/O (2S,
  1P, LD), un controleur clavier  et  souris  (PS/2),  memoire  CMOS  et
  horloge.  ROM  de  demarrage en memoire flash. Taille PC-AT. Necessite
  une alimentation en 3,3 Volts.

  L'AlphaPC64  (aussi  nommee  Cabriolet)  :  derive  de  l'EB64+   mais
  desormais  en taille baby PC-AT avec une ROM de demarrage en flash, et
  plus de controleur SCSI et ethernet sur la carte mere. 3  emplacements
  ISA,  4  emplacements  PCI  (dont un partage avec un emplacement ISA),
  emplacement SIMM pour le Bcache. Necessite  une  alimentation  en  3,3
  Volts.

  L'AXPpci33   (aussi  nommee  NoName),  est  basee  sur  l'EB66.  Cette
  conception est produite par le groupe technique OEM de Digital (TOEM).
  A  base  d'un  processeur  21066 tournant a 166 MHz ou 233 MHz. Taille
  baby PC-AT, necessite une alimentation standard  PC.   5  emplacements
  ISA  et  3 emplacements PCI (dont un partage avec un emplacement ISA).
  Il existe deux versions, avec un connecteur soit PS/2, soit  DIN  pour
  le clavier.

  D'autres  cartes  meres  a  base  de 21066 : la plupart, sinon toutes,
  disponibles sur le marche sont basees  sur  l'EB66  -  il  n'y  a  pas
  beaucoup  d'options  dans  la conception d'un systeme 21066, parce que
  tout le controle est fait par les puces.

  Multia (aussi nomme Universal Desktop Box) : il  s'agit  d'un  systeme
  boitier  bureau  tres  compact a base de 21066. Il comporte deux ports
  PCMCIA, une carte graphique 21030 (TGA), une carte ethernet  21040  et
  un  controleur SCSI NCR 810, ainsi qu'un lecteur de disquettes, 2 port
  serie et un port parallele. Ses capacites  d'extension  sont  limitees
  (un  emplacement  PCI) a 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 a base de 21066A ou de Pentium
  sont aussi disponibles).

  DEC PC 150 AXP (aussi nomme Jensen) :  c'est  un  tres  vieux  systeme
  Digital  -  l'un  des  systemes Alpha de premiere generation. Il n'est
  mentionne ici que parce qu'un certain nombre de ces systemes  semblent
  etre disponibles sur le marche de l'occasion. Le Jensen est un systeme
  grande tour qui utilise un 21064 a 150 MHz (des versions plus recentes
  utiliserent  des  processeurs plus rapides mais je ne suis pas sur des
  vitesses). Il utilisait de la logique programmee  pour  interfacer  le
  processeur a un pontage 486<->EISA.

  D'autres  systemes a base de 21064(A) : il existe encore 3 ou 4 autres
  conceptions de cartes mere (sans compter les _s_y_s_t_e_m_e_s Digital) et tous
  ceux que je connais sont derives de l'EB64+. Parmi ceux-ci :

  +o  EB64+   (certains   vendeurs   l'ont   assemble   et   vendu   sans
     modifications); taille AT.

  +o  Carte mere Aspen Systems : derivee de l'EB64+ ; taille baby AT.

  +o  Carte serveur Aspen Systems : beaucoup d'emplacements  PCI  (inclut
     un pontage PCI).

  +o  AlphaPC64 (aussi nommee Cabriolet), taile baby AT.

  D'autres systemes a base de 21164(A) : le seul que je connaisse qui ne
  soit pas un simple clone d'un EB164 est un systeme de DeskStation.  Ce
  systeme   est   construit   avec   un   controleur   de   memoire   et
  d'entrees/sorties proprietaire de DeskStation. Je ne sais  pas  quelle
  est leur attitude vis-a-vis de Linux.

  88..  LLeess oocctteettss eett lleeuurr mmuullttiipplleess

  Quand  l'architecture  Alpha  fut  presentee,  elle  etait  unique par
  rapport aux autres architectures RISC en  empechant  les  lectures  et
  ecritures  sur 8 et 16 bits. Elle supportait les lectures et ecritures
  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 :

  1. Le support des octets dans le cache et le sous-systeme memoire tend
     a ralentir les acces pour les quantites de 32 et 64 bits.

  2. Le  support  des  octets rend difficile la creation d'un circuit de
     correction d'erreur haute-vitesse dans le cache et le  sous-systeme
     memoire.

  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 operations sur les chaines de
  caracteres (par exemples, certains tests de Byte) montrent que l'Alpha
  se comporte tres bien pour la manipulation des octets.

  L'absence  de  lectures et ecritures sur octet a des repercussions sur
  certains semaphores logiciels et sur la conception  des  sous-systemes
  d'entrees/sorties.   La   solution   de   Digital   au   probleme  des
  entrees/sorties est  d'utiliser  certaines  lignes  d'adresse  de  bas
  niveau  pour specifier la taille des donnees pendant les transferts de
  donnees, et de les decoder en masque d'octets. Cet  adressage  denomme
  "adressage clairseme" gache une partie de l'espace d'adressage et rend
  l'espace d'entrees/sorties non contigue  (j'en  dirais  plus  sur  cet
  adressage  clairseme  quand  j'aurai  fini  par  l'ecrire).  Notez que
  l'espace d'entrees/sorties, dans ce contexte, se refere a  toutes  les
  ressources  presentes  sur  le bus PCI et comprend aussi bien l'espace
  memoire PCI que l'espace d'entrees/sorties PCI.

  Avec l'apparition du 21164A, l'architecture Alpha a ete  etendue  pour
  inclure l'adressage des octets. L'execution des nouvelles instructions
  sur un  processeur  plus  ancien  declenchera  une  exception  PALcode
  OPCDEC,  pour  que  le  PALcode puisse gerer cet acces.  Cela aura une
  incidence sur les performances. Les ramifications  de  ceci  font  que
  l'utilisation  de  ces instructions devraient (a mon humble avis) etre
  limitee aux pilotes de peripheriques plutot qu'aux applications.

  Ces nouvelles possibilite de  lecture  et  ecriture  au  niveau  octet
  signifient  que  de  futurs  chipsets  pourront  supporter  un  espace
  d'entrees/sorties contigue.

  99..  LLee PPAALLccooddee

  Cet emplacement est destine a une section expliquant  le  PALcode.  Je
  l'ecrirai s'il y a suffisemment d'interet.

  1100..  PPoorrttaabbiilliittee

  La  possibilite  de  faire  tourner Linux sur n'importe quelle machine
  Alpha est generalement limitee par  votre  possibilite  d'obtenir  des
  informations  sur  les  details  sanglants de ses arcanes. Puisque des
  portages de Linux existent pour les cartes meres EB66, EB64+ et EB164,
  tous  les  systemes  bases  sur  les 21066, 21064/APECS et 21164/ALCOR
  devraient pouvoir faire tourner  Linux  avec  tres  peu  voire  aucune
  modification.  La  principale difference entre toutes ces cartes meres
  est la facon dont elles diffusent les  interruptions.  Il  y  a  trois
  sources d'interruptions :

  +o  peripheriques integres

  +o  peripheriques PCI

  +o  peripheriques ISA

  Tous  les  systemes  utilisent un systeme de pontage d'entrees/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 utilise pour
  supporter  les  peripheriques  anciens  ou  basse  vitesse).   Le  SIO
  contient la traditionnelle paire de 8259 chaines.

  Certains   systemes   (par   exemple   le   NoName)   diffusent  leurs
  interruptions via le SIO vers le processeur. Certains systemes ont  un
  controleur    d'interruptions   separe   et   diffusent   toutes   les
  interruptions PCI plus l'interruption SIO  (sortie  du  8259)  via  ce
  controleur, et toutes les interruptions ISA via le SIO.

  Les autres differences entre ces systemes comprennent :

  +o  de combien d'emplacements ils disposent

  +o  quels sont les peripheriques PCI integres

  +o  si la ROM de demarrage est en memoire flash ou en EPROM

  1111..  PPlluuss dd''iinnffoorrmmaattiioonnss

  Toutes les conceptions de cartes d'evaluation et de cartes meres de DS
  sont libres de droits et la documentation complete pour une conception
  coute environ 50$ (300FF). Cela comprend tous les schemas, les sources
  des parties programmees, les feuilles d'informations du processeur  et
  du  chipset.  Les  kits  de  documentation sont disponibles aupres des
  distributeurs de Digital Semiconductor. Je  ne  suggere  pas  de  vous
  precipiter  aller  l'acheter,  mais  je  veux  faire remarquer que ces
  informations sont disponibles.

  J'espere que cela vous a ete utile. Les commentaires,  mises  a  jour,
  suggestions    d'extension    sont    a    envoyer    a   Neal   Crook
  <mailto:neal.crook@reo.mts.digital.com>.

  1122..  RReeffeerreenncceess

  [1]
  <http://www.research.digital.com/wrl/publications/abstracts/TN-13.html>
  Bill Hamburgen, Jeff Mogul, Brian Reid, Alan  Eustace,  Richard  Swan,
  Mary  Jo  Doherty,  and  Joel  Bartlett.   _C_h_a_r_a_c_t_e_r_i_z_a_t_i_o_n _o_f _O_r_g_a_n_i_c
  _I_l_l_u_m_i_n_a_t_i_o_n _S_y_s_t_e_m_s.  DEC WRL, Technical Note 13, April 1989.

