0% ont trouvé ce document utile (0 vote)
78 vues22 pages

Processeurs VLIW

Cet article traite des processeurs VLIW (Very Long Instruction Word) qui exploitent le parallélisme des instructions grâce à l'utilisation du compilateur pour exécuter plusieurs instructions indépendantes par cycle d'horloge. Il présente trois exemples de processeurs VLIW, notamment la famille TMS320Cx de Texas Instruments, le Tiger Sharc d'Analog Devices, et l'architecture EPIC des processeurs Itanium, tout en soulignant leur efficacité dans le traitement du signal et leur utilisation dans des architectures multi-cœurs. Malgré leur succès dans des applications spécifiques, les processeurs VLIW ont été largement supplantés par des processeurs superscalaires pour un usage général.

Transféré par

cointoin
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
78 vues22 pages

Processeurs VLIW

Cet article traite des processeurs VLIW (Very Long Instruction Word) qui exploitent le parallélisme des instructions grâce à l'utilisation du compilateur pour exécuter plusieurs instructions indépendantes par cycle d'horloge. Il présente trois exemples de processeurs VLIW, notamment la famille TMS320Cx de Texas Instruments, le Tiger Sharc d'Analog Devices, et l'architecture EPIC des processeurs Itanium, tout en soulignant leur efficacité dans le traitement du signal et leur utilisation dans des architectures multi-cœurs. Malgré leur succès dans des applications spécifiques, les processeurs VLIW ont été largement supplantés par des processeurs superscalaires pour un usage général.

Transféré par

cointoin
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF ou lisez en ligne sur Scribd
TECHNIQUES, DE LINGENIEUR Re H1012 V1 Processeurs VLIW 10 aodt 2015, Date de derniére validation 08 mars 2022 Cet article est issu de ; Technologies de l'information | Technologies logicielles Architectures des systemes par Daniel ETIEMBLE Motsec Résumé Les processeurs VLIW s'appuient surle compilateur pour utliser le parallélisme ppraleme d'neiructions| entre Tes instructions d'un code séquentiel t lancer exécution de plusieurs instructions Inormbtque Traiement du indépendantes a chaque cycle dhorloge. Cet article décrit trois exemples. Les signal processeurs successifs de la famille TMS320Cx de Texas Instruments, les plus proches de approche VLIW pure. Le processeur Tiger Sharc d’Analog Device ayant des caractéristiques VLIW et superscalaires. L'architecture EPIC implantée dans les processeurs Itanium distingue les instructions paralléles définies par le compilateur et les instructions VLIW, et décide des instructions a exécuter & chaque cycle d'horloge. Les processeurs VLIW sont utiisés dans les processeurs de traitement du signal (DSP), ou dans les mul-coeurs et «many core» pour la faible consommation. Abstract VLIW processors rely on the compiler to exploit the parallelism between the arallelism | instructions of a sequential code to launch muttiple independent instructions at each clock VLIW processor [software Finelinna |Computer leignat _eycle. Three examples are detailed. Successive processors of the TMS320Cx family of processing ‘Texas Instruments come close to the pure VLIW approach. The Analog Device Tiger Share processor has both VLIW and superscalar features. The EPIC architecture implemented in Itanium processors distinguishes parallel instructions defined by the compiler and VLIW instructions: the hardware decides which instructions are executed at each clock cycle. The VLIW processors are widely used in DSP or multi-core and manycore processors for low power consumption. Pour toute questior Service Relation clientele Fechiniques de Ingen eur Immeuble Pleyad 1 Document télécharge le : 17/1/2022 39, boulevard Ornane s $2288 Saint-Denis Cedex Pour le compte - 7200031244 - universite paris sud paris saclay //195.221.160.9 Par mail infas-clientelteching.com Par télgphone = 0033 (0}* 53.95 20.20, © Techniques de Ungénieur | tous droits réserv Processeurs VLIW par Daniel ETIEMBLE IngéniourINSA Lyon Protesseur émérite 4 université Paris Sud 1. Dune & plusiours instructions par eyel Hio1 2. Principes de 24 Quelques 22. Processeur de base 23. Pipeline logiciel... 24 Instructions avec prédicats 25° Instructions de ealeul mult-eycies 3. Ordonnancement de trace. 4.1 Processeurs TMS320¢8x = 8 42. Processeur Tiger$haTe vunnnen 43 Processeure Itanium. 5, Conclusion... Pour en savoir plus. eet = Doe. H1 012 et article examine les caractéristiques principales des processeurs 4 mots dinstructions trés longs, généralement appelés VLIW (Very Long Instruc- tion Word). Un processeur VLIW utilise lo parallélisme d'instructions existant dans un programme séquentiel pour démarrer & chaque cycle d’horloge I'exé- cution de plusieurs instructions élémentaires qui constituent le mot d'instruction trés long. Contrairement aux processeurs superscalaires pour les- quals le matériel détermine dynamiquement les instructions executables simultanément, les processeurs VLIW s‘appuient totalement ou principalement sur le compilateur pour constituer le mot d'instruction trés long. Cette caracté ristique permet de comprendre pourquoi ces processeurs ont leurs meilleures performances lorsque le comportement du programme est connu a la compilation, ce qui est souvent le cas pour le traitement du signal et des images (DSP). Aprés un bref historique des processeurs VLIW, l'article présente les prin: cipes de I'exécution VLIW. Un processeur « pédagogique », proche des caractéristiques des VLIW existants, permet dillustrer les caractéristiques essentielles facilitant utilisation du pipeline logiciel pour exécuter 4 chaque cycle d’horloge des instructions élémentaires appartenant des itérations différentes d'une boucle de calcul. La maniére de rendre conditionnelle l'exé- cution des instructions élémentaires et la maniére de traiter les instructions de calcul mult-cycles, sans et avec « registres tournants », sont détaillées. Trois exemples de processeurs VLIW sont ensuite présentés, de approche VLIW pure oii le compilateur contréle toutes les dépendances a des approches mélant les caractéristiques VLIW avec un contréle matériel des dépendances. Lo premier exemple est Ia famille TMS320C6x des processours de traitement du signal de Texas Instruments, avec successivement C62 et C67, C64, Cé4+ et 1h : aodt 2015 - Derni ur Tous droite ser H1012-1 ‘opwiaht Techniques de Mngt ‘compte de 7200031264 - PROCESSEURS VLIW C674, puis CB6x. Ces processeurs sont trés utilisés comme processeurs DSP avec de tras bonnes performances et une consommation réduite. Le second exemple est le TigerShare qui combine des caractéristiques VLIW et supersca- laires. Concurrent des TMS320C6x au début des années 2000, ce processeur n'a pas eu de successeur depuis. Le troisiéme exemple est celui de V'architec- ture EPIC implantée dans les processeurs Itanium. Cotte architecture distingue les instructions exécutables en paralléle définies par le compilateur et instruc: tion longue de 128 bits (3 instructions élémentaires). Le matériel décide quelles instructions paralléles peuvent effectivement démarrer a chaque cycle. Les caractéristiques VLIW (instructions prédiquées, registres tournants..) et les caractéristiques faisant intervenir le matériel (prédiction de branchement, accés mémoire anticipés) sont détaillées. Concus par Intel et HP pour sup- planter les processeurs superscalaires a exécution non ordonnée, EPIC et les processours Itanium n’ont pu réaliser cet objectif et sont maintenant aban- donnés par Intel. L’approche VLIW connait un grand succés avec les processeurs DSP. Elle est aussi beaucoup utilisée pour les coprocesseurs de traitement du signal dans les systémes sur puce. Elle est également une solution viable pour les architec tures multi-cceurs ou «many-core» a faible consommation. Elle est généralement supplantée par les processeurs superscalaires exécutant les jeux dinstructions /A-32, Intelé4 ou ARM pour les pracesseurs d'usage général. 1. D'une a plusieurs instructions par cycle LVaceélération des processeurs a toujours été la motvation prin- a BERo line vissiont un debit e'exéetion dune instruction par eyelo Exéeaton dhorloge (IPC =1) en utilisant les techniques décrites dans scontréloe farteleH 1604). Pour exsevtar plusieurs Instuctons «un pro- purr! gramme séquentiel par cycle dhorioge IPC >), deun approches font poseibles. Lexéeston peralile Ses insrecions et soi ‘centrdlze = par le matériel Les processeurs tradtionnellement appelés fog superscslsires utiisent cette technique, soit avec les processours ‘multopipelines» jexéeution dans Vordre) ou «a Mot de données Festrein » (execution non ordonnée}. Ces provesseurs sont studies fons les artes [H 1010] et [#1011], “parle logiciel. Dans Vapproche VLWW {mots d'instructions tres Jonge ou Vary Long Instruction Word) le eompilateur est enargé de présonter cu matériel plusieurs instructions exécuter. C'est ‘cette approche qui est détallee dans cet article. Dans |apprac ‘VLIW « pure » le compilateur gére les dépendances de données et les dépendances. de contrble_ [sauts et branchements|. Dans autres versions VLIW, le conivale des dependancos entre inst (a drt des ina SEOUENTEE compte des ressources et des dépendances, en utilisant des {vctons NOP pour combler les trous lorsque 4 instructions le rmentaires ne peuvent demarrer simultanément. La dfférence entre les deux maniéres de cont (tions permet de mettre on evidence les avantages et les inconveniente de enacune des techniques, NeNoP approche VLWW repose essentellament sur le compilatour tions Tongues et des dépendances de contrle pout sire geré en parle parle matériel La figure 1 illusve 1a difference ens Processeurs capables les deux approches, on sources nécessaires sont cisponibles en tenant compte. dos ependances de données et ce corkrole. Dans Ia parte droite, le compilateur génére pour chaque cycle dhorioge une instruction Tongue consttuée de 4 instructions slémentaires, en tenant H1012-2 Cela permet de simpiier la pantie contre du processeur, pulsque celui, au moins dans la version VLIW pure, a plus contraer Tes déperdances de données etles dépendances de contvle. Cette implication du materiel @ te argument essential des promo teurs de approche VLIW. Or, le compilateur ne peut connate que ce qui est connu 2 la compilation. Les processeurs VLIW seront done partculirement efficaces sur les programmes 8 comport iment déterministe, c'esti-cire dont Ie fot d’execut on des instruc ons ne dénend pas des données. Cest le eas Sun grand nombre de programmes de traitement. du signal, offectuant les memes ‘opérations sur un flux de données entrantes CCopiricht —Techriques de ngbnieur Tous droits sera PROCESSEURS VUW Encadré 1 ~ Bref historique de approche VLIW Le FPS AP 1208 (1976} était un coprocesseur utilisé avee le POP-11. i possedelt 10 unites fonctionnelles et fut le premier ‘ordinateur ‘commersial 3 utliser un mot dinstustions. long {Ba bits) conatitue de 10 sous-mote assacige a chaque unite fone: tionnell. Chaque sourmot avat un code operation et doux ‘champs speciiant le premier st le second operand (1) I tl fait le céroulage de bovcle et le pipeline logiciel (523) Le concept VLIW (mot dinstruction¢ tbs long fut introdult par JAC Fisher dans les ennges 1979-1981. Les premlsren machines ommerciales sont apparues quelques années apres le Multifiow Trace (1987) fut construit en 3 versions. Le Trace 7/200 avait des mots de 7 insirctions (256 bits) avec 232 bits par instruction et un champ de contrdle de 32 bits. Les 7 ‘opérations langables chaque eyele étaient 4 opérations enti fesimémoire, 2 operations flottantes et 1 branchement Les ver Slons Trace 14/200 et 28/200 doublaient et quadrupisient les Caractoristiques du 1/200. Le compllateur ‘sssocié utilsat Tordannancement de traces (53.1 at (2) (3) ie Cydre-5 de Cydrome (4) fut commercialise en 1987. I ‘avait des mots VLIW Ge 256 bits pour coder 7 operations. ie introdult le concept de « registres fournants » Lévolution du concept VLIW suivit ensuite des chemins diferente Pour les processours d'usege général ot le haute per formance, i fcr considere comme une atternative au suppo. fee limitations dee provesseurs superscalsires contrélas ar matériel, y compris dane la forme la plus performante (lot de données restreint). En” 1888, Howlett Packard embauche les architects da CydraS (8. Rau ot M. Shlansker) puis J. Fisher on 41990, Cola conduit apres siférenie projets VLIW cher HPs accord avee Intel (1884) qui allat conduire au concept EPIC {ordinateur & jeu giinstructione explictement parallele) avec Ie jeu dinsuctions 1A-64 (1887) et la commercalsation des pro. {essours Karim (200%) ot Kaniur? (2002) Ces processeurs furent incapables de rvalser sur la curée avec les processeurs Intel &t AMD implémentant les jeux dins ‘wuctions IA-32 t Intel (extension 64 bits du précédent) et exe utant plusiours instuctions par eycle sous contrale du materiel Lapproche VLIW est le support des proces du signal (DSP) haut de garnme pour les a Koment du signal ot multimédia, Texas Instruments into. uit on 1997 le TMS. $20C82 qui est un VLIW a 8 instuctions pourleesleul enter. Ilo eu des sueeesseurs pour le caleul entior (6a) ex pour le calcu flotant (C67) Dans la méme periode sont apparus d'autres DSP VLIW cher Motorola (Ster Core), Analog Device (TigerSharc), Trimédia (Philips puis NXP), etc. cette approche cornet un grand succes. Une variante est constituee dee DSP VLIW configurables, comme les processeurs Xtensa de ‘Tensiica, maintenant Cadence. ars de eitement ses processurs VLIW sont lags dan es celts ystmgs sur puce (SoC) comme jo traitement dl tlgnal dans des aystimos hétérogénes. Les marches visée ont les terminaux multimedias, la difusion de flux audio-video. On pout ster par exemple les versions OMAP 5 et 4 qu utlisent des TMS 320-064 de Ts cSté de proceszeurs ARM Cortex et de (GPU, Ie tout dans une meme puce Les processeurs VLIW pouvent dre également Ie processour ido base pour tos systimes sur puce homogénes, Par oxem- ple, un’ neoud du multiprocessour Kalray [6] contient WB processeurs VUW contrélés par un processeur généraliste pour constituer des clusters de 64 & 1024 processeurs VLIW pour Tes applications embarquées ae ealeul intensi. |MOn peut également citer la tentative de la société Transmeta (1985-2005) de developer le processeur Crusoe (7), processeur VLIW capable spree transformation dynamique @exéeuter en VLIW du code x86. L'objectif stat do réduire Ia puissance dis- singe, mais les performances. s'avérérent insulisantes pour Concurencer Intel & AMD. Par exemple, les convoliions effectuent exactement le méme vatement sur les pels dune image, et le romore Gitératons est conmu fs compton Cette caractéristque explique le succds du VLIW pour Ie trait iment du signal et des images, et plus généralement pour les appl Cations multmédias. Elle expligue aussi les problomes reneontrés par les" VUW sur les_programmes usage général ont lo Eomportement dépend du contenu des données: Un autre inconvénient de T'approche VLW est que le code binsire dot varier d'une version dun processcur & la suivante s Te nouveau processeur dispose dun nombre diférent unites fone tonneles Par exemple, le Multitos Trace (6 2)» ét8 construt avec ois fn uouts de mats cifféronts (256, 512 ot 1024 bis), co qu imorct toute compattilt bina ios diferentes versons ces deux aspects, des programmes déterministes et compat bilits, expliquent pour lesson! les ézhees des pracessours VLIW. oures applications d'usage général. Les processours contrélés par matérial sont plus complexes & réaliser Leure performances dependent des ontians de compilation Utlisées, mais ls sort toujours capables d'exécuter du code binalre ancien, issu d'anciennes compilations sur des versions anterieures, { procosseur, co qui est un ertére fondamental pour les proves seurs usage genéral ‘Copwiant © Techniques de ngéniour Tous dots risers 2. Principes de I’exécution VLIW 2.1 Quelques régles d’exécution VLIW Les principes de exécution VLIW sont les suivants = plusieurs opérations différentes sont offectuées par une. chaque emplacement pour une opération est rservé Bune classe détinie Sopérations ~ das latences fixes sont définis pour les différentes opérations le matériel exige que les opérations d'une instruction VLIW. sient independantes “ie matériel ne contrdle pas les dépendances de données entre leg instructions Tongues c'est le cae pour les VLWV pure. Des Yariantes peuvent effectuer le vontrale des dépendances comme ous le verons dans les. processeurs presentés dans les eragraphes 4.2 ot 43; “des dispositfs sont éventuellement utilisés pour rédulre Is taille du code, Le fait que le compilatour place tes instructions élémentaires dans une instruction VLIW 2 des conséquences importantes. Les instructions slementairos. une instruction VLIW. s"exscutent simmultanément, Comme la lecture des registres seffectie au debut H1012-3 PROCESSEURS VLIW d'un cycle d’horloge, et Véerture dans les registres & la fin du mame eyele dhorlege, un meme registre peut étre souree d'une instruction élamentaie et destination d'une autre instruction él mentaire apgartenant a la mame instruction longue. La permit tion du contenu de deux registres peut retfectuer dans la mere instrction longue par deux instructions élementaires s'exécutant on paraliale Ric RIMA}C RI I est évident qu'un code séquantel devrait utiliser un troisiéme registre pour effectuer fa permutation et qu'un processeur super Scalare part de ce code séquertiel pour Texécution simultanée ‘instructions. De mime, une instruction VLIW peut contenir deux instructions sémentaires Ric Rjop REA} Rmop An Ri) est In fois rogistre destination et registe source de deux ins- Indetions s'exécutant simultanément, Avec Un processeur supet= ‘ealaire, lee deux Instructions seraient en séquence dans 16 code inal el, selon lour ordre dans ce code, Ie contréle materiel detec terait soit une vraie dépendance de donnée interdisant lexéeutlon simultane de cos deux instructions, soit une ant-dépendence 2.2 Processeur de base Pour lustre les principes de exécution VLIW, nous définissone un processeur VLIW" permattant cluster les caracteristiques, tssentielles que nous retrouveroms dans les processeurs presents, fu paragraphe all cispose de 8 unités d'exccution = deux unités de calcul enter E1 ot £2, ayant une latence de. ‘eyele. EP est également uilisé pour gérer les comptours de bouele: “une unité de multiptcas 2eyelos: “deux unités mémoires M1 ot M2. Les instructions de charge- ment {lesture mémoire) ont une latenee de 3 eycles, tant pour los données entigres (instruction Is} que pour les Gonnées flotantes linstrustion deux unités de calcu lotant FA et FM pour les additions et les ‘multiplications ayant une latence de 4 cycles une unité de branchement. Les branchemerts sont supposés sexécuter en 1 cycle [pas de branchements retardés) I cispose de 32 rogistres de 32 bits (0 2 r31) pour les nombres nies et 82 registres de 32 bits (1 & (31) pour les nombres ot tants. Ce choix tert diatinguer les caleuls eniere et les caleuls flottants Un seul ensemble de 32 registres pourrait aire utila6 Le format des instructions VLIW est ilustré dans Ia figure 2 une instrution VLIW pout comprendre jusqura 8 instructions élemen- taires. Une premiere contrainte matérielle est calle de l'accbs aux Duntés “eye lore avec une latence de Beveles Figg 2 Mot dinstruction tis long ot Itoncen des wits H1012-4 Dens notre exemple, ily a deus benes de regisves: un pour les enters et un pour les flottants, Les inatuctions des champs #1, £2 et Mul peer: efectuer 2 lntures et 1 derture de reise & chaaue ‘yo. Les instructions mémoe (Mera! et Memn2) peuvent e‘factuer Sur bs ragisies 1 lecture jdrossel ot 1 éerture(connéa) pour los oad et 2 lectures (adresse et dennéol pour les store. instruction de branchement peut eectuer une leture, cn se Iman seul store por cyele, Ie namore dsccds. au bone de rogutres enters peut [ioindro 0 lactures teas load ot sora srnutané et 8 éertures leas 2 foad} 3 chague cycle. L2ceds au banc do rogistres flllanis peu récessiter 4 lectures ot 2 dertures par evel. Diautres formats dinstructions VLIW sont bien évidemment pos sibles. Dans tous les eas, les bance de registtes des processeurs VLIW sont une ressource entique si un bane de registes utilise des paints memoire mult-ports, sa surface est approximetivement broportionnelle au carré du nombre de ports, et le temps dacces fn lecture crotInéairement avec le nomore de ports. Une solution fest de décomposer chaque banc de registres en un chster de Dance acsédant 4 moine unites fonctionnelles (voir les proces: Seurs présentes aux 64.1 et 42) Les autres contraintes matérilles seront réeent suite de ete, "Nous présentons d'abord les caractristiques nécesssires pour ue le proveseour pusseulliserevfieacementl pipeline logiciel pour une ‘exécution paraléle du maximum dinstuctions élementaires. 2 dane a 2.3 Pipeline logiciel Soit un programme ¢ trés simple st AI BOC: for aDdeNies) Bal ANC On wiilise les hypothéses avivantes entrée dans la Boucle, le rogistre 11 contiont Fadresse de debut de AINI, 12 adresse de ‘obit de BIN] et 10 Ia valeur do C. 12 content initlement Te hombre ditérations A effect, Les instructions en langage d'assemblage utlisées sont =Iw (load) pour Vacces d'un mot mémoire en lecture et se (store) pour Vacces en éerture- Les instructions [vr et sw dispesent de Vautorincrémentation; insivuction ‘wv, Oi)» charge dans le fagiste réle contenu du mot mémaire dont adresse est ders 1, {tr repoitris4 pour content Tadresse du mot memoire de 32 bits Gulvant. Sane auto-nerémentation, Il faudra deux instructions Séparées (chargement et addition) qui utliseraient deux slots de Finstrvetion VLIW “Tul est instruction de multiplication et add d’addition sur des “Tag est un branchement conditionnel effectué s le contenu du ragisire 0st posi > 0) ‘Compre tenu dos latences définies dans Io igure 2, Vexéeution d'une Hération nécessite 6 cycles, comme Tilluste la figure 3 Obtenir une effieacité maximale implique dutliser & cheque cyele d'noriage le nombre: maximal unites. forctionnelies. La Doucle de la figure 3 est un exemple particulier. Cependant, toute Bovele contiendra des instructions de chargement, suvies, apres lun certain nombre de eycles(latence du chargement), operations de calcul, "suivies avec une. certaine letence d'un. rangement ‘mémoire. Dans exemple de la figure 3, -w intervient au cycle 1 sul au eyele 4 ot ew au cycle 6. Exécuter Iz, mal at sw dans lo mime cyéle d’horlage rest done possibla que si Iw, mul ot ow appartionnent & Ges erations diferentes de [a boucle. Cost possible par la technique du pipeline logiciel, qui conciste & entre Facer Texéeution instructions de diferentes Réraions de. a boucie initiate. Avec notre exemple, le processus est ilustré dans ‘Copyriaht © ~Teehniaves de Iogsnieur—Tous dois reserves Parution : aodt 2015 - Dernidre vali PROCESSEURS VUW ‘iy alc .‘- rmul6rae0 [2 swooiae [a weep =I = cycles iteraton Figure 3- Exécution simple de le Boucle BUI-AII" a a Il 0 Issa lisa oa-1 Ia figure 4, Au li d'attendee Ia fin de promiére itération (sur fond jaune), on enchaine les ehargements ll) de la deuxiéme i tation (sur fond vert, dela toisieme iteration {sur fond rose, dels {uatrame {sur fond bleu) t de la singuieme (bleu elle. Les dit fentes couleurs montrent comment se placent les différentes ins tructons de chague iteration dela Boucle intale. Apres un Prologue de 5 cycles, on arive 4 un cycle pendent lequel Sfoxécutent simultanément cing instructions de trois térations cit ferentes. La boucle de pipeline logiiele est iteree jusqu'’s co que la'dernire donnée du tableau AIN] ait été chargee dane le regisre ‘Il Taut alors 5 cycles supplémentaires d'épilogue pour terminer Tes 9 dermiéres iterations de la bovlo intiale, Dans cot exemple, Lune itération du pipeline logiciel prend 1 cyce. Le nombre de cycles utilises par une itéation du pipeline logiciel est appelé intervalle interiteration (I). Le temps c'exécution total du pro gramme serait dane de N+ 5} cycles au lou de 6N pour Is version Initiate Cet exemple simple met en évidence un certsin nombre de caractérstques de approche VLIW et rs 157, 0, ou 14 est dans le meme. tycle a ta fols source et destination de deux instructions diffe Fortes. Le fait qu'un registre puisse &tre source ot destination de eux instructions facite Putfsetion du pipeline logiciel, ces deux instructions correspondant 8 des iterations diferentes de la boule initiate Llexemple est quelque peu idéel. Quelques petits exemples ausel simples que le precédent permettent de le montrer, Exemple Soi b Boucle interne : Clie Ail + bl. Dans ce cas, ly deux ns trations 7 et une instction ew, alors quill ny a que deux slots our Ios insiuctions memore, Dans cece (outra un inerlle de Z pout permet los 3 acchs momore, Le pipeline logilel correspon. dant est mone on figure , Ons alors 2 eyeles por iteration de fe bovele nivale exemple de Is figure § montre importance du nombre don rateurs matérols sur les performances obtenves. Il est ciffcile Gavoir plus de deux accés memoire par cycle compte ten de la Structure materelle des mémoires.I'y a d'autres cas de figure Conduisant 4 augmenter le nomiore de tycles de VintervaleL, qv nous verrons dans la site, Dane notre exemple, les performances peuvent étre ameliorées avec un déroulage de boucle préalable de 1012-5 Parution : aodt 2015 - Dernidre vali PROCESSEURS VLIW Lista edateols Innere lads 973-1 sw ri Hover J g wes | tw? ise mee Inbotero1 wae pour le bouele ch Ia boucl initiate, qui permet e réparti quatre Iw et deux sor dans role eyeles Shortage successife. for isdentiv=2 CsA» (ss eAie TBs poling logiciels alors un icervalle interitération 3 pour 2 iterstions de le boucle intiale, comme le montre le figure @. Le temps Wexécution est alors de (1,5 N+ 3} eycles. Dans notte exemple inital, le branchement conditionnel est un branchement de Boucle. chague instruction VLIW exéeute simulta ément toutes les opérations qu'elle contre. Pour qu'une instruc tion VLIW pulsse exécuter une instruction condtionnelle de type ‘Suinlore. OPE Al» C else Bi) =Al=C ‘Copyright® ~Teehniaves de Ingénieur—Tous dois reserves Parution : aodt 2015 - Dernidre vali PROCESSEURS VUW 2.4.1 Versi En supposant que le relate r31 puisse serir de regisre de pré iat, et que le processeur utilise dispose d'une instruction CMPCT {comparsison plus grand) le pipeline logiciel pour cet exemple est, ‘montré ala figure 7. Les deux instructions eda et sub sont dans la ‘méme instustion VLIW, mais une seule des deux s'exscute on fonction du prédieatrésultat dela campareison, autre stant trans forméo on NOP. C'est cette approche qu! est uilsée dans les pro: ceeseurs VLIW TNS32008% de Texas Instruments 2.4.2 Version utilisant des registres de prédicat Le processcur dispose maintenant dun certain nombre de registra 1 bit pour contenir des boaleens, Aver cette approche, Ie registre pO est généralement eAblé & 1 et toutes les instructions Fon conditiannelles ant ‘iplicitement le prédicst pO. Le jeu din ‘wuctions des Nanium {IA-64)utlse cete approche Le pipeline logiciel de la figure 7 devient meintenant cul pré- senté™ 5. Ta figure 8. Linsttuction “de” comparalgon CMPCIT Pl par40 ve positionner = plel of p20 sir = pleG ot pol inh, LLutlisation de ragistras te prédicat 1 bit permet 'éviter d'utlisor des registror 22 ots pour contonir des boolbons,Inisant tous los registres 32 bts disponibles pour la manipulation des opérandes, Une autre utlisation des rogisives de prédicat est présontée dans lo paragraphe 25 anaaars | lsileubes Epiogue llemot ato ilsearaea—1 [ro] reas 670 Iisa 74,0 sw 16010 bz 8.1 Ilemogt pt s2.r0 [ise 5-1 Ip2t aus re440 Iibeeeat ‘Copwiant © Techniques de ngéniour Tous dots sors 1012-7 PROCESSEURS VLIW 2.5 Instructions de calcul multi-cycles Les instructions de caleul nécessitant plusieurs eyeles, comme los instructions fottentes, introdursent un autre probléme. Soi exemple du code du produ sealire, avec la version C-8 gauche st la version aseembleur avec une Insindction par cycle & droite ‘oct AN) BIN]S=00 for fo 4648 mov 8, 1M eb 4,2. foal G2 faa 8.9 tod 13.28,-1 ‘gn, Loop sedis) SoA ELL Leop: I1y a deux versions possibles du pipeine logiciel 2.5.1 Contenu d'un registre dépend du cycle Ghorloge considers " Le tableau 1 présente le prologue et le pipeline logiciel compte dos registres 11,12, 13 ot ff lors du démarrage jusqu'é ‘sement du pipeline logiciel. Le rogistre fest intialement chargé & 0, Comme in 2 par do contale des cépondances, et compte ton des rogistres interes ce Topératour pipeliné. addition Hottante, le regisire (4 comtient quatre valeurs diférentes lors de quatre cycles d/horioge successife, En fat es registrs interes de Fopérateur pipeling sont ullisés pour contenit les trois autres valeurs au fogiste fen plus de eclle quil contient 3 un eyele Sonne igure). Tou se pase implement comme ie botcle intiate avait été déroulée d'un ‘acteur 4 et que le regisive {4 ontenalt les quatre produits scalaires pariels 90, St, $2 et $3 de Ta Boucle déraulée (igure 10). 2 sortie du pipaline logical, i fout sceumuler les produits sealares parties pour obtenir le produit final. Apras les quatre dermigres multpications, cela implique que les quatre demnigres additions placent Tour resutat dans des ropistres cistinets. Il est alors possible de sommer le contonu de ces quatre rogistres(tebleau 3) ‘Avec des opérations de latence N, le contenu d'un regisre asto- id & une variable peut contenir en fait N avatars differents de cette Variable. C'est la technique utlisee dans les TMS320CEx de Texas Instrumente, {at AN BNL 0-00 $1-901 82-004 52-0. for etry ‘ove A BSL St0— Atl Both Sey= Aah teat Shi aboar aba) nS182-5) Figure 10 Produit scalaire avec dérou Uauire technique, Ia phusiours avatars dian méme registre, Tableau 1 - Prologue et pipelin Gyele/unite a Es wa mu Fw Fa BR ° mov wn we ‘feub 7 rn we 2 rn re 3 vn we foul 8 4 en we foul ® wn We imal 6 add 3 wer we ful 8 7an-6 edd 3 wr We foul eda bat H1012-8 oowigt © —Teehriaves de gbniaur—Tous droits ésevés PROCESSEURS VUW “Tableau 2 Evolution dea registrea) jel du produit scalaire " @ . * 3 Ea a ; 20 : ET ‘tl 7 2 3 x rz 7 oo : 7a tl ; ao ‘ En cm a oo : : a El xa oa = 6 xi6) Yi6) i212) oo 3 ; mi 7 =e oo : 3 x0 7 xa ei : x 7 Ea ar 2 10 xI15) its) xi6i*Vi6) xi2i*¥12) i i sae ava : 2 a eae i = aaa pre Sa i 5 ale an avery) i = xara save TAT i «= i AT 2 ‘yelerUnite GI 2 mt mz Mut Mt FA BR 5 TaAN-5 i We fmol fad f@ 2 N boa or 3 Nea a Nea ‘Copwiant © Techniques de ngéniour Tous dots risers H1012-9 PROCESSEURS VLIW 2.5.2 Utilisation de registres tournants Dans la version nlutlisant pas de registres de prédieat, ily a deux problémes que les exernpies précédents ont montrés lis6 @ N=1. Tant que LC> 0, la bouele est exécutée etily a rotation des regisires de pre slice tournants EC est utils pour Fépilogue, EC est examiné lorsque LC-o. Loxécution de la boule ve termine lorsque LC=0 et EC=O- FC le prologue et Vépilogue peuvent augmenter de maniére trés_contientiitialement le nombre dinstructions de V'éplogue +1; significative le lle du code = un branchement ft est pris tant que Ie condition (LC=0 ot pour les instructions mult-cycles, un registe peut contenir -£G=0) est ‘ausse et il y a rotallon des registes de predicat plusieurs avatere de la méme variable selon le cycle dhorloge ‘ourmants utilisation de registres tournants peut suoprimer cee ceux inconvénients au prix d'une gestion materiale plus complexe. Le Principe des registres tournants est le. suivant: les registres ‘On suppose également que ls registros 10 & r7 at f0 8 17 sont foxes, et que les registves vB a r31 ot 188 (31 sont tournants Physiques sont accédés 3 partir des registres logiques et d'un Exemple Fogistre ve base, comme le montre [a figure 14, Pour ceraines ins Feorenons note promer exernele Itions, le regisire de base st décrémenté 4 chaque cycle dhor- it AIO) ALCL. loge, co qui conduit # ce que le regisive contenant une variable ae change de nom 3 chaque eycle dharloge, fr ieDiclOie+) de référence contienne PulealG, fixes, et pa p3t étant des Les instructions assembler sont Fegistres tournants. Supposons que 'an capose de deux registres Sunplémentaires pour gerer le prologue et Pépilogue me Figure 11 Principe des rogistes tourmants Wnitalisaton 10-9 ;EC.6;p8 = letp2apl30 Lips ler 80 old) mal 121120 lipid) ew 21400 Moet La Le tableau @ montre révolution du pipeline logiciel pour la bouele Bil” AiltC. La propagation du 1 dans les regisires de pré dlicat & pertr de pi 8 chaque exécution de bri permet de démarrer Tes inser Lorsqu'eC ate partir de p8, realisant Vexdeution de epilogue, Le hombre de fycles nécessaires a Texécution globale est le méme que sans ‘de precieattourmants, mais le code se rédut celui do la le et & Vintiazation du registre de Tableau 4 - Pipeline logiciel pour la boucle Bii]= Alil" C avec registres tournants wt MUL mz BR es | eo | pro | ptt | pe | prs | tc | ec e wit bt 7 |e |e|]e,efe)si|e 1 wie bt 7/7 )e°]e)efo)|el|e 2 wie ba 7/7). ])/°)*/e|]7 |. z ieee | mule ba 7/7). /)/7)°/°)]. |. + Tere | mula ba 7). )/7)/a)7f}e;s |e 10 souli2 | awit bat of? fa) 7 fafa], olfs 1 mula | wl ba o;e|}/s1)7)r|]|.)o]@ 2 mlz | wie ba o;e}e;t{)r)+i|)el|s 3 wid ba ofefelfofi1{[sfoelfe 4 wit bt e,;e|e,e|/oe;ft ols 2 a o,;ef|oe),ofejfe|]oi|o H1012-10 ‘Copyriaht © ~Teehniaves de Iogsnieur—Tous dois eserves ‘compte de 7200031264 - univer srution : aoUt 2015 - Derniére validation : mars 2022 - Ce document a ete delivre pour PROCESSEURS VUW Tableau 5 - Pipeline logici ire (N=10) avec registres tournants Unitérinstruction Etat avant exéeution de ert wi [M2 | fm | FA | BR | PB | Po | Pwo | Pi | Pi2 | PIs | Pre | PIS | tc | EC wm | 1 fef/efefefelefoles|s a mit |+),e|efef|e|oelfoe,el|s 2)@ | # mf) t]1,?]efefe|efe,7|7 Es mf)? }/?,?|s]efe|efoe),.se|7 «| 8 | & | iw mit}. 1)1)].)e),efoe),s|7 5 | | i | im ml? f}t)t |) i]t) type pele |e 6) |e | mu wit f}+i?]*7{[7)+]*f>e),:|7 7 | « | # [mu | fe fs |) )s]1)s)s,s).)2i]7 e | «© | = [mu | fe |? | )s]1)3)s,s1)].)s]7 ® | © | = | mu | master |? |). ]1)+)1,+].)e|7 0 soul | fda} re | o | 1) 1 |a]1)?].)1)0|.6 " wa | dad} be | o |e) 1 | i]t)? i].)1)e|s 2 tml [ead | br |e |e |efs)si[s)1).|e],« 2 wid | be |e |e |e }]e)+|1i)si]1)e|s 4 was | be | © | o | oj|]o)]oj|o/+i|1)o|e2 6 tas | br | 0 |e |o)oe)|oj|]o)}e)1)ol4 o|e;ejfe;efoe{oefofeljo Pour exemple du produit scalste avee des nombres flattant, le code est présenté ci-dessous et le pipeline logiciel pour N=10 est Gonné dans le tableau 8. fad 922901 Hnialsaien : 16-9: 20-7 ;pB= let p84 pls =O: pees (Nrivalzaion (661171811809. S Linips) 1124.16 op, ips D8.1r2)6 Eaoon pli) sae th 29928 nee pis} ade 9718.28 no bet 9p abs. En sortie du pipeline logiciel du tableau , ilveste& accumuler le contenu des regstres (20, 21, 122 et 23 qui contiennent les quatre produtts sealaires partels apres la dernigre rotation lige au brar hement nan Giférente § des cycles ctforents 3. Réle du compilateur Comme ingiqué précédemment, le compllaeur est responsable Ge la genération des instructions longues en fonction des dif ints slate dieponibles. Lee instructions VLIW peuvert avoir Jusqu’ 8 slots alors que la longuour des blocs do base dans les Programmes, e'est-cire de la suite des instructions en séquence 5uivies d'un branchement, varie en mayenne entre @ 3 5 pour les programmes entiers &t 84 10 pour les programmes flattante. Cela Elgnifie qu'un bloc de base nécessite une instruction ou un tres petit nombre dinstructions VLIW. ‘Copyiaht Techniques e Mngéniour- Figure 12 -Terminalon du produit cali flotant aves 3.1 Ordonnancement de trace Le compllateur doit d'abord ordonnancer les blocs de bese. Pour optimiser plus, le compilateur dait ordonnancar les instructions 3 ‘avers plusieurs blocs de bese pour constituer des super-blocs. La technique est appelée ordannancement de traces. Fle est ius trae par la Figure 13. La suite des Dlocs de bere le plus souvent ovis doit entrer dane a trace ou satire Ia trace. Des blocs Ge bare ‘wouvent done décannectes de la trace (parte centrale de la figurel. II'faut alors moder le code de ces blocs de bare pour que leur fea trace, ou que leur entrée soit Connectée 2 la sortie de la trace: c'est partllement fait dans 1a parte droite de figure 73, 1012-11 PROCESSEURS VLIW Figure 13 Ordennancement de taces La figure 14 présente un exemple de modification de code pour tun bloe sortant de In trace, Le tost x >0 veri fait sortie de In trace fen son milieu. En positionnant le test en début de trace, et en upliquant Finstruction 1 dans fe chemin hors de ls trace, IY 4 ‘exéeution séquentille. de T'un ou autre des chemins. depule Frente de Te trace. Le figure 18 monte Vexemple dusl, Uinstuc tion 4 entre dans le tace.En permutant les instuctions 2 et 3 dans Te'tace, et on dupliquant Inst ccheming se vejoignent en fin de Implique done ajout dinstructions, mais en permettant une exé tution plus efficace des chemins lee plus frequents, 3.2 Contraintes liées au pipeline logiciel Le pipeline logiciel est fa technique la plus efficace avec les pro- cessours VLIW pour maximiser lulfsation des unilés fonction relies. Le complateur de rendre en compte un certain nombre Tntervalie compte teration {E) minimal, Il doit notamment prenc Tes fecteurs suivants: Ia nombre d'unités fonctionnelies disponibles par instruction VLIW, Le pipeline logiciel de Ia figure 8 nécessite lnz parce que Ta ouele originale a trois instructions mémoire alors que Vinee tion VLIW rena que deux. Dane un tol cas, un aéroulage de Doucle d'ordre 2 permet de répartr six instructions mémoire sur twoiseyeles {na} “ia durée de Vie des variables. Une instruction peut effectu calcul sur deux opérandes atl'un des deux opérandes arrive beau coup pis tard que Fautre. Le completeur dott faire une opi ‘epérande précoce pour augmenter Ia durée de vie de la variable ft la rendre compatible avec Iintevalleinter-itération es. Lor di Yoav bX peline logiciel 5 valeurs de yl sistres, pour évit euivie immedi tement dune loctire mémoire pour iteration suivante Le lecteur intéressé trouvers dans [8] de nombreux exemples de traitement dt pipeline logiciel pour les processeurs des sévies TMS320C8x de Toxes Instruments qui sont présentés dans le paragraphe 4.1 Figure 14~Exemple de modification pour les blees sortant de Ia trace Figure 18 Example de modification pour les blocs entrant dans la wace H1012-12 ‘Copyriaht © ~Teehniaves de Iogsnieur—Tous dois eserves Parution : aodt 2015 - Dernidre vali PROCESSEURS VUW 4. Exemples de processeurs VLIW 4.1 Processeurs TMS320C6x ‘Texas Instruments propose une famille de processours VLIW de traitement du signal: les C62, Cod et CB4+ operent sur des enters ete C87 y ajoute Te calcul lottant. Ces procesceurs cont tres repre Sentalfs dune approche purement VLIW, tele qu'elle a éte defini. Let differences entre les différentes générations sont présentéos fen detail dans [9 4.1.1 Premiéve génération : C62 et C67 Le C62 (1998) ot le C57 (1998) ont été implantés avec une tech nologie 0,18 um. Le sehéma fonctionnal du C62 [10] est présente fn figure 16. Icomprend deux banes de seize regisires do 32 bit Cheque bane de regstres permet hut lectures et eing éevtures par tyele. Cette organisation en un cluster de deux bans dstncts per. ‘met ce miter la complexité matériele par rapport 4 un seul Bane Seize lectures et dix ertures. A cheque bane sont associées quatre Unites fontionnelles une unité mémeire (0) Sune unite de multiptication (MM): Tune unite arthmétique et logique (L): Tune unite arthmetique et logique et de décslage(S) Doux multptexeurs permettent qu'une unité fonctionnelle d'un bane obtionne le contenu d'un regietre de autre bane La réparttion des instructions selon les unités fonetionnelies ext présentée dans le tebleau 6. Detailer chaque instruction sort du Eade de cet article Il est simplement interessant de remarquer {ue cortaines instructions sont limitees & une seule unite. Cest lo 2a des multiplications aves Tunité M, et le cas des insivuctions mémoive aves les load (LD) et les ecre (ST). Par contre, certains instructions peuvent tro exécutées par slusiours unites fonetion- nelle. Par exemple, les adations et les soustractions peuvent &tre exécutées par les unites L, § etD. Les branchements cont intégrés fans Tuite S. Les acces mémoire disposent des afférents modes avtosinerémentés et autosdécrémentés permettant optimiser les soces aux tableaux tableau 7) Les instructions peuvent dre prédiquées vie cing rogitres géné- raux.IIn'y a pas ullisation de regstres tournants Les latences des Instuctions sont d'un eyele, sauf celles des instructions sulvantes 35 chargemants de registres (cad) avec cing cycles: ‘multiplication entire (16x 1B bits) avec deux cycles; les branchements avee sx cycles, Lalatence de sic cycles signifie que les branchements sont retar és, les cing instructions suivant fe branchement ant executes fvant que le branchemant soit pis. Dans la version iniiale d'une Bouele il faut done deplacer cing instructions de la boucle aprés Te branchament en inserant. éventuellement des NOP. Latablis- sement du prologue prend en compte cette particulate. Alors que les branchements retardes dun cycle dane los jeux dinstructons MIPS et SPARC posent des problames de compatbilite binaire ascendante, cola est beaucoup moins critique pour les processeurs de traitement de signal tnese32) Matty TIS TRUCTION DISPATCH INSTRUCTION DECODE: = PROGRAM BUST ESE Resistors DATA'SUS TEDL Figure 16 - Sehéme Fonctionn lu processeur TMSS20082 ‘Copwiant © Techniques de ngéniour Tous dots risers H1012-13 PROCESSEURS VLIW Tableau 6 - Répartition d'un sous-ensemble des instructions selon les w t M s D ABS ‘SADD MPy ADD MVR ‘ADD ‘ADD SAT ‘sMPY /ADDK NEG ‘ADDA ‘AND ‘SSUB MPY /ADD2 NOT LD mem eMPEa ‘sua AND oR LD mem (15 bit (02) cMPaT ‘suac B disp Ser Mv cemPcTu XOR BRP SHU NEG ‘oMPLT ZERO NAP. SHR ST mem eMPLTU Brea SHRU [ST mem (15 bit (02) wap cuR SSHL ‘sua wv ext SUE SUBA NEG ExT SUB2 ZERO NORM iwc (2) XOR Nor ww ZERO OR Mv Tableau 7 - Modes d’adressage linéaire des TMS320C6x “Type dadressage Sans modification Préincrément ou Déerément | Post incrément ou Décrément Registre Indirect on wa ooh ogists + déplacement FeRlucss] sRlucsts) aloes) + Rluest6) Base + Indox FeRlotfsetR Sr aRloffeotR] RloteetR] sRlotfsetR) LVarehitecture et le jou erinstructions ont également des caracté- Fistigues ges sux spéeiftés du Waltement’ du signal, dul Implique souvent des données sur 16 bits =unité M permet Fexéeution simultenée de deux multiplies: tions 1616 bits avec résultat sur 16 bits sur les parties bazse et haute des registres 32 bits [instructions MPY et MPYH). Des acces mémoire 32 bits permettent de tater deux mutiplications 16 bite ‘Tun meme bane simultenément: =Mutlisation de deux reg'stres de numéros conséoutis permet de tavailler sur des donnees de 40 bits pour permettre detendre amplitude des entiers représentablee: ~ aux modes c'zcressage linéaires tableau 7) ssjoute le mode dadressage circulate permettant de. gérer” das tampons reulaires, technique souvent utilisée en traitement du signal. Un registro spérial(registre made dadressage| permet de specifier les Fegistves utlisés pour Tadressage circulaire (A4-A7, 84-87) et la taille des tampons eirculares (2"" octets), soit de 2 octets & Booctets ~ ete. Dang le TMS 320082, le mot c'instructions long peut comporter jusqu'’ huit instructions de 32 bits Le processeur accede simulta- hément 4256 bits, Copendant, comme [es Rul instructions ne sont pas forcement exécutables dans le méme cycle, chaque instruction H1012-14 dispose dun bi. Ce bit est. orague nro et exteutble favec d'autres Instructions dont le bit est 1. Le premi Te fin ‘des executions. parallaes. Les suivantes dans le paquet de hult mots dem tutions flotantes. Les latences de ces 9 eycles, avec un debit de demerrage ment des flotants en double pré ‘de numeros sucoessite Cision ae fit dana deux regs 4.1.2 Deuxiéme génération : C64 Le €84 [12), appara on 2007 avec une technologie 0,13 jm, est ‘une extension sirecte du C62 avec les caracterstiques suivantes =les bancs A et B contiennent maintenant 32 regstres au liu de 16: “des restrictions sur tions ont été lev ~ des instructions SIMD permetant des celule sur 48 bite ou 2x 16bits signés ou non signés ont é1e sjoutées (voi |} 1200), pourle prineie des extersions SIMD) ~ dos instructions de calcul sur champs de Galois pour Ie codage et décodage des fonctions Reed-Solomon, ‘Copyriaht © ~Teehniaves de Iogsnieur—Tous dois eserves Parution : aodt 2015 - Dernidre vali PROCESSEURS VUW Les instructions SIMD travaillent sur des données 16 bits (appl: cations audio) ou 8 bts (treltement d'images) Comprises dane les Fegistres 22 bts. Les instructions SIMD incluses dane Tinstruction VLIW sont codées aur 32 ite comme les instrictons.sealaires, Selon les cas, le résultet est obtenu dans un registve 32 bits ou Gans une paire de rogistres 32 bits consécutts, notamment pour Tes mutiaeations. Cette orgarisetion est compatible avec le fone Vonnement VLIW utiisant le pipeline logit! 4.1.3 Troisiéme génération : C64+ et C674 Le C874 11) apparu en 2008 est la version avec ealeul flottent du ‘64s [12 Par rapport au C84, le CB4+ double le nombre de mult pliours et ajoute deux innovations architecturales, dont une des Eription complete pout atre trouvee dans [8] = pour réduire la taille du code, certains slots 32 bits peuvent contenir deux instructions 16 bis. Cest le programme assembleur fui compresse dos insirucions 32 bits requemment utliséos Comme les sdaltions, les multiplications les décalages, les instruc tions mémoire. Ces instructions 16_bts ent. des fonctionnaltes, ‘éduites: valeurs immediates plus petites, moins de regisies ul Sables, certaines instructions ne peuvent avoir que deux opé andes ou lieu de trois et les instructions 16 bits ne peuvent utizer {Qu'une unite fonetionnele par cluster. Le mot VLIW de 298 bite est lors constitus d'un en-tate de 32 ite et de sept mots de 32 its, hacun ge cee mots étant colt une instruction de 42 bite, cot un paire de deux instructions 16 bits “un tampon matériel de boucle permet de réduive Ia taile du code résultant du prologue et de Teplogue dune boucle de pipe line logiciel. gare automatiquement le branchement de boucle. Le principe de fonctionnement dy tampon de bouele est le su: vant. Solt ane Boucle de pipeline logiciel ronsttuée des instruc Cons A's Ev avec I= 4, Lo code ott le suivant, lee instructions SLOOP et SSKEANEL marquant fe debut et la fin de la Boucle Vexécution est illustrée par le tableau &. Le nombre d'térations de la boucle est inivalement chargé dans un registre spécial MLC Le chargement du tampon correspond a execution du prologue. Lles instructions sont ensuite executées depuis le tampon, qui jou Te role d'un eache de boucle, Les instructions quittent Ie tampon § chaque eycle lorsque ILC =0, co qui implomente epilogue. Tous Tes détails de fonctionnement eu tampon de boucle sont Gécrits dans 12 4.1.4 Quatri¢me génération : C66x Le famille C88«(13), apparue en 2010 avec une technologie 85m, combine les caracteristiques des families Os4x et C874 et ajaute Ios fonctionnalites suivantes = quacruplage du nombre de multipleurs 18. 16 bits par rapport 4 Ja famile C84x, Un processeur de cotte femile peut effectuor 32 multiplications 16 16 en virgule fixe, et 8 multiplications en Tottant simple préeision par eycledhorloge un plus grand nombre instructions SIMD est utisable, tant on virgule fe qu’en virguteflottante; ~ des instructions spécifiques au traitement du signal pour le caleul sur les nombres complexes et le caleul matrice. Cos processeurs sont caractérisés par de fables consommations. Le C8655 (2012) consomme 25W a 1 GH2 avec tine technologie 40 nm. Le C8657 qui sat Un biceoeur consomme S5W a la meme frequence. Files sont comparables 4 calles de processeurs 2 basse consommation d'ntel de le meme période Per exemple, le processeur Atom 2650. (mono-cerur de 2011) consomme 3W @ 1,2 GH evee une technologie 45 nm. 4.1.5 Points communs dans les générations TMS320C6x Si des améliorations signficatves apparsissent dans les généra- tions. successives de ces processeurs (nombre. de registres, Towvelles instructions notamment SIMD, gestion materille dos Boucles, ils sont tous représentatfs de approche VLIW la plus puro, tlle que nous Tavons présente en inroduction, O'autres rocesseurs, comme le Trimeia de PhilipsiNexGen possedent des Earactéristiques similares, Tableau & - Exemple d’exécution d’un pipeline logiciel avec tampon de boucle inkgeture Lecture dans tampon Exéeution ° ai ° ai 7 a a a A 2 a BA Cee 3 oF BAe DY G2 a3 Aa 4 2 03 ce aS 2 03 C4 BB = Ds cs = Dé cS = 05 05 & es ‘Copwiant © Techniques de ngéniour Tous dots risers H1012-15 PROCESSEURS VLIW Des versions multiprocesseurs des VLW de Texas Instrumente existent, comme let C663 et COBx, ou inegrés dans des Systemes Sur puce aves des processeure ARM, 4.2 Processeur TigerShare Le processeur TigerShere d’Analog Devices est un processeur de traitement du signal qui possade des caractvistiques VLIW et des ‘ceractarstiques des processeuts superscalaies 3 ordonnancerent Statigue [volr|H1010) sur les" processeurs superscalaires ‘ulttpipelines). Solon los présantations, Tun ou Tautre das Aspects est mis on avidence: VLIW dans 1d) et superscalaire Statque dans a presentation d’Analog Device [15] aspect VLIW correspond aux caractritiques sulvantes le processeur Ii des mots de 128 bits. I n'y a cependant pas de contrainte alignement memoire parce qu'un tampon aligre= ant mémoire sligne aulomatiquement les mots de 126 bits non slignés “iI peut exéeuter une 8 quatte instructions en parade, ot c'est le programmeur ou le complateur qul defi les instructions exé- cutables en parallale. Ilya un certain nombre de contrintes sur Tutlisation des ressourges que le complateur doit prendre en ‘compte pour former les instructions axéeutables en paral aspect supersealare statique cortespand aux earactéristiques suivantes le matériel contre les dépendances de données entre mots vuw le processeur utilise des prédicteurs de branchement qui n'ont pes de raison d'étve dans un pur VLIW. Le schéma fonctionnel au arovesseur est présenté on figure 17. Comme les processeure VLIW de Texas Instruments, Ia partie aleul est divisée en deux blocs. Chague bloc est constitue. de ‘2 registres de 32 bits et de plusieurs unites de caleul ~ une unité arthmétique et logique pour les opérations en vir- ule fixe et virgule fottante ~ un décaleur pour les décalages et rotations, la manipulation de bits, Ite opérations sur des champs de bits, les conversions virgule fixe-virgule flottant, ete: Un mulipieur-sccumulsteur pour le ealeul virgule fixe, virgule flottante et sures nombres complexes ¢ “une unté de communication pour I'exécution dinstructions spicislsées pour des algorithmes particuliers {Viterbi Turbo codes, | La génération des adresses mémoires est effectuée par deux unités IALU ayant chocune 32 rogitves do 32 bits Cos deux unites ermettent Tes transfers “de données, des operations Srithmetiques at logiques at les différents calculs d'adresses avec fu sane mise a jour des registes pour les instructions memoire cad et sore, elles permettent notamment fadressage circulave et Vadressage bit inverse utlise pour le caleul des FFT Le séquenceur réalse les opérations suivar ~il fournit adresse du mot de 128 bts & lire au tampon eali- fanement des instructions; il extrait de ce tampon lnstruction longue a exécuter {une 3 quatre instructions de 32 bits), “il exécute les instuctions de contre comme évaluation des conditions, gestion du tampon e'scresees de branchement (BTS, ‘erémentation des compteurs de boucle et suspension du pipe” Ting si ndcesseir, Il gare également les interruptions aspect processour de traitement du signal (DSP) est clair formats do données entiers (8, 18, 32, 64 et complexes sur 32 bits) et flottants 32 at 40 bits; modes d'adressage typique des DSP; instructions spécisles liéos 4 des algorithmes de traitement du signal. H1012-16 LVinstruction VLIW exéeutable en un cycle ne comport au plus que quate instructions 32 bis. Par conte, une instruction peut te Valleren paralale sur les deux ocs de call. De meme, une in Ituction peut trvaller sur des paires de registres de numéros consécut's, ou sur des groupes de quatre registres consécutis, ‘avec des contraintos sur las groupes de deux ou quatro registres jae. Lee instructions SIMD travailent sur des mote de bits 0 TS its dans dos registres do 37 bits et fourn'ssent les résultats dans un registe 32 bts 04 une pare de regisires conséeutls, Le lecteur intévessé trouvera tous les détails matévels at logt ciels sur le TigerShate dans les manuels [1516]. Les dernier aro: beaseurs de cette famille Gatent de 2008, 4.3 Processeurs Itanium Les processeurs Itanium implantent le jeu dlinstuctions 1A-6t 7], qui est un jeu dinstructions connu egelement sous Tacro rnyme EPIC lordinateur & jeu d'instuctions expleiterent peralele) fayant des caracteristiques VLIW. ls étalent supposes supplanter Ie jeu dinstructions IA-32 des PC, comme insique dans le bref histo Fique au debut de cet article Dans un jou d'instructions VLIW pur, le compilateur génére Vine tmuction Tongue contenant toutes les instructions exéeutables en parallale, Dans IA‘2, les Instructions longues de 128 bits, appelées bundles ont le format préserté en figure 18. Le bunala cormarend trois instructions de 41 bite et un template de § ita qui ® deux fonctions. indiquer la nature (enter, flottant, mémoire, branche mment..) de a combinalson dee. sols insiructione ‘parm’ lea Combinaisons autorisées d'une part, et indiquer si les trois instruc tions sont exécutables en parallale ou non. Le format des instruc tions 41 bits ost relatvement classiqua, avec trois champs pour dresser les deux opérandes source et Foperande destination dans Un ensemble de 128 rogistres, 14 bits de code opération ot 6 bits de précieat Le tableau 9 illustre la distinction entre las bundles de 128 bits et les instructions exécutables on parallale. Le compilateur ganére les ‘bundles comme un groupe de trois instructions entre () precedes ‘une indication sur la nature dee ‘oie instructions (figure 19). Par fexemple, zi signfie mémoite-mémoireentier. Le. compilateur lace un double poine-virgule a la fin une suite dinstuctions ‘exéeutables en paraliale. Dans exemple de la figure 18, ily a suc cessivoment 2, 1, 1 et 8 instructions gui sont indépendantes, Clestdire ayant aucune dépendance de données. Or, le nombre Sinsiructions sans dependanee pouvant sive super eur au nombre ‘unites fonctionnelles disponibles pour les exéeuter, cast le mate Fiel qui va décider quelies instructions démarront effectvement ans’ le meme cycle dhorloge.” Cette distinction ante ‘instructions sans dependence » etx instructions exéeutebles en parallale» devat paler une des eontraintes de Vapproche VW pute, dans laquelle ne peuvert démarrer dans un eyele donné que fee instructions présentes dane instruction VLIW de longueur fixe En effet, elle permet des genérations successives ce processeurs ayant un nombre croissant unites fonctonneles, petmetant ins! une mellevre execution des instructions sane dépendance de donnéae, Le schéme fonetionnel du processeur ienium est présenté en figure 20. 4.3.1 Implantation EPIC dans les processeurs Itanium Les processours kanium et Htanium 2 pouvaient acquérir deux boundliés (256 bits) simultanément, chargés dans un tampon dine tclons de 8 bundles, ‘Copyriaht © ~Teehniaves de Iogsnieur—Tous dois eserves PROCESSEURS VUW PROGRAM DATA ADDRESS GENERATION. INTEGER “ALU P| erate) Feren ju 4.28 ADDR lm} | [ssussae aus oara we [e fe <= + 1 (a vw : i y Poy z/) Ee |/2 : “rie Lee as , (ety Figure 17 - Sehéma fonetionnel du processeurTigerShare tl suivante jetes FR a 8 porte de lecture et & porte res pairs ot impairs Contenant des predicate 1 bit. Les registres PRO & PRIS sont fees {avec PROT) ot PRIB & PRGA sont tournants, 2 64 bits pour les branchements ts de données et un bit de validté anpelé NaN) pour les données entisres, Las registres GRO 4 GR31 Sort fies et destins aux variables globales. Les registres GRGZ 8 GRI27 sont tournants, selon le principe présente au paragraphe 2.52. Le bane de regiatres GR 2 8 ports de lecture et Sports a'eenture =128 registres de 2bits pour les nombres flottants. Les rogisires FAO 8 FR31 sont fixes, los rogistres FRO ot FRI étant res Peetivement edbl6s 8 0.0 ot 1.0, Les registres FR32 a FRIZ7 sort {de compersizon permettent de caleuler un pradicat en ‘onction de ‘cambinsizone de compar es, comme. ‘Copwiant © Techniques de lngéniour Tous dots risers 1012-17 Parution : aodt 2015 - Dernidre vali PROCESSEURS VLIW ae Figure 13 — Instruction longue (128 bis) ot format dune instruction {ah thal pour tad ‘Type unit exéeution A UAL entier Unité | ou M p Entiere nen-UAL | Unite | M Memoire Unité M F Florent Unite F 8 Brancnements | Unite & ox Etend Unité (om Ces instructions de comparaison sont elles-mémes prédiquées. Le mécaniame présenté au poragraphe 25.2 et illus par les tableau 4 et tableau 6 est ullsé pour implant Ie pipeline logiciel, san devolr éerite los codes du prologue et de Tépilogue. Le jeu einstructions 18.64 visent tous les types application, et ron principalement fe traitement du signa, il comporte des earac- {Grisiques permettant sider execution de programmes dont Te comportement n'est pas connu 3 la compilation et déviter los Tatences ldes la hiérarchie memoire (défauts de eachel, H1012-12 4.3.2 Prédi n des branchements Des instructions de prédition de branchement transmettent au matériel des informations Elles indiquent =si le branchement doit sire prédit pris fatetiquel, ou prédit dynsmiquement, s'est un branchement de bouele ou sil ext un branchernent de sortie, =i indication de prédiction est plus ov moins importante ; “adresse du branchement qui est prédit: adresse eible du branchementrelati et le regitre de branche: ‘ment pour les branchemants indvects via reise Les instructions de branchement ont des indicateurs (hin) sur la prédietion du branchement (staique ou dynamique, pris ou non Dis), surle préchargement sequentel et sut le maintian ou non de fa prediction dans le cache de branchement. Le matériel du processeur Kanium dispose de plusieurs types de prédietours de branchement 4.3.3 Accés mémoire anti pes Comme le montre la partie gauche deta figure 21, une instruc tion de chargoment pout Bie Ia premiére insiruction d'une chaine instructions dépendantes et son exéeution peut sive remise en tauge en cas de mauvaite prédievion du branchement dont ele ott ia cible. Par sileurs, elle peut provoquer une exception. Des ine ttuctions de lead splculatifs et de load anleipés permetent dat ciper Tacces memoite dans le bloc avant le branchement, comme Te'monve la partie droite de la figure 21. Si acces mémaire pro Vogue une exception, elle est propagée at linstrucion de verifice tion (ches) effectue un branchement vers un cade de traitement de exception La figure 22 montre comment revenir en arrére en cas d'excep- tion avec un ead antiipa. La partie gauche montre le code 1A-64 intial, Dane Io partie drove, les instructions 2 et 3 ont ate déple bee avant Minstruction 1. Si instruction 2 provogue une excep tion, Tinstruction chk détecte exception et appelle le cose de récupération. Le matériel ullise une table d’adresses des Ioza art ‘ings (ALAT|: les instructions mémoire spécultives ou avancées Laligent une entrée de la table que viennent tester les instructions de contre, Les exceptions sont propagées vis le bit NaN os ragistres ener, Le matériel contre les dépendances de données en utilisant un tableau de marques (seorebonra) qul est 'un des dispostife utilises dans le processeurs scaleires et superscalaires a ordonnancement statigue, Les processours Itanium ont clirement des caraetéristiques VLIW comme la formation par le compilateur des instructions en bundles, par Vindication des instructions exécutebles en parallale tt par es diopositfsfecltant ulilisation du pipeline logiciel: in Uuuttions prédiquées avec registres ce predieat et registes tour ‘ants. La distineton entre instructions parallles sans dépendance de données et instructions peraleles effecivement lances & chaque eysle permet qu'un jeu dinstructions # caracterstiques VLIW soit executable sur des architectures matéreles differents, contravement au cas des processours VLIW ‘raditionnels. Les Contraintes des applications usage genéral ant condut a Tejout de caracteristiques des. processeurs superscalaires comme. les prédieteurs de branchement ou facltant le ré-ordonnancemert {es instructions par le compilatour pour prendre en comple les Tatences Hees & la higrarenie memolre ‘Copyriaht © ~Teehniaves de In gsnieur—Tous dois reserves PROCESSEURS VUW . andiaintochenioe [[™ FT ap presieion | DecouBtna] buns decode] “ T Lec hed Fee eer Se" =] EE i i = be 5. Conclusion » approche VLIW, basée sur un ordonnancement statique parle . ceprewton complateur dinstructions dans une insiration tres longue favor rere i. fise utfsation du pipeline logiciel, genéralement combinée avec = — ‘déroulage de boucles pour exécuter le meximum instructions = ches sxceson fn parallsle dans les. diferentes unites fonctionneies. Si le station ‘ttiaton V)ebivee antrdle des dépendances de dannées et de convdle uniquement suite Perle logiciel simpifie implementation matériel, des variates Uilfsent un contrale matériel des dependances et des techriques comme les prodicteurs de branchement pour prendre en compte & Finer 21 - Amiciortion va des lod srsenents Fexéeution ce qui n'est pas connu 3 la completion approche VLIW s connu et connalt de grands succés dans les proceaseurs spéciaisgs our le traitement cy signal: le meileur mes insane exemple est le serie TMS320C8x de Texas Instruments, Elle est 1 aussi beaucoup utlisée dans des coprocesseurs de systomes sur ius ls pire (SoC) pour Is parte traitement cu signal, Dans ve domaine, Bad or bile combine haute performance et faible consommation, ‘cena Pour les processeurs d'usage général, histoire du Transmeta et des processeurs Itanium a plutst montré la supéririté des proces- Sours superscalaires mult-pipelines et encore plus superscaleires de type «fot de données restrint » aust! appeals & executon non ordonnée exécutant les joux instructions IA-2 et Intl64 Pour des architectures mul-cotuts ou a trés grand nombre de caours faible consommation, les provesseurs VLIW peuvent étre line solution viable. ls béneficient ue la simplification de la parte Contéle per rapport aux pracesseurs gérant les dépendances par Sm avee lad ‘material. Ceto simplification reduit 8 [a fois [a surface cu proces {our et la consommation énergetique Figure 22 -Exemple de récupération on cas d'oxco ‘Copwiant © Techniques de lngéniour Tous dots risers H1012-19 Parution : aodt 2015 - Dernidre vali Processeurs In] CHARLESWORTH (AE). — An approach to Seentie aray processing: the arehtetural enon of ‘he AP 120808: 908 toriy Computer sept 98 [2] FISHER UAL. - ory long instruction word Lrehtactres and the £11912 Proceeding of ihe 10° ernualntomationdl aympecuns on Computer srentecture SCA Bap. 14030, (ees [a] FISHER (AL. - Trace scheduling» techn (Que for gobs! mitecede compecton EEE Frasseetons on Computers, e307), pearens0,l 18, (él BESK (G:R, YEN (D.W.L) at ANDERSON (Li The Cyare 5 minsupereompater: Lchliacture and implantation. The fost a of Supercomputing, 7712) (13931, (61 COLWELL (RP. NOK IR), ODONNELL (OD), PAPWORT (0) RODMAN TP SA VUIW arohtetare fora trace sehedung 1,5. 307379, soc 1988. [61 DUPONT O€ DINECHIN IB) ot af cust ‘mbedded and fcslertted applications. in Proceedings. High Pertormence Exvome Computing Conference, spe 2013 A ANCEAU (fet ETIEMBLE (0., — inveduetion & Varentectre doe ordinates (M080) (20708 ETEMBLE (0) ot ANCEAU IF). — Hidarcio Imamare ae teehee [093] 20128 EMBL 0) ANCEAU Pour fears" option Techniques de ngénieur Tous dots cers par Danie VLIW 1 ETIEMBLE Ingénieur INSA Lyon Protesseur émérite 4 universté Paris Sud Sources bibliograp! hutaiesehpe orgi2018) a Indexchom festa pet DP) RALPHILL (TRI. ~ Transmeta breaks x86 low:power toe 3000 {1 Texas Instrument - 7MS3206000 program. ‘mer’ guide 20") Freteace comivugispret ah “Texas lnetrument. — TMS920C66% DSP CPU ‘and inatructon set (20¥0) Iepihaar teams (14) WOLF (0) ot BIER (3. — TigeeShae sinks Wot 12.n"6, nov. 1098 IepihwurbconMyBOTY soretsahpat pubstgurnarepat {91 Texas Instument — rsszacezx SP CPU tndinsructon set reference guide (2010) (18). Analog Devies, - ADSP-7820" TgerShae tpi tsomvugepra!sa! Processor’ programming eterence, Rev soursiepat ‘oa 0a) 110) Texas Instument —r4sezace2x SP CPU Ioihre ansiogcomistate ‘nd stucton st rforonce guide 2010) Imported fie rececor morula ip scornglarSt! sifssanceteisoca01 para! seeratet 106) Apaog Devices - 5.0 C+» ggmpiler and Un Tents aman russzocercer Ihvary mana fr TigerSHARCS procesors in st rte a Hee nscomivatarTia! eodarwaralegcomimainen) mourn Schutte mana pat 1021 Toons nrament—TMS220CBbCEAe DSP Cp and Instruction aot reference guide (17) Intl ~enumarehitecurevol 122-6 fora ms voanual fits comvuasps792) ‘pstmt comidesigntaniny Sonera ‘mesatestmana ire également dans nos bases ETIEMBLE ID), ~ Evolution ge Fartecure es ordinates [HO (209), ETIEMBLE (0) t LACASSAGNE (L),— Los econ: ons SIMD dee jour @inatroctons: (1200) Gore, ETIEMBLE (1. — nvodueton aux eystimes fmbargus iM 8000) 2010 ETIEMBLE (0) ot ANCEAU [F ~ Los proceseurs Superscalares mut ppetines. (1 01] 201. Doc. H 1012 -1 2cov LS N Ss rN A ce] I iy P 5 Lu s O v a TECHNIQUES: DE VINGENIEUR Gagnez du temps et sécurisez vos projets en utilisant une source actualisée et fiable 3. eoioéeeTvauloee ise JOUR PARDES EXPERTS PERMANENTE > + de 340 000 utilisateurs chaque m: a 100% COMPATIBLE SSURTOUS SUPPORTS NUMERIQUES > +de 10.000 articles de référence et fiches pratiques > Des Quiz interactifs pour valider la compréhension CQ lel eile sy 2 (Questions auxespetst Lesmeiers experts techniques Aides Déouverte Lapossibiitedec scentiiguerveustepndent | des aries en deers devete fe iE @ Dictionnaire technique mutilingue 45000 termes en francais, anglais, ‘pagneletallemand a Archives anterieres de atic + senvices Nc.us DANS CHAQUE OFFRE 4 Info parution Technologies ancennes et vesons|Recevez par emalteteslesnuvenstés devorteceurcesdecamentaies *cesnsac eer etn sevice ser acer on oped as fies ls unestsoupoureat ae agar deat. Les offres Techniques de |'Ingénieur ‘@ innovation ‘SFewvinonnemenr-sécuriré _ -Brévectronsque-Pwotonique eA proces cnime - “Ee-onepion einTaTOpOTE—— “Sate gern er ees “ioe Feralin “Ravedencreaateoolgs “Eons “leo dae gptons Bop etbopoctons Inert teases ctieeaigaie plat“ Pte Gomevere Maageret et agieridefinnoaen = Saray =ileinteligente Tsmattnaux “el pies eres ceamiques “Tere: “Gaon —Vielsenent “feuds et paprtés desma Mie enfrme des metauee andere Matera fonctions Matra Doses Tratemens de: métaue “Elonaten etreaylage esta, ‘Plasiquset composes ‘Be mEcawique “renee ER “Fontaneonprin mens “iments hone “ncn pig, earn ueet themes “Fbeaon dtp sb “Mer Respensableriqu chimique Mer: Respansableentoneren -tthewencies “Ras gtguset Fred ses - * Reames “Themen oueecae eon detrei “Heencdcrace soa GENIE INDUSTRIEL Ted ctr Management stil Canepton et profcion ogotque Meer Responsable quate balges, Mrinteance “raaiite Miler Resposablebueau ee conception Cea $recanotoctes oe vinrorMaTION “Letratemen du sgralet es pplcaions “Technolog logiceles~Atecttesdes sptenes “Sears systres deformation <= AvTomaTiquE - RoBoTIQUE “hatraigu tinge etme febotue ‘i INGENIERIE DES TRANSPORTS ial etmabite afta Stes abonavtqus patie Stes feroiares “Tansertflvaletmatine ‘axe MESURES ~ ANALYSES Tnstunentain etal de mare Mesures eet congue; Mesures mécrigus et dnensoneles alt etstarteaulaboratre Mesures poyiqus Tetiqes danse “ote dest Opeatons uae, Gene delareactn chimiue| galerie SCIENCES FONDAMENTALES Natiematiue PhysiqueCaie Constartespyse-cheiues Carats pron dea matoe ‘BIOMEDICAL PHARMA TecadlogesBomedales Medianens et prota parmaceut ques “FE constaucrionerraavauxrusuics ri onsen his de onrucion anton eee stpettre sane second wave etl éupement du bitinert

Vous aimerez peut-être aussi