• Aucun résultat trouvé

J'rilndie dans co chapitre l ' i m p l a n t a t i o n du microprocesseur RISC AM29000 sur un maître Fastbns. Après un<i brève description do ce module appelé SISIFUS je décris la réalisation d'un premier prototype et les résultats obtenus, puis les améliorations que SISIFUS pounra.it apporter dans le système d'acquisition du Détecteur E x t e r n e de Delphi.

3.1 Pourquoi le 29000 ?

Le A M29000 (29K pour les initiés) est un microprocesseur de type RISC1. Le terme RISC désigne une architecture particulière qui est le résultat de plusieurs compromis entre les aspects ma.tériel et logiciel.

Voyons comment ces deux aspects s'articulent, a u t o u r d'une architecture RISC et pourquoi cette dernière permet d'a.ugmenter les performances des microprocesseurs.

3.1.1 L'architecture RISC

II y a quelques années, l'évolution défi architectures de microprocesseurs était dominée par la présence de Familles de processeurs de piIH en plus complexes. Afin de préserver les logiciels exis-t a n exis-t , l'archiexis-tecexis-ture CISC2 a évolué vers l'addition graduelle de microcode de complexité croissante.

L'intention é t a i t de produire le meilleur s u p p o r t p o u r les langages de programmation évolués et les systèmes d'exploitation puisque les progrcs de la technologie permettait de fabriquer des circuits

1RISC : Hrducpd Inslrurtion ScI. Cniiipnlci

2CISC : Complnx liwtnirlion Set Computci

Ifi

Ii'accès aux mémoires de la c a r t e me e

inl.'grés do plus on plus eompliqués. Cotlo escalade sans lin TuI brisée par l ' a p p a r i t i o n des pas le but do l'architecture. RISC mais p l u t ô t un (1IFeI secondaire des techniques utilisées pour accroître la. performance.

La variable essentielle pour mesurer la p e r f o r m a n c e d ' u n système est le temps que Io processeur mol, pour s'acquitter d'une tâche. Il peut être décomposé de la façon suivante :

temps tnn.p.i cy<:l,..i instructions_ . ._ \ç . . . y .

ThOUMIMI

0L

AMlMOO MOOO HOM MM* CUPPCH WX WX 26 Mhz 6 MhZ 26 Mhz 10 MhZ 33 Mhz 11/760 11/760

Figure 3.1: Performance.» mmpnrcc.n de divers processeur».

correspondant s'arrangenl-ils pour placer n n o ou plusieurs instructions entre la Ire turc d ' u n mol en mémoire et son utilisation.

instructions/tâche

C'est le point faible des microprocesseurs RISC. Les instructions du RISC sont beaucoup plus simples que celles des CISC et il en f a u t n n nombre plus important pour une Lâche équivalente, (''est le rôle des compilateurs de réduire ce tonne au m i n i m u m . Il s'avère que les compilateurs utilisent asse/, peu IeR instructions complexes des CISC parce qu'elles correspondent mal aux besoins des lan-gages évolués. Les compilateurs préfèrent les i n s t r u c t i o n s simples a y a n t peu d'effets secondaires et en ce sens sont faits pour s'entendre avec les microprocesseurs RISC. Les techniques d'optimisation portent essentiellement sur l ' a t t r i b u t i o n des registres, l'élimination des redondances, l'optimisation des boucles et, bien sur, l'organisation du code p o u r une utilisation efficace du pipeline.

Afin de comparer les performances de divers processeurs, des bancs de lests sont utilisés. Il s'agit de différents programmes dits "benchmarks" d o n t les temps d'exécution par différents processeurs servent de comparatif. La figure 3.1 montre les performances du 29K comparées à celles des pro-cesseurs R2000, (Î8020, S038G, C L I I M ' K R ri VAX pour le b e n c h m a r k Dhrystone 1.1. L'échelle ver-ticale concerne le nombre d ' i n s t r u c t i o n s o.» éditées d u r a n t un temps donné. On note une différence frappante entre les performances du 2!)K ft tin 08020 malgré l'utilisation de la même fréquence d'horloge interne. •

3.1.2 Le microprocesseur AM29000

C'est le microprocesseur IMSC développé par la société A M l ) . Il fut le premier IMSC commer-cialisé. Ce paragraphe décrit rapidement ses c.iraclérisliquos principales et comment elles permet-tent d ' a t t e i n d r e la performance d ' u n e i n s t r u c t i o n par cycle d'horloge. Une description détaillée se trouve da ns le m a n u e l de l ' u t i l i s a t e u r [20],

• Pipeline d'instructions à q u a t r e étages :

L'exécution d'une i n s t r u c t i o n csl décomposée en q u a t r e étapes successives. L'instruction est d'abord lue tlans la mémoire d ' i n s t r u c t i o n , elle est ensuite décodée, puis exécutée, et le résultat est rangé à sa place. A chaque coup d'horloge, •( instructions sont exécutées en parallèle, c h a c u n e étant dans une é t a p e différente, (voir figure 3.2). Ainsi, en moyenne, le exécute une i n s t r u c t i o n par cycle si il n'y a pas tie branche?nonl.

•18

i emps

Figure '5.2: I'rinr.ijir tic fonrlionrx ninil (In pijulinc d'inxlrurtinnu.

• Cache do cible dp b r a n o h c i n o n l do 512 odels : appropriée. l,e bus d'adresse rsl ainsi libéré p o u r IH sélection des données à transférer.

• Conditions de branchement. :

Les tests de b r a n d i e m e n t soul eft'oolites non pas sur les b i t s du registre code condition tuais sur u n e variable logique, r é s u l t a t (Finie comparaison e( coiileniio d a n s un registre. Ainsi, les i n s t r u c t i o n s do comparaison et de b r a n c l i e i n o t i l n'ont plus besoin d'être consécutives. Ceci facilite l'optimisation du code par les compila l e u r s .

• 192 registres à usage général :

Ces registres p e u v e n t être chargés en bloc avec îles données rangées de façon séquentielle en mémoire, l / u l i l i s a t i o n du c o n t e n u do ces registre-^ comme opérande permet un gain de temps

3.3: Anhitrrhirc qlobalp. dr. SISITUS opératoire rogislre r é s u l t a i

8 bits 8 bits

rpgisl.ro opérande I 8 bits

registre opérande 2 1 ou donnée (8 bits)_]

Adressage simplifié :

L'unique modo d'adressage esf l'adressage indirect par rapport à un registre ce qui élimine )c>

temps de calcul do l'adresse de la d o n n é e d a n s la mémoire externe.

3.2 Fonctionnalité et architecture du module

Ce p a r a g r a p h e rappelle les principales ''aractérisliques du mailro Faslbus SISIFUS ot pour plus de détails on se reportera à l'article "A l'aslbus master based on a RISC microprocessor" [2I].

La. puissance do ,SISIFUS est basée s u r le microprocesseur A M29000 et, du point de vue Fastbus, SISlFUS est m a î t r e et esclave s u r les d e u x segments Fasl.bus, avec la pa.rticularité de pouvoir exécuter des "(flock Mover" ( I t M ) . La figiiif .1.,'I présente les q u a t r e parties principales de SJSIFUS : les ports Faslbus, le BM, l'unité de Iraileinent el les séquoncours (un par segmenl). II

3.2.1 Les ports Fastbus

Los d e u x ports Fastbus c o m p r e n n e n t c l i a c n n u n coupleur qui transforme le protocole Fastbiis on logique plus amicale et la mémoire dédiée M I I X échanges Fastbus (128 Koctets). Les deux coupleurs maître/esclave'' i d e n t i q u e s , sont c n n s l i l nés de I I boîtiers l'Ai, (Programmable Array Logic) dont 7 pour la p a r t i e mailro, et de c i r c u i t s de conversion FXH//TTL.

1. Fonctionnement en esclave

SISIFUS est capable de répondre à t o u t e s les opérations Fastbus engendrées par un maître à l'exception du transfert de blocs en mode pipeline. L'espace données à. une taille de 25fi

1I c rnuplriir psrlavp, c.il haïr sur relui <li> (!. KnMiimil [22).

SO

Figure 3.4: .\irliilcctiirr dr. l'imitt dp. traitement

Koclels pi 1'espac.c CSR rontioiil IPS registres C1S I t O , C S R I ct CSRS ainsi quo1 l'espace ("SU programme (2f>f> Ko) dôdié a u e h a r g e m e n l des p r o g i a m m e s exécutables par IP 29K (mémoire d'instructions d u 29K).

2. Fonctionnement en m a i l r e

Ta.nl sur le câble q u o sur IP châssis, i o n i c s les f o n d i o n s s t a n d a r d sont disponibles à l'exception du transfert de blocs en mode p i p e l i n e . S ' a j o u t e à cela la fondion "Block Mover" ( B M ) q u i permet le t r a n s f e r t de blocs de données d i r ( d , e m e n l entre d e u x esclaves au r y t h m e du plus lent. D ' o r d i n a i r e , ce type de U a n s f e r l (1St e f l e d i i é en deux «lapes : t r a n s f e r t de. l'esclave

"source" vers un m a î t r e puis de ce m n i l r e vers l'esclave "destination". Le BM peut réduire le temps de t r a n s f e r t d ' u n f a d e u r d o u x . Une copie des données est conservée d a n s une mémoire accessible en l e c t u r e par l ' u n i t é de ( r a i l e m e n t . l ' n b i t du registre d ' é t a t , que le 28K doit (ester pour savoir si le t r a n s f e r t est t e r m i n é , est p r s i t i o n n é d u r a n t le déroulement de l'opération.

La direction des opérations Fast bus est assurée i m l i l ! e i e m m c n l par le 2!IK (mode d i r e c t ) ou par les sé.qneiu-piirs (mode liste) s a u f d a n s Ic cas du BM q u i peut être lancé u n i q u c m e n i par ie processeur.

3.2.2 L'unité Ho traitement

('(imposée du 2!)K et de ses mémoires ( v o i r figure 3.1), elle c o n s t i t u e le ea'iir du module. La mémoire m o r t e (2.r)fî l(oclels) c o n t i e n t le p r o g r a m m e m o n i t e u r et les r o u t i n e s d ' i n i t i a l i s a t i o n qui sont recopiés en m é m o i r e vive à la mise sous t e n s i o n , '"elle d e r n i è r e (2.10 Koclels) c o n t i e n t également les p r o g r a m m e s de l ' u t i l i s a t e u r chargés soil p;ir l ' i s t b n s soil par la l i g n e série r e l i a n t le m o d u l e à un processeur hôte.

L ' u n i t é de t r a i t e m e n t est chargée, en p l u s du I r a i l e i i i P i i l des données, du pilotage des ports Faslbus et. de la c o o r d i n a t i o n des diverses p a r l i e s :hi m o d u l e .

I. Mode F a s l b u s direct

Lorsque le 2!)K pilote un des p o r t s m a i l r e ; I V l b u s , son bus d'adresse est connecté a u x rliâssis s r i i l c m c M l

PO

RT FASTBUS

lignes de contrôle du porl Fast bus cl son l)iis do données a u x lignes d'adresse/donnée de telle sorte q u ' u n e opération F'aslbus est s i m p l e m e n t une lecture (ou écriture) à une adresse prédéterminée, les s i g n a u x de emit rôle Fastbus t e n a n t lieu d'accusé de réception. Le BM peut être d é m a r r é u n i q u e m e n t par le 2!>K après q u ' i l a a t t a c h é les deux esclaves et sélectionné leurs adresses i n t e r n e s . Le t r a n s f e r t se dér.mle de façon a u t o n o m e et le 29K est libre de poursuivre l'exécution de ses instructions (par evemple le t r a i t e m e n t des données transférées lors du BM précédent).

2. Lancement du modo liste

Lo processeur a aussi la charge do l a n c e r l'exécution des listes contenues dans les séqucnceiirs.

Il doit au préalable reclierclier l'adresse de la liste d a n s la table do correspondance bâlie à l'initialisation lors du c h a r g e m e n t des listes d a n s les séqucnceurs.

3.2.3 Les séquenceurs

DOIIX séquoncoiirs i d e n t i q u e s (châssis et cable) assistent le 2SK pour les fonctions maîtres. Ils c o m p r e n n e n t d o u x blocs de mémoire d ' u n e p r o f o n d e u r de Ifi Koctels p e r m e t t a n t de générer des

blocs synchronisés. Lo mol lu d a n s l'esclave source est rangé temporairement dans nn registre puis transféré du registre vers l'esclave " d e s l i n a i i o n " do façon à. pouvoir i n i t i e r le transfert s u i v a n t sans