Cours sur la chaine de compilation
8 pages
Français

Cours sur la chaine de compilation

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
8 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Regards en aval et en amont de lacha^ ne de compilation.Didier Remy2000 - 2001http://cristal.inria.fr/~remy/poly/compil/9/http://w3.edu.polytechnique.fr/profs/informatique/Didier.Remy/compil/9/En avalLa cha^ ne de compilation du cours s’arr^ete a la production decode assembleur pour le MIPS.En aval de la cha^ ne de compilationOn pourrait considerer encore quelques etapes :{ L’assemblage.Slide 1{ L’edition de liens.{ L’ordonnancement des instructionsLa gestion memoireLes langages moderne o rent une gestion automatique de lamemoire. Un minimum d’interaction entre un gestionnairememoire et le compilateur est necessaire, ne serait-ce que larepresentation des donnees allouees.AssemblageAvant d’^etre execute, le code assembleur ( chier ASCII) doit ^etretraduit en code machine ( chier binaire) : il reste a eliminer lespseudo-instructions, a resoudre les etiquettes, generer le codepour le chargement des declarations de constantes, etc.(Dans certains cas, l’assemblage peut egalement comporter unepartie d’ordonnancement des instructions.)Slide 2En general, l’assemblage est un programme separe de lacompilation, parce qu’il ne depend que de la machine cible etpeut ^etre partage entre plusieurs compilateurs pour des langagessources di erents.Le programme d’assemblage est aussi, en general, fourni par leconstructeur.Edition de liensUn programme peut se composer de plusieurs morceaux, parceque le source est compose ...

Sujets

Informations

Publié par
Nombre de lectures 43
Langue Français

Extrait

Slide 1
Regards en aval chaıˆnede
etenamont compilation.
DidierR´emy 2000 - 2001
de
http://cristal.inria.fr/˜remy/poly/compil/9/ http://w3.edu.polytechnique.fr/profs/informatique/Didier.Remy/compil/9/
En aval
Lachaıˆnedecompilationducourssarreˆtea`laproductionde code assembleur pour le MIPS.
En aval de la chaˆıne de compilation Onpourraitconsid´ererencorequelquese´tapes: – L’assemblage. L´editiondeliens. – L’ordonnancement des instructions
Lagestionme´moire Les langages moderne offrent une gestion automatique de la m´emoire.Unminimumdinteractionentreungestionnaire m´emoireetlecompilateurestne´cessaire,neserait-cequela repr´esentationdesdonne´esalloue´es.
la
Slide 2
Slide 3
Assemblage
Avantdˆetreexe´cute´,lecodeassembleur(chierASCII)doiteˆtre traduitencodemachine(chierbinaire):ilrestea`e´liminerles pseudo-instructions,a`r´esoudreles´etiquettes,g´ene´rerlecode pourlechargementdesd´eclarationsdeconstantes,etc. (Danscertainscas,lassemblagepeute´galementcomporterune partie d’ordonnancement des instructions.) Eng´ene´ral,lassemblageestunprogrammes´epare´dela compilation,parcequilnede´pendquedelamachinecibleet peuteˆtrepartage´entreplusieurscompilateurspourdeslangages sourcesdi´erents. Leprogrammedassemblageestaussi,enge´ne´ral,fourniparle constructeur.
´ Edition de liens
Un programme peut se composer de plusieurs morceaux, parce quelesourceestcompose´deplusieurschiersouutilisedes librairiescompil´ess´epar´ement.
(Ilfautpourcelaavoirrespecterlesmeˆmeconventionsdappels, depr´ef´erencelesconventionsstandards,dansleslibrairies partag´ees.) L´editiondelienspeutrassemblerplusieurschierenunseul. Lesidenticateursd´eclar´esglobauxsontpartag´es.Les´etiquettes localesdoiventeˆtrerenomme´es.Lecodedoitaussieˆtrerelog´e (translat´e).Pourleslibrairiespartage´esentreplusieurs programme,chaqueprogrammeprocessusa`satabledindirection parrapportauxadressesdesfonctionsdelalibairiespartage´e.
2
Slide 4
Slide 5
Ordonnancement des instructions
Lesinstructionsmachinessede´composentendesop´erations encoreplus´ele´mentaires(micro-instructions)ex´ecut´eespardes unite´sdecalculduprocesseur. Parall`elisme Lesprocesseurspeuventexe´cuterplusieursmicro-instructions enparall`elesmaisaveccertainescontraintesderesource(par exemple un multiplicateur a aussi besoin de l’additionneur). Lorsquunedesunit´esdecalculestoccup´eeellevaaumieux bloquerled´eroulementdescalculsenparall`ele,aupire interfe´reraveclecalculenparalle`leetfournirunr´esultat errone´. – Pipelining Pourproteraumieuxdelapossibilit´edeectuerdescalculs enparalle`le,lesprocesseursmodernesutilisentlepipeliningdes instructions.Leprocesseurcommencelex´ecutiondune
instructionsi1au cyclekqui se poursuit sur plusieurs cycles, mais il entame l’instruction suivantei2dleycecsd`ek+ 1alors quelapremie`reinstructionnapasforc´ementnilecalcul. Par exemple, parce que l’instructionmul $t1,$t1,$t3est plus lente que l’addition, suivi de l’instructionadd $t1,$t1,$t4. La valeur de$t1prise par l’addition sera alors sa valeur avant sa multiplication par$t3. – Scheduling Lesinstructionssontr´eordonne´espour r´eduirelestempsdattentent,enlan¸cantcertainscalculs plustoˆt. e´viterdesincoh´erenceslie´saupipelining. (Parfois,ilestn´ecessairedesinstructionded´elai(quine calculent pas). Leschedulingpeutˆetreprisencompteparlassembleur (ordonnancement statique) ou directement par le processeurs (ordonnancement dynamique).
3
Slide 6
Slide 7
Eneet,lemeilleurordonnancementpeutde´pendrede parame`tresdynamiquestelsquelalocalisationducodedansle cache,cequunordonancementdynamiquenepeutpaspre´voir
Gestionm´emoire
Glanage des Cellulues (GC)messtteie´leamarorncppeaes.e Lam´emoiresepr´esentecommeungrapheoriente´doncles nœudssontdesblocsm´emoiredelongeurvariableetlesarcs sont des pointeurs d’un bloc vers un autre. ` Auninstantparticulierducalcul,lam´emoireestaccessibleparle processeur`apartirdunensembledepointsdentre´eappele´sles racines : ceux-ci incluent les registres du processeur, la pile de´x´ecution,etlesvariablesglobales.(Onneconnaitpastoujours l’ensemble exact des racines, mais mais un sur-emsemble qui contientaumoinstouslespointsdentr´eepossibles).
Lam´emoirevivante`auninstantdonne´estlapartiedela me´moireatteignable`apartirdesracinesensuivanttouslesarcs possibles.Lapartiequinapuˆetreatteinteestde´nitivement d´econnecte´edesracinesetpeutˆetrerecycl´ee.
4
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents