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éservProcesseurs 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 seraPROCESSEURS 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-3PROCESSEURS 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 reservesParution : 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-5Parution : 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 reservesParution : 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-7PROCESSEURS 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ésPROCESSEURS 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-9PROCESSEURS 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-11PROCESSEURS 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 eservesParution : 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-13PROCESSEURS 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 eservesParution : 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-15PROCESSEURS 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 eservesPROCESSEURS 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-17Parution : 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 reservesPROCESSEURS 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 valiProcesseurs
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
sO
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