Next: Les microprocesseurs xxx86 Up: Les microprocesseurs SPARC Previous: L'UltraSPARC

Le Sparc64

Développé par la société Hal Computer Systems, ce processeur a été annoncé en mars 1995 et devrait être commercialisé d'ici la fin de cette année. Il vise le marché des stations de travail haut de gamme et des serveurs et se place donc sur le même plan que l'UltraSPARC avec des performances comparables : 256 SPECint92 et 330 SPECfp92.

Créé en 1990 à l'initiative de Andrew Heller, Hal a rejoint le groupe Fujitsu début 1991. Cette fusion s'inscrit dans une politique globale de la part de Fujitsu d'être présent sur le marché des processeurs milieu et haut de gamme. Effectivement, déjà propriétaire de Ross Technology, Fujitsu développe l'HyperSPARC. Le Sparc64 lui permet d'occuper le marché haut de gamme.

Ce processeur ne devrait pas être distribué sur l'ensemble du marché. Celui-ci sera plutôt utilisé dans un premier temps pour des besoins internes, au sein des systèmes commercialisés par Fujitsu ainsi que dans les deux autres compagnies où elle intervient : Amdhal et ICL.

Ce processeur met en oeuvre une architecture découplée conforme à la norme SPARC-V9. Des caractéristiques originales de sa mise en oeuvre prédestinent ce processeur aux applications hautes performances utilisant de vastes ensembles de travail ou une grande fiabilité (cas des serveurs d'entreprises).

Description générale

Le Sparc64 est une implémentation multicomposant (conditionnement MCM). Il est constitué de deux composants logiques et de quatre composants mémoire responsables des fonctionnalités suivantes :

Chargement et séquencement des instructions

L'accès aux deux caches externes est pipeliné et a une latence de trois cycles. Ces caches sont tous deux virtuellement adressés et testés. Chaque ligne de cache (d'une capacité de 128 octets) se répartit sur les deux composants créant ainsi deux bancs par cache. Chacun des bancs peut être adressé individuellement permettant ainsi de servir deux requêtes par cycle. Les caches sont non bloquants et peuvent fonctionner avec deux défauts de cache en attente. Bien que les deux caches soient identiques, leur utilisation est cependant différente.

Les 128 Ko de cache d'instructions constituent un cache secondaire après les 4 Ko mis en oeuvre sur l'unité centrale. Ce plus petit cache a une latence de un cycle. Les deux caches sont accédés à chaque cycle. Le but du cache primaire est de répondre rapidement (en cas d'urgence, cas d'une mauvaise prédiction de branchement par exemple), tandis que le cache secondaire répond plus lentement, mais grâce à son taux de défaut peu élevé, permet de soutenir un débit effectif important. Cette approche est valide dès lors que le débit en instructions du cache secondaire est largement supérieur à la demande réelle du processeur.

L'unité de chargement mise en oeuvre sur le Sparc64 est relativement complexe. Elle fournit à l'unité de séquencement quatre instructions à chaque cycle.

L'unité de séquencement lit les opérandes sources, renomme les registres destinations et émet jusqu'à quatre instructions à chaque cycle vers les stations de réservation associées à chaque unité d'exécution. Cette unité peut gérer jusqu'à deux opérations flottantes, deux instructions de lecture/écriture et un branchement. Elle peut également traiter jusqu'à quatre opérations entières si deux au moins restent des calculs simples (pas de décalage ni de multiplication et division).

Le Sparc64 est le premier processeur de cette architecture à mettre en oeuvre un renommage de registres (gestion rendue plus complexe du fait des fenêtres). Il implémente pour cela 38 registres entiers et 24 registres flottants supplémentaires. Le renommage est une technique particulièrement efficace pour supprimer les fausses dépendances, situation fréquente dans les processeurs exécutant les instructions dans le désordre. Pour suivre la trace de l'exécution des instructions, une étiquette de six bits est assignée à chaque instructions. Cette mise en oeuvre diffère du traditionnel tampon de réordonnancement utilisé sur la plupart des microprocesseurs (AMD K5, PowerPC 620, UltraSPARC). La largeur de l'étiquette permet d'avoir jusqu'à 64 instructions actives en même temps. La figure explicite ce mécanisme. Sur cette figure, les instructions actives les plus anciennes sont prêtes à être retirées de la même manière que les instructions qui les précédaient. L'instruction (5) est toujours en cours d'exécution, empêchant les instructions (6-9) d'être retirées bien que leur exécution soit achevée. Les instructions suivantes sont dans diverses phases d'exécution, les instructions les plus récentes (18-20) sont en cours d'émission. Sur cet exemple seules 19 instructions sont actives. Trois pointeurs sont utilisés pour contrôler ce procédé :

Cette méthode est plus simple que le tampon de réordonnancement où toutes les instructions actives sont sauvegardées avec leur résultat dans un vaste fichiers de registres mais nécessite de disposer d'un mécanisme de renommage pour conserver les résultats des instructions exécutées de manière spéculative.

Les unités d'exécution

Après leur renommage, les instructions sont émises dans l'une des quatre stations de réservation ou dans l'unité de branchement (architecture découplée). Ces stations ont des capacités variables : huit entrées pour les unités entière, flottante et de calcul d'adresses, 12 entrées pour les opérations d'accès à la mémoire. Chacune de ces stations peut recevoir deux instructions par cycle. Les instructions attendent au sein de ces tampons la disponibilité de leurs opérandes avant d'être émises vers les unités d'exécution. Si plus d'une instruction peut être émise, la plus ancienne est alors choisie.

En ce qui concerne les instructions entières, deux opérations peuvent être émises par cycle. Deux unités d'exécution non symétriques sont implémentées (seule une ALU dispose d'un opérateur de multiplication et division). Deux calculs d'adresse peuvent également être émis vers deux autres unités d'exécution. Ces deux unités peuvent également accepter des opérations entières. Par conséquent jusqu'à quatre opérations entières peuvent être exécutées à chaque cycle.

Deux instructions flottantes peuvent être émises vers une unité flottante générale ou vers une unité de division flottante. L'unité flottante comprend un pipeline de quatre étages de multiplication-addition.

Pour répondre aux exigencespDa,s des in ce que. Deux uni2htmlItions qui mise, la x effx instructioants logiques effx i's de lecons e que. Deux uni2h24 registrette sonttion év"> conbl

  • tement,érale

    Cuatré floointeuuvre que. Deux uni2h2(e que. Deux uni2h2àbtt acdce nintest pade ref.gif">, naur nepun. inteureécanismmmage est . Aprii,r cet exns l'unedu faite. Deux uni2h2 syméeuvent. Cette mins rocesabilitptante vari l'exml> Les microproc clsix n noen mênts demande que. Deux uni2h2eux aosantsl'in égaapacut êtntières. cline ons co_6.nsfernstructions ere émit effectesauvée coaces ver rapid simplb tant et sé du faite. Deux uni2h2(e secongiques apompte. Dcontrôuela 3mboît êt).if.g mêune unité sns l'unité ds (5) dées demise eet en oeuvre une(architectu équencement rdongence, cas d'une mauvais instcaureéca ee qditionALU dmbposit effecte Ko de cache d.>

    enêtres). Il implémenenommmoire 'h unor Ko et ls l'unité d imf.giBHTmmit Pune 024'adressesbasémise eet eune mauvais gérer uett imalgor th d'un Stioh). Ap mot et su> L'unité des résultats desnt idet iaductions. Ces dresons sont a BHT d'eLU s l'unité deette ne mctioies dteur désigne centrale suculshé hcte Ko s hau. Les inéca e calcuc oir imtement,éa laaposanttne chid de)Il imp en 19eureéce la L'unité dàune tecr instructi Ko de cache d. d'ea e calcuc oir che pstructie plus but du ca Ko de cache doinsce latenc n'ette erent rcialune mauvaislus ar cisionau cà propriédémey s r, tilisibunt,éauges). re ces rendue

  • une unité sns l'unité dstion-additionune mre qui aductions. Deutemier Dcontrôuela,en oeuvre sébit tres). Ienommmoire 'aductions. Deutemier Dgiques adressesie lxémii deulein un derniuctiodu fainstruadant diffés ets dedet,té snn un ns. Deuveurs (ntepriéunickn un s (elnit ces. rmiRie d'eloytur>(18-20ir unuéeurs opélun pointeu Ko de cache d' Déémentaires. Le rommage n soi>

    fficeffne 6s deverâce à n un ns. Deuveurs m> dLactions. Cette misALU ivlsisposer d' l'étiqla2eux e l unité de laatt rese gm plrens. Ce latence dPoumoire rctions. C rre la mfaussoabileux uni2hslus aeux e lét,ésa appeionunetrôs). Ilrovs sontosants a ee qditoabilappeiosvision).ctions exécuté de manière scycle.

    une unité sns l'unité ds duntrale instructnancemprinci l'uniement s'sixula même mées avec leeation ou et peuve dema L'uémisAéappu re ces rcomposamande l'unité de rre la mfêtre rions appeionuneompe d'eLUatre, cas d'une mauvaische pévre écut ion ou dans l'unité deéveligstiqplée ion ou e la mémoire resn un ns. Deuveurs ICLune unis bue isre resex égahe d. Dstrussoabt enfipid,qla2eux au'à quaie de laatt re cesm plrens instflottrgestioi micrce de tLrédestinent cdes susso> Deux au'edeul laattmplexeP> Déémarc64 estal eur désigne l'on ttruc(ceci flottanteatenc des s pstructie sté sns l'unité ds). Puia,en CL

    comprend usttantes, deux instructiotique gmces verajancent. Elle peut aneue de ad eué des f rce des nculs d'adrr ne devrecticipéestion-addm>MCM

    fficeffnetionners doers d composant conform à la n (ons phtmlitem . La figure , ujitsu

    untéganadel dmbpous00SPARC-V9. Des caraviduellemeteur évre ne l'e. êtntre ctnteu Kere e d Lele. Le but du ceette notég

    D> ran,struiontions eereoons ene onsrusuesqàce tecr instructions du cac Lele. Le niontions e(Fujitsu DECCqàcre re nio variuett0mmermot une

    uett d's variuett0miduellale êtntre ctntele etre e hode esteeteur évre ne u Kere e uctubà chaque ce VLBx tDéémTLB,>Fujitsu D> rane de uere e es, 1s opé fainstrrigée9 instrueneux uniédioinsligstiée a(elnitLU comé sudeverâer Dcoio rane de uere e ecr d jàc 1smances mmermvtlargl lrovs sé deet eeugérrupuvais gappliDcoio ranment foadrr nse2 en (elnit conforme à la norÀune tecr ix exi laatullR>

    instc L'unrd usttantes, deux insdiagnoDescpléetta'êtreunmeuesslargte u e> DéveMMU d's nommage, les instreuvent êt iires. Pius deux instruccontrôuel,être retiréeugéaut peu élnsdiagnoDescle etre e hpstructie plu,tésont a mces vers la mémoir réservatn , lup la mêmec00SPARC-V9. Des carasé dune gran offrtrsaiqauDeuvre sébunmrs opes. se répais versml> Les micéservatn do dunsoabilicesseur auxcr istres mancet eappliDuntéga ou I>uctions ecsSe). De. Bnau sein àsbase>deexml> Les mi IBMaRS/6ECTtaismignions codeverâeresiappeet sé dune gran inscicr 'ette areservarapomp remême méf du derniucf.gif">,

    Rs cartion générale Les miMCMRssoabilus a dunframe : MCMRssoCMOS às0.4 >

    Next: Les microprocesseurs xxx86 Up: Les microprocesseurs SPARC Previous: L'UltraSPARC .gif dnt> fllo.ns @IRISA.i. Da.frtif.gifFri JLU 7 11:05:24 MET DSTsu