1 B. Goossens Autrans Présentation de sim-outorder B. Goossens Dali Université de Perpignan Via Domitia.

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Ma surprise du Zoo.
[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Vocabulaire 6.2 Français II Bon voyage ! 1.
1 B. Goossens Autrans Présentation de sim-outorder B. Goossens Dali Université de Perpignan Via Domitia.
17 B. Goossens D. Defour17 B. Goossens D. Defour Prédiction des retours Le prédicteur adresse une pile (mémoire à 2 ports)
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Le pluriel des noms
Les numéros
Sud Ouest Est Nord Individuel 36 joueurs
Les identités remarquables
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Initiation et perfectionnement à lutilisation de la micro-informatique Publier des films sur DailyMotion (sur Mac et sur PC) ©Yves Roger Cornil
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Les éléments de mémorisation
2 1. Vos droits en tant quusagers 3 1. Vos droits en tant quusagers (suite) 4.
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall.
1 7 Langues niveaux débutant à avancé. 2 Allemand.
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES COHESION CULTURELLE ET EXPANSION DES IDEES SUR LE TERRITOIRE EUROPEEN.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Synchronisation et communication entre processus
1 Choisir une catégorie. Vous recevrez la réponse, vous devez donner la question. Cliquez pour commencer.
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
PM18 MONTAGE DU BLINDAGE AUTOUR DE LA QRL F. DELSAUX - 25 JAN 2005
Titre : Implémentation des éléments finis sous Matlab
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
CONCEPTION ET SIMULATION DE CIRCUITS ÉLECTRONIQUES
LES NOMBRES PREMIERS ET COMPOSÉS
Unit 4: Les animaux Unit 4: Les animaux.
1 INETOP
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Notre calendrier français MARS 2014
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Les Nombres 0 – 100 en français.
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
Le 09/16/05 à 10:32 AM page 1 INDUSTRIE SA Patrice BEMER 24 RN STUCKANGE Tel : 0033(0) Fax 0033 (0) Siège social et entrepots.
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Nom:____________ Prénom: ___________
CALENDRIER-PLAYBOY 2020.
LES PILES ET FILES.
Exercice de vérification 1 p
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Les Chiffres Prêts?
Médiathèque de Chauffailles du 3 au 28 mars 2009.
1 Formation à l’usage éco-performant de votre pc 1 ère Partie.
Introduction à SolidWorks
Les parties du corps By Haru Mehra Le Frehindi 1Haru Mehra, DELF, DALF,CFP.
Transcription de la présentation:

1 B. Goossens Autrans Présentation de sim-outorder B. Goossens Dali Université de Perpignan Via Domitia

2 B. Goossens Autrans Plan de l'exposé A quoi sert sim-outorder? La structure de sim-outorder. Le pipeline de sim-outorder. Utiliser sim-outorder. Adapter sim-outorder. Conclusion.

3 B. Goossens Autrans Quand utiliser sim-outorder? Micro-architecture. Architecture (nouvelle instruction). Profilage (chemin hors trace). Enseigner l'assembleur (avec Dlite!).

4 B. Goossens Autrans Quand ne pas utiliser sim-outorder? Statistiques sur benchmarks (sim-profile). Performance de la hiérarchie mémoire (sim-cache, sim-cheetah). Performance de la prédiction de sauts (sim-bpred).

5 B. Goossens Autrans Composants du simulateur Un pipeline à 5 étages (f,d,i,(x),w,c) Une hiérarchie mémoire à 3 niveaux + tlb Un prédicteur de sauts paramétrable Des stations de réservation (# paramétrable) Une file des chargements/rangements

6 B. Goossens Autrans Architecture simulée Pisa (Portable ISA) et Alpha Pisa: instructions sur 64 bits MIPS IV-like 32 registres entiers, 32 registres flottants Appels systèmes par instruction SYSCALL

7 B. Goossens Autrans Architecture simulée

Micro-architecture simulée 8 B. Goossens Autrans

9 B. Goossens Autrans La hiérarchie mémoire nom:#set:#asso:remplacement nom: il1, il2, dl1, dl2, itlb, dtlb Remplacement: lru, fifo, random Caches L2 séparés ou cache L2 unifié Latences des caches L1, L2 et TLB Latence mémoire premier mot et suivants Largeur du bus mémoire

10 B. Goossens Autrans Prédicteur de sauts Préditeur parfait Prédiction toujours pris Prédiction toujours non pris Prédiction bimodale compteurs 2 bits Prédiction à deux niveaux (histo + compteurs) GAg: 1 histo de w bits, 2^w compteurs 2 bits PAg: n histos de w bits, 2^w compteurs 2 bits Prédiction hybride (McFarling)

11 B. Goossens Autrans Prédicteur de sauts Le prédicteur est combiné avec le BTB et la RAS Il est consulté dans l'étage d'extraction Il peut être mis à jour en ordre ou spéculativement Mise à jour dans l'étage de validation Mise à jour dans l'étage d'écriture

12 B. Goossens Autrans Les stations de réservation La structure RUU est une file Les instructions entrent à l'extraction Les instructions sortent à la validation Sert de banc de registre de renommage Sert de point d'attente des sources Les registres architecturaux sont séparés

13 B. Goossens Autrans La file des chargements/rangements Les ld/st allouent une entrée en RUU (adresse) Les ld/st allouent une entrée en LSQ (donnée) Un chargement attend les rangements antérieurs Les rangements sont propagés à la LSQ La propagation se fait dans le cycle du rangement

14 B. Goossens Autrans Le pipeline while (1) { commit(); writeback(); /* execute(); */ issue(); dispatch(); if (!fetch_issue_delay) fetch(); }

15 B. Goossens Autrans L'étage d'extraction (fetch) for (i=0; i<decode_width * fetch_speed && nb_fetched < ruu_size && !branch_fetched; i++) { fetch_inst(inst, mem, pc); if (fetch_issue_delay=imh_access(pc)) break; pred_npc=bpred_lookup(pc,inst); fetch_queue[tail]={inst,pc,pred_npc}; }

16 B. Goossens Autrans L'étage de distribution (dispatch) while (i<decode_width * fetch_speed && nb_decoded < ruu_size && ls_dec < ls_size && nb_fetched!=0) { {inst,pc,pred_npc}=fetch_queue[head]; MD_SET_OPCODE(op,inst); if (op&F_TRAP) break; set_rw_regs(op);/* DEFINST */ run(op);/* spec run SYMCAT(OP,_IMPL)*/ if (mis_predicted_target) fetch_issue_delay = branch_penalty;

17 B. Goossens Autrans rs={inst,op,pc,npc,ppc}; if (MD_OP_FLAGS(op) & F_MEM) { lsq={inst,op,pc,npc,ppc,addr}; set_dependency(o_rs,i_lsq); } set_dependency(o_head_create_vector,i_rs); if (bpred_spec_update == dispatch) bpred_update(pc,npc,op); L'étage de distribution (dispatch)

18 B. Goossens Autrans if (pred_dir != branch_dir) { spec_mode = TRUE; rs->recover = TRUE; recover_PC = npc; } } /* dispatch next i */ L'étage de distribution (dispatch)

19 B. Goossens Autrans L'étage de lancement (issue) for (i=0; node && i<issue_width; next_node) { /* node: from ready queue */ /* ready queue: no more dependent insts */ if (get_fu(rs->op)) { rs->issued = TRUE; fix_result_latency(rs->op); /* op/mem */ i++; }

20 B. Goossens Autrans L'étage d'écriture (writeback) while (rs=completed_event) { /* list of completed ops */ rs->completed = TRUE; if (rs->recover) { ruu_recover(); /* free rs */ fetch_recover(); /* squash fetch */ pc = recover_pc; spec_mode = FALSE; stack_recover(); fetch_issue_delay = branch_penalty; }

21 B. Goossens Autrans L'étage d'écriture (writeback) if (bpred_spec_update == writeback) bpred_update(rs->pc,rs->npc,rs->op); if (spec_mode) broadcast_result(spec_create_vector); else broadcast_result(create_vector); update_ready_queue(); } /* next completed inst */

22 B. Goossens Autrans L'étage de validation (commit) while (committed<commit_width) { if (!rs->completed) break; if (rs->op == ST) { if (!get_store_port()) break; dcache_write(); /* hidden mem lat */ } if (bpred_spec_update == commit) bpred_update(rs->pc,rs->npc,rs->op); committed++; rs++; }

23 B. Goossens Autrans Sim-outorder: la mise en oeuvre Installation: vi Makefile (choisir machine/système) make config-pisa (ou config-alpha) make make sim-tests (teste tous les simulateurs) Binaires exécutables: sslittle-na-sstrix-gcc -g -O -o foo foo.c -lm (ssbig ou sslittle) (little sur PC) (gcc ou f77) Simulations: sim-outorder -config f.cfg bench [args]

24 B. Goossens Autrans Sim-outorder: la mise en oeuvre Editer un fichier.cfg dans le répertoire config Exemple: default.cfg Taille des files Latence des sauts et des caches Type et taille du prédicteur Nombre d'unités fonctionnelles Nombre de ports dcache

25 B. Goossens Autrans Sim-outorder: la mise en oeuvre./sim-outorder -config config/default.cfg tests/bin.little/test-fmath > sortie-test 2> mesure Résultats sur la sortie erreur standard récapitulatif de la configuration sim_num_xxx (catégorie xxx validées) sim_total_xxx (catégorie xxx exécutées) IPC, caches, bpred

26 B. Goossens Autrans Sim-outorder: la mise en oeuvre./sim-outorder -config config/default.cfg -ptrace trace.trc 100:500 tests/bin.little/test-fmath > sortie-test 2> mesure./pipeview.pl trace.trc | more Trace des 593 xy = '0x409a20: lui r8,0x7efe' [IF] [DA] [EX] [WB] [CT] xy

27 B. Goossens Autrans Adapter sim-outorder: ajouter des options On peut ajouter des options de configuration opt_reg_type(odb, -mon:option, emploi, &opt, valeur_init_type, TRUE, NULL); A placer dans la fonction sim_reg_options Déclarer static type opt dans simulator options Apparait en tête de la sortie Exemple: opt_reg_int(odb, -mon:option, emploi, &opt, 0, TRUE, NULL); -mon:option 0 # emploi

28 B. Goossens Autrans Adapter sim-outorder: ajouter des compteurs On peut ajouter des compteurs stat_reg_counter(sdb, compteur, emploi, &mon_cpt, valeur_init, NULL); stat_reg_formula(sdb, ma_formule, emploi, v1/v2*v3, NULL); A placer dans la fonction sim_reg_stats Déclarer static counter_t mon_cpt; dans simulator stats Apparait en sortie compteur 8631 # emploi

29 B. Goossens Autrans Adapter sim-outorder: ajouter des instructions On peut ajouter des instructions annotées asm(mul.s/a %0,%1,%2:=f(c):f(b),f(a)); On modifie sim-outorder pour traiter séparément les instructions annotées if (!(inst.a & 0xffff0000)) /* traitement normal */ else /* new_id, new_od, new_sem */

30 B. Goossens Autrans Utiliser sim-outorder: exécution pas à pas On peut exécuter en mode de déboguage./sim-outorder -i bench Exécution pas à pas step, cont [a], break a, print [m] e, stats, regs, fregs, dump a [n], dis a [n]

31 B. Goossens Autrans Conclusion Sim-outorder est un outil fiable Sim-outorder est très utilisé en recherche Mais Adapter sim-outorder est difficile Les adaptations sont peu fiables Adapter l'architecture est très difficile

32 B. Goossens Autrans Démonstration Installation (simpleutils, simplesim, gcc) Tests (simplesim, gcc)

33 B. Goossens Autrans

34 B. Goossens Autrans

35 B. Goossens Autrans

36 B. Goossens Autrans

37 B. Goossens Autrans

38 B. Goossens Autrans

39 B. Goossens Autrans

40 B. Goossens Autrans

41 B. Goossens Autrans

42 B. Goossens Autrans

43 B. Goossens Autrans

44 B. Goossens Autrans