Architecture externe et jeu d instructions

Dimension: px
Commencer à balayer dès la page:

Download "Architecture externe et jeu d instructions"

Transcription

1 Processeur MIPS R3000. Architecture externe et jeu d instructions MIPS R3000 jeu d instructions page - 1

2 A) Introduction Ce document décrit l architecture externe ainsi que le jeu d instructions du processeur MIPS R3000. Le MIPS R3000 est la deuxième génération de processeur de la société MIPS 1, et n est plus commercialisé aujourd hui. Son successeur est le R4000 qui lui ressemble fort. Des inions sur cette famille de processeurs, très utilisée dans les applications embarquées et dans les machines parallèle à mémoire partagées, sont disponibles sur le site L architecture externe est le niveau d abstr nécessaire à l écriture de programmes assembleur, de la partie génération de code d un compilateur, et du programmeur de systèmes d exploitation multi-processus (et/ou multi-tâches). Sont détaillés : les registres visibles du logiciel ; l adressage de la mémoire ; le jeu d instruction ; les mécanismes de traitement des exceptions, interruptions et appels systèmes. L architecture interne sera décrite en détail durant le cours. B) Notations Par convention, nous utiliserons les notations du langage C pour la des constantes, et pour la terminologie en général. La des instructions nécessite également l introduction de quelques notations : = test d égalité + addition entière en complément à deux soustr entière en complément à deux multiplication entière en complément à deux. division entière en complément à deux. mod reste de la division entière en complément à deux and opérateur et bit-à-bit or opérateur ou bit-à-bit nor opérateur non-ou bit-à-bit xor opérateur ou-exclusif bit-à-bit mem b [a] contenu de la mémoire à l adresse a accédée sur b octets assignation implication concaténation de chaînes de bits x n réplication du bit x dans une chaîne de n bits. Notons que x est un unique bit x p...q sélection des bits p à q de la chaîne de bits x Certains opérateurs n étant pas évidents, nous donnons ici quelques exemples. 1 MIPS signifie Microprocessor without Interlocked Pipeline Stage. MIPS R3000 jeu d instructions page - 2

3 Posons la chaîne de bit x, qui a une longueur de 16 bits, le bit le plus à droite étant le bit de poids faible et de numéro zéro, et le bit le plus à gauche étant le bit de poids fort et de numéro 15. x est la chaîne x crée une chaîne de 16 bits de long dupliquant le bit 15 de x, zéro dans le cas présent. x x est la valeur 32 bits avec extension de signe d un immédiat en complément à deux de 16 bits. MIPS R3000 jeu d instructions page - 3

4 C) Architecture externe Le processeur possède deux modes, le mode utilisateur (ou user) pour exécuter les applications, et le mode noyau (ou kernel) pour exécuter le système. Ces 2 modes sont nécessaires à l exécution sure de plusieurs processus sur un même processeur. 1) Registres visibles du logiciel Les registres du MIPS R3000 visibles du logiciel, c.-à-d. qui sont manipulés par les instructions implicitement ou explicitement, ont tous une taille de 32 bits. Le MIPS R3000 visant par construction l exécution de multiples processus, des mécanismes de protections sont mis en œuvre pour l accès aux registres relatifs au système. Ces derniers registres appartiennent à un coprocesseur système dit coprocesseur 0 ou cop0. Les accès à ce coprocesseur ne peuvent avoir lieu qu en mode noyau. registres du processeur hormis $0 et $31, ils sont identiques du point de vue du matériel, et ils peuvent être accèdes dans les 2 modes. $i, (0 i 31) ce sont les registres d usage général. Les opérandes des instructions et leur(s) résultat(s) y sont placés. Le registre $0 peut être écrit mais retourne toujours 0x lors de la lecture. Le registre $31 est utilisé implicitement (c.-à-d. que le matériel en impose l utilisation et qu il n apparaît donc pas dans l instruction) pour sauvegarder l adresse de retour d appels de foncions lors des instructions bgezal, bltzal, et jal ; pc, program counter ce registre contient l adresse de l instruction à exécuter. Sa valeur est modifiée par toutes les instructions ; ir, instruction register ce registre contient l instruction en cours d exécution. Il n est pas directement accessible hi et lo ces registres contiennent le résultat de la multiplication sur 64 bits, ou le résultat de la division euclidienne (quotient dans lo et reste dans hi). registres du coprocesseur 0 ces registres concernent la gestion des exceptions, interruptions et appels systèmes. badvaddr, bad virtual address ce registre contient l adresse fautive en cas d exception de type «adresse illégale» ; status c est le registre d état. Il contient les masques d interruption et le mode ; cause c est le registre qui contient la cause de l exception ; MIPS R3000 jeu d instructions page - 4

5 $0 $1 $pc $ir $hi $31 $lo FIG. 1 Registres généraux du MIPSR3000. epc, exception program counter ce registre contient l adresse de retour en cas d interruption et l adresse de l instruction fautive en cas d exception ou d appel système. Ces registres concernent la gestion de la mémoire virtuelle. TLB, Transaltion Lookaside Buffer c est la mémoire associative pour la traduction adresse virtuelle vers adresse physique ; index registre contenant l index de la TLB dans lequel faire les accès ; random registre contenant un index aléatoire valide pour les accès à la TLB ; context registre utilisé partiellement par le logiciel (une partie sert à pointer sur la structure des pages du système d exploitation) et par le matériel (l autre partie contient les poids forts de l adresse fautive lors d une traduction qui échoue) pour faciliter l écriture en logiciel de la gestion de la mémoire virtuelle ; entryhi et entrylo valeur à comparer aux entrées de la TLB pour savoir s il y a une erreur de page (page fault). entryhi 10 entrylo 2 index 0 status 12 random 1 cause 13 TLB context 4 epc 14 badvaddr 8 prid 15 FIG. 2 Registres du coprocesseur 0 du MIPSR3000. MIPS R3000 jeu d instructions page - 5

6 2) Adressage mémoire Toutes les adresses émises par le processeur sont des adresses octet (byte), codées sur 32 bits. Le processeur peut lire des instructions (32 bits), des mots (32 bits), des demi-mots (16 bits) et des octets (8 bits). Il peut écrire des mots, des demi-mots et des octets. Les adresses des mots et les instructions doivent être des multiples de 4, et celles des demi-mots doivent être des multiples de 2. Un accès à une adresse non alignée génère une exception. Il n y a qu un seul mode d adressage, qui est le mode «indirect registre». L adresse effective est a = $i + offset. Ou $i est n importe quel registre général et offset un immédiat sur 16 bits étendu de signe. L immédiat se trouve dans les 16 bits de poids faible du registre ir. La conversion des adresses virtuelles vers les adresses physiques se fait grâce à une table de translation d adresses totalement associative. Le cache est en adresses physiques. 0xFFFFFFFF 1 Giga octets kseg2 Traduites 0xc Cachées 0xbFFFFFFF 0.5 Giga octets segment kseg1 Non traduites 0xa Non cachées noyau 0x9FFFFFFF 0.5 Giga octets kseg0 Non traduites 0x Cachées 0x7FFFFFFF kuseg 2 Giga octets segment Traduites Cachées utilisateur 0x FIG. 3 Segmentation mémoire du MIPSR3000. D) Reset, appels systèmes, interruptions et exceptions 1) Fonctionnement Ces s passent toutes en mode noyau. Le reset à lieu lors de la mise sous tension du processeur, ou lors de la mise à zéro de la broche reset. Le registre pc prend la valeur 0xbfc00000, les interruptions sont masquées, le registre random prend la valeur du dernier index de la TLB et les interruptions sont masqués par sur le registre status. Les «appels systèmes» correspondent à des services fournies par le noyau auxquels on accède grâce aux deux instructions syscall et break. Le registre pc prend la valeur 0x , et les interruptions sont masquées. Le registre epc contient l adresse de l instruction qui à causé l appel système. MIPS R3000 jeu d instructions page - 6

7 TAB. 1 Raisons des déroutements Int 0x0 interruption. MOD 0x1 modification de TLB. Cette exception est levée lorsque que l adresse virtuelle d une écriture correspond à une entrée de la TLB marqué non-inscriptible ; TLBL 0x2 rechargement de la TLB. Indique que le système d exploitation doit recharger la TLB pour effectuer une lecture ; TLBS 0x3 rechargement de la TLB. Indique que le système d exploitation doit recharger la TLB pour effectuer une écriture ; AdEL 0x4 erreur d adressage lors de la lecture d une donnée ou d une instruction ; AdES 0x5 erreur d adressage lors de l écriture d une donnée ; IBE 0x6 erreur lors d un accès mémoire pour la lecture d une instruction ; DBE 0x7 erreur lors d un accès mémoire pour la lecture ou l écriture d une donnée ; Sys 0x8 appel système ; Bp 0x9 point d arrêt ; RI 0xA instruction inconnue (ou réservée) ; CpU 0xB tentative avortée d accès à un coprocesseur ; Ovf 0xC dépassement de capacité lors d un calcul arithmétique. Les interruptions matérielles sont des évènements asynchrones déclenchés par la mise à 1 d une broche du processeur. Il y a 6 broches d interruption sur le MIPS, et elles sont masquables soit individuellement soit collectivement par sur le registre status. L interruption doit être maintenue par le périphérique tant qu elle n a pas été acquittée. Le registre pc prend la valeur 0x , et les interruptions sont masquées. L instruction en cours d exécution lors d une interruption est achevée, puis le programme est dérouté. Le registre epc contient l adresse de l instruction qui suit l instruction durant laquelle l interruption a été levée. Il existe également deux interruptions logicielles, qui sont levées par la mise à 1 d un bit dans le registre cause, et donc le comportement est identique aux interruptions matérielles. Les exceptions sont des évènements synchrones liés à la mauvaise exécution d une instruction. Le registre pc prend la valeur 0x dans le cas général, ou 0x dans certain cas particulier liés à la gestion de la mémoire virtuelle. les interruptions sont masquées, et le registre epc contient l adresse de l instruction fautive, ce qui permet d émettre des diagnostiques. Si une des ces s à lieu dans une instruction qui suit un branchement, ce n est pas l adresse de l instruction qui est mise dans epc, mais celle du branchement, et le bit bd du registre cause est mis à 1. 2) Détail des registres liés aux exceptions autres que celles relatives à la gestion de la mémoire virtuelle Ces registres ne sont accessibles que par les instructions mfc0 et mtc0, qui elles mêmes ne sont utilisables qu en mode noyau. Les registres ci-dessous sont mis à jour lors d un déroutement. Les mécanismes à mettre en œuvre lorsque la gestion de la mémoire virtuelle est concernée sont complémentaires, et présentés dans la section suivante. MIPS R3000 jeu d instructions page - 7

8 Registre status($12 du coprocesseur 0, accessible en lecture/écriture) CU 3CU 2CU 1CU 0 0 BEV 0 HIM 5HIM 4HIM 3HIM 2HIM 1HIM 0SIM 1SIM 0 0 KU oie oku pie pku cie c CU i coprocessor usable. Ces 4 bits sont des bits de présence des coprocesseurs. Le MIPSde base n en comporte qu un, CP0. D autres implantations peuvent en avoir jusqu à trois autres. Un bit à 1 indique que le coprocesseur est utilisable ; BEV bootstrap exception vector. Ce bit définit l adresse du gestionnaire d interruption. Les différents cas, en fonction de BEV et de la cause du déroutement sont tabulés ici. BEV cause adresse x reset 0xbfc !reset &&!TLB refill 0x !reset && TLB refill 0x !reset &&!TLB refill 0xbfc !reset && TLB refill 0xbfc00100 HIM i, SIM i hardware and software interrupt mask. Ces bits contrôlent individuellement le fait qu une certaine ligne d interruption puisse interrompre le processeur. Un et logique avec les bits d interruption en attente dans le registre cause permet au logiciel de connaître les interruptions actives. Un bit à 1 autorise l interruption ; KU kernet/user. Indique le mode d exécution. Un 0 indique le mode noyau, un 1 le mode utilisateur ; IE interrupt enable. Autorise ou inhibe toutes les interruptions. Un 0 masque les interruptions, un 1 les autorise. Lors d un déroutement, le registre status est modifié par le matériel. Les bits KU o et IE o sont perdus. Les bits KU p et IE p sont copiés dans KU o et IE o. Les bits KU c et IE c sont copiés dans KU p et IE p. Les bits KU c et IE c sont mis à zéro. Le suffixe indique donc le niveau d imbrication des déroutements : c signifie current, p previous et o old. L à peu près inverse est effectuée sur le registre status lors de l exécution de l instruction rfe : les bits KU p et IE p sont copiés dans KU c et IE c, et les bits KU o et IE o sont copiés dans KU p et IE p. Registre cause($13 du coprocesseur 0, accessible en lecture) BD 0 CE 0 HIP 5HIP 4HIP 3HIP 2HIP 1HIP 0SIP 1SIP 0 0 EXCODE 0 BD branch delay. Ce bit est à 1 si l exception ou l interruption a été levée dans le delayed slot d un branchement ; CE coprocessor error. Indique le numéro du coprocesseur en erreur sur une exception de type CpU ; HIP i, SIP i hardware and software interrupt pending. Ces bits reflètent l état des lignes d interruption. Un et logique avec les bits de masque d interruption du registre status permet au logiciel de connaître les interruptions actives. Un 1 signifie que l interruption est présente sur la ligne ; EXCODE exception code. Code indiquant la raison pour laquelle le déroutement a eu lieu. La valeur du code sur 4 bits est donnée par la table 1. Registre epc($14 du coprocesseur 0, accessible en lecture) EPC MIPS R3000 jeu d instructions page - 8

9 EPC exception program counter. Ce registre contient l adresse à laquelle doit reprendre l exécution après une interruption. Pour les exceptions, il contient soit l adresse de l instruction qui a causé l interruption, si le bit BD du registre cause est à zéro, soit l adresse du branchement qui précède immédiatement cette instruction si BD est à 1. Registre badvaddr($8 du coprocesseur 0, accessible en lecture) BVA BVA bad virtual address. Ce registre contient l adresse à laquelle doit reprendre l exécution après une interruption. Pour les exceptions, il contient soit l adresse de l instruction qui a causé l interruption, si le bit BD du registre cause est à zéro, soit l adresse du branchement qui précède immédiatement cette instruction si BD est à 1. E) Gestion de la mémoire virtuelle La gestion de la mémoire virtuelle est intimement liée aux exceptions, car la possibilité d exécuter du code est directement lié à la présence physique des données et des instructions, et ne doit en rien être visible du programmeur d applications. Le chargement des pages doit donc être géré de manière transparente vis-à-vis du programme qui s exécute par le système d exploitation. L objectif de la mémoire virtuelle est de rendre disponible à un programme donné tout l espace adressable par le MIPS, même si la mémoire physique est d une part partagée par plusieurs programmes et d autre part de taille inférieure à 2 32 (ou 2 64 sur les machines 64 bits). Il y a donc 2 idées derrière la mémoire virtuelle : 1. pouvoir partager l espace mémoire physique entre divers processus sans qu ils se perturbent les uns les autres (c est la différence entre un process et un thread dans l acception Unixienne de ces termes) ; 2. rendre accessible la totalité de l espace adressable à un processus. Pour ce faire, a) la mémoire (physique ou virtuelle) est découpée en pages, b) chaque processus reçoit un identifiant unique parmi tous les processus connus du processeur, et c) le disque est utilisé pour sauver les pages de mémoire physique qui sont utilisées plusieurs fois à des dates différentes (qu elles appartiennent au même processus ou à différents processus). La traduction associe, à un instant t, une adresse (de page) physique à un couple (identifiant de processus, adresse (de page) virtuelle). Dans le MIPSR3000, les mécanismes nécessaires pour garantir la gestion cohérente de ces traductions (par ex., s il n y a plus de pages physiques libres, il faut en évincer une sur le disque (le swap) et la réaffecter temporairement à un nouveau couple ((identifiant de processus, adresse virtuelle)) reposent complètement sur le logiciel. Ces aspects seront étudiés dans le cours de Système d exploitation. Néanmoins, comme l exécution doit être transparente aux programmes applicatifs, le matériel doit détecter l absence d une page en mémoire physique et donner suffisamment d inion au système d exploitation pour effectuer sa gestion de manière cohérente. Pour ce faire, le MIPSR3000 possède une table de traduction (Translation Lookaside Buffer ou TLB) de 64 entrées de 64 bits. Cette table permet d associer une adresse de page physique à un couple (identifiant de processus, adresse virtuelle). Il se peut que, vu sa petite taille, la table ne contienne pas l inion nécessaire à la traduction. Dans ce cas une exception de type TLB refill (TLBL ou TLBS) est levée, et c est au MIPS R3000 jeu d instructions page - 9

10 système d exploitation d aller la mettre à jour. Notez que le système peut lui même avoir une des pages le concernant évincée, ce qui va lever un nouveau TLB refill durant la gestion du précédent TLB refill. Le support spécifique fourni par le MIPSdans ce cas est que l adresse du gestionnaire d exception est différente dans les 2 cas, car l écriture d un gestionnaire de rechargement réentrant n est simplement pas possible, puisque ce sont des variables globales qui sont utilisées. Format du couple (identifiant, adresse virtuelle) : ASID VPN OFFSET ASID address space identifier. L identifiant du processus dont il est question ici n est pas le process id obtenu par getpid (2), mais un nombre sur 6 bits (car log 2 64 = 6) calculé par le système d exploitation uniquement pour la gestion de la TLB ; VPN virtual page number. Ces 20 bits représentent le numéro de page virtuelle. Il y a donc 2 20, soit 1 Mega, pages virtuelles. Les 3 bits de poids fort de l adresse définissent le type de traduction à effectuer (voir la figure 3). Les adresses dans les segments kseg0 et kseg1 ne subissent pas la traduction d adresse standard. Une adresse a de kseg0 sera émise sur le bus comme a - Ox , et une adresse a de kseg1 sera émise sur le bus comme a - Oxa ; OFFSET ces 12 bits représentent le déplacement dans la page sont passés sans modification sur le bus mémoire. La taille de la page est de 2 12, soit 4 Kilo. Les entrées de la TLB sont sur 64 bits, et correspondent à la concaténation des registres entryhi et entrylo. Ne sont donc ici décrit que ces 2 registres. Registre entryhi($10 du coprocesseur 0, accessible en lecture/écriture) : VPN ASID 0 VPN virtual page number. Les 20 bits de poids fort de l adresse virtuelle ; ASID address space identifier. L identifiant du processus qui permet de savoir si deux adresses virtuelles identiques appartiennent à deux processus différents ou non. Registre entrylo($2 du coprocesseur 0, accessible en lecture/écriture) : PFN N D V G 0 PFN page frame number. Les 20 bits de poids fort de l adresse physique. Si la traduction d adresse est valide, alors les bits de PFN sont substitué à ceux de VPN dans le cycle ; N non cachable. L accès mémoire se fait sans passer par le cache ; D dirty. Si ce bit est à 0, la page est protégée en écriture, et un accès en écriture dans la page lèvera l exception MOD. Ceci permet au système d exploitation de gérer des zones en lecture seulement (comme le code ou les constantes d un programme par exemple) ; V valid. Indique que l entrée dans la TLB est valide. Si ce bit est à zéro, une exception de type TLBS ou TLBL est levée ; G global. La translation d adresse se fait en ignorant purement et simplement le champs ASID lors de la traduction. Registre index($0 du coprocesseur 0, accessible en lecture/écriture) : PF 0 INDEX 0 PF probe failure. Ce bit est mis à un si l instruction tlbp n a pas détecté d entrée valide dans la TLB ; MIPS R3000 jeu d instructions page - 10

11 INDEX index de l entrée de la TLB qui sera affectée par les instructions tlbr et tlbw. Registre random($1 du coprocesseur 0, accessible en lecture) : RANDOM 0 Ensimag - Filières SLE/ISI RANDOM index de l entrée de la TLB qui sera affectée par l instruction tlbwr. Cet index est compris entre 8 et 63. Les 7 premiers index peuvent donc être réservés à des usages spécifiques par le système d exploitation. MIPS R3000 jeu d instructions page - 11

12 F) Instructions Une instruction MIPSest un mot de 32 bits. Il y a trois catégories (s) d instruction : Format R : opcode rs rt rd sh func Format I : opcode rs rt imm16 Format J : opcode imm26 Dans ce qui suit, nous notons rd la valeur du champs rd, c est à dire un entier entre 0 et 31 car rd est codé sur 5 bits, et indiquons par $rd le registre indexé par ce champs. Si $rd est le membre de gauche d une affectation, alors nous en imposons la valeur, si il fait parti du membre de droite, nous en lisons la valeur. Nous ne pouvons en aucun cas modifier rd qui est une constante décidée lors de la compilation. Notons qu un registre source peut être le registre destination d une même instruction assembleur. Un opérande immédiat sera noté imm, et sa taille sera spécifié dans la de l instruction. Les instructions de saut prennent comme argument une étiquette, où label, qui est utilisée pour calculer l adresse de saut. Toutes les instructions modifient implicitement ou explicitement un registre non accessible du logiciel, le program counter noté $pc. Pour lever l ambiguïté liée aux calculs des sauts relatifs au $pc, nous noterons que l adresse de l instruction en cours d exécution est toujours égale à $pc 4, car $pc est incrémenté (pour passer à l instruction suivante) en même temps que l instruction à exécutée est chargée. Le $pc à droite d une affectation est donc toujours égal à l adresse de l instruction courante plus 4. Attention : le MIPS R3000 est un processeur pipeline tel que l instruction qui suit un branchement (relatif ou absolu) est toujours exécutée. On appel cet emplacement le delay slot et on dit que le branchement effectif est retardé d une instruction. Le résultat d une multiplication ou d une division est mis dans deux registres spéciaux, $hi pour les poids forts (multiplication) ou le reste (division), et $lo pour les poids faibles (multiplication) ou le quotien (division). add addi rs rt rd Addition registre registre signée add $rd, $rs, $rt Les contenus des registres $rs et $rt sont ajoutés pour former un résultat sur 32 bits qui est placé dans le registre $rd. $rd $rs + $rt exception génération d une exception si dépassement de capacité. MIPS R3000 jeu d instructions page - 12

13 rs rt imm16 Addition registre immédiat signée addi $rt, $rs, imm La valeur immédiate sur 16 bits subit une extension de signe, et est ajoutée au contenu du registre $rs pour former un résultat sur 32 bits qui est placé dans le registre $rt. Cette instruction est aussi utilisée pour faire une soustr en utilisant un immédiat dont le bit de poids (15) fort est à 1. $rt imm imm $rs exception génération d une exception si dépassement de capacité. addiu rs rt imm16 Addition registre immédiat non-signée addiu $rt, $rs, imm La valeur immédiate sur 16 bits subit une extension de signe, et est ajoutée au contenu du registre $rs pour former un résultat sur 32 bits qui est placé dans le registre $rt. Cette instruction est aussi utilisée pour faire une soustr en utilisant un immédiat dont le bit de poids (15) fort est à 1. $rt imm imm $rs addu and rs rt rd Addition registre registre non-signée addu $rd, $rs, $rt Les contenus des registres $rs et $rt sont ajoutés pour former un résultat sur 32 bits qui est placé dans le registre $rd. $rd $rs + $rt MIPS R3000 jeu d instructions page - 13

14 rs rt rd Et bit-à-bit registre registre and $rd, $rs, $rt Un et bit-à-bit est effectué entre les contenus des registres $rs et $rt. Le résultat est placé dans le registre $rd. $rd $rs and $rd andi rs rt imm16 Et bit-à-bit registre immédiat andi $rt, $rs, imm La valeur immédiate sur 16 bits subit une extension de zéros. Un et bit-à-bit est effectué entre cette valeur étendue et le contenu du registre $rs pour former un résultat placé dans le registre $rt. beq $rt 0 16 imm and $rs rs rt imm16 Branchement si registre égal registre beq $rs, $rt, imm L adresse de branchement est la somme de l adresse de l instruction courante plus la valeur immédiate sur 16 bits, avec extension de signe, décalée à gauche de 2 bits. Le contenu des registres $rs et $rt sont comparés. S ils sont égaux, le programme saute à l adresse précédemment calculée. $addr $pc + imm imm 02 $rs = $rt $pc $addr bgez rs imm16 MIPS R3000 jeu d instructions page - 14

15 Branchement si registre supérieur ou égal à zéro bgez $rs, imm L adresse de branchement est la somme de l adresse de l instruction courante plus la valeur immédiate sur 16 bits, avec extension de signe, décalée à gauche de 2 bits. Si le contenu du registre $rs a son bit de signe à zéro, le programme saute à l adresse précédemment calculée. $addr $pc + imm imm 02 $rs 31 = 0 $pc $addr bgezal rs imm16 Branchement à une fonction si registre supérieur ou égal à zéro bgezal $rs, imm L adresse de branchement est la somme de l adresse de l instruction courante plus la valeur immédiate sur 16 bits, avec extension de signe, décalée à gauche de 2 bits. Inconditionnellement, l adresse de l instruction suivant le bgezal est sauvée dans le registre $31. Si le contenu du registre $rs à son bit de signe à zéro, le programme saute à l adresse précédemment calculée. $addr $pc + imm imm 02 $31 $pc $rs 31 = 0 $pc $addr bgtz rs imm16 Branchement si registre strictement supérieur à zéro bgtz $rs, imm L adresse de branchement est la somme de l adresse de l instruction courante plus la valeur immédiate sur 16 bits, avec extension de signe, décalée à gauche de 2 bits. Si le contenu du registre $ri à son bit de signe à zéro et qu il ne vaut pas zéro, le programme saute à l adresse précédemment calculée. $addr $pc + imm imm 02 $rs 31 = 0 $rs 0 $pc $addr MIPS R3000 jeu d instructions page - 15

16 blez rs imm16 Branchement si registre inférieur ou égal à zéro blez $rs, imm L adresse de branchement est la somme de l adresse de l instruction courante plus la valeur immédiate sur 16 bits, avec extension de signe, décalée à gauche de 2 bits. Si le contenu du registre $rs à son bit de signe à un et qu il ne vaut pas zéro, le programme saute à l adresse précédemment calculée. $addr $pc + imm imm 02 $rs 31 = 1 $rs 0 $pc $addr bltz rs imm16 Branchement si registre strictement inférieur à zéro bltz $rs, imm L adresse de branchement est la somme de l adresse de l instruction courante plus la valeur immédiate sur 16 bits, avec extension de signe, décalée à gauche de 2 bits. Si le contenu du registre $rs à son bit de signe à zéro, le programme saute à l adresse précédemment calculée. $addr $pc + imm imm 02 $rs 31 = 1 $pc $addr bltzal rs imm16 Branchement à une fonction si registre supérieur ou égal à zéro bltzal $rs, imm L adresse de branchement est la somme de l adresse de l instruction courante plus la valeur immédiate sur 16 bits, avec extension de signe, décalée à gauche de 2 bits. Inconditionnellement, l adresse de l instruction suivant le bgezal est sauvée dans le registre $31. Si le contenu du registre $rs à son bit de signe à un, le programme saute à l adresse précédemment calculée. MIPS R3000 jeu d instructions page - 16

17 bne $addr $pc + imm imm 02 $31 $pc $rs 31 = 1 $pc $addr rs rt imm16 Branchement si registre différent de registre bne $rs, $rt, imm Ensimag - Filières SLE/ISI L adresse de branchement est la somme de l adresse de l instruction courante plus la valeur immédiate sur 16 bits, avec extension de signe, décalée à gauche de 2 bits. Le contenu des registres $rs et $rt sont comparés. S ils sont différents, le programme saute à l adresse précédemment calculée. $addr $pc + imm imm 02 $rs $rt $pc $addr break div code Arrêt et saut à la routine d exception break code Un point d arrêt est detecté, et le programme saute à l adresse de la routine de gestion des exceptions. Le champs code est utilisable par le logiciel pour identifier le type de point d arrêt. pc 0x exception Déclenchement d une exception de type point d arrêt rs rt Division entière et reste signé registre registre div $rs, $rt MIPS R3000 jeu d instructions page - 17

18 Le contenu du registre $rs est divisé par le contenu du registre $rt, le contenu des deux registres étant considéré comme des nombres en complément à deux. Le résultat de la division est placé dans le registre spécial $lo, et le reste dans $hi. La division est une multicycles. $lo $rs $rt $hi $rs mod $rt divu j jal rs rt Division entière et reste non-signé registre registre divu $rs, $rs Le contenu du registre $rs est divisé par le contenu du registre $rt, le contenu des deux registres étant considéré comme des nombres non signés. Le résultat de la division est placé dans le registre spécial $lo, et le reste dans $hi. $lo 0 $rs 0 $rt $hi 0 $rs mod 0 $rt imm26 Branchement inconditionnel immédiat j imm L adresse de saut est calculée à partir de la valeur immédiate sur 26 bits, décalée à gauche de 2 bits, en recopiant les bits 32 à 28 du $pc de l instruction courante. Le programme saute inconditionnellement à l adresse ainsi calculée. $pc $pc imm imm26 Appel de fonction inconditionnel immédiat jal imm MIPS R3000 jeu d instructions page - 18

19 L adresse de saut est calculée à partir de la valeur immédiate sur 26 bits, décalée à gauche de 2 bits, en recopiant les bits 32 à 28 du $pc de l instruction courante. L adresse de l instruction suivant le jal est sauvée dans le registre $31. Le programme saute inconditionnellement à l adresse ainsi calculée. $31 $pc $pc $pc imm 0 2 jalr jr lb rs rd Appel de fonction inconditionnel registre jalr $rs ou jalr $rd, $rs Le programme saute à l adresse contenue dans le registre $rs. L adresse de l instruction suivant le jalr est sauvée dans le registre $rd. Si le registre $rd n est pas spécifié, alors l assembleur y mettra par défaut le registre $31. Attention, l adresse contenue dans le registre $rs doit être aligné sur une frontière de mots. $rd $pc $pc $rs rs Branchement inconditionnel registre jr $rs Le programme saute à l adresse contenue dans le registre $ri. Attention, cette adresse doit être aligné sur une frontière de mots. $pc $rs rs rt imm16 Lecture d un octet signé de la mémoire MIPS R3000 jeu d instructions page - 19

20 lb $rt, imm($rs) L adresse de chargement est la somme de la valeur immédiate sur 16 bits, avec extension de signe, et du contenu du registre $rs. Le contenu de cette adresse subit une extension de signe et est ensuite placé dans le registre $rt. $rt mem 1 [imm + $rs] 24 7 mem 1[imm + $rs] exception lbu lh Adresse de chargement en segment noyau alors que le code tourne avec le bit utilisateur ; Mémoire inexistante à l adresse de chargement rs rt imm16 Lecture d un octet non-signé de la mémoire lbu $rt, imm($rs) L adresse de chargement est la somme de la valeur immédiate sur 16 bits, avec extension de signe, et du contenu du registre $rs. Le contenu de cette adresse est étendu avec des zéro et est ensuite placé dans le registre $rt. $rt 0 24 mem 1 [imm + $rs] Adresse de chargement en segment noyau alors que le code tourne avec le bit utilisateur ; Mémoire inexistante à l adresse de chargement rs rt imm16 Lecture d un demi-mot signé de la mémoire lh $rt, imm($rs) L adresse de chargement est la somme de la valeur immédiate sur 16 bits, avec extension de signe, et du contenu du registre $rs. Le contenu de cette adresse subit une extension de signe et est ensuite placé dans le registre $rt. Attention, le bit de poids faible de l adresse résultante doit être à zéro. $rt mem 2 [imm + $rs] mem 2[imm + $rs] MIPS R3000 jeu d instructions page - 20

21 exceptions lhu Adresse non alignée sur une frontière de demi-mot. ; Adresse de chargement en segment noyau alors que le code tourne avec le bit utilisateur ; Mémoire inexistante à l adresse de chargement rs rt imm16 Lecture d un demi-mot non-signé de la mémoire lhu $rt, imm($rs) L adresse de chargement est la somme de la valeur immédiate sur 16 bits, avec extension de signe, et du contenu du registre $rs. Le contenu de cette adresse est étendu avec des zéro et est ensuite placé dans le registre $rt. Attention, le bit de poids faible de l adresse résultante doit être à zéro. $rt 0 16 mem 2 [imm + $rs] exceptions lui lw Adresse non alignée sur une frontière de demi-mot. ; Adresse de chargement en segment noyau alors que le code tourne avec le bit utilisateur ; Mémoire inexistante à l adresse de chargement rt imm16 Lecture d une constante dans les poids forts lui $rt, imm La constante immédiate de 16 bits est décalée de 16 bits à gauche, et est complétée de zéro. La valeur ainsi obtenue est placée dans $rt. $rt imm rs rt imm16 Lecture d un mot de la mémoire MIPS R3000 jeu d instructions page - 21

22 lw $rt, imm($rs) L adresse de chargement est la somme de la valeur immédiate sur 16 bits, avec extension de signe, et du contenu du registre $rs. Le contenu de cette adresse est placé dans le registre $rt. Attention, les deux bits de poids faible de l adresse résultante doivent être à zéro. $rt mem 4 [imm + $rs] exceptions mfc0 Adresse non alignée sur une frontière de mot ; Adresse de chargement en segment noyau alors que le code tourne avec le bit utilisateur ; Mémoire inexistante à l adresse de chargement rt rd Copie d un registre spécialisé dans d un registre général mfc0 $rt, $rd Le contenu du registre spécialisé $rd non directement accessible au programmeur est recopié dans le registre général $rt. Les registres possibles pour $rd sont ceux du coprocesseur 0 qui servent à la gestion des exceptions et interruptions. $rt copro 0 [$rd] exception mfhi Utilisation de l instruction en mode utilisateur rd Copie le registre $hi dans un registre général mfhi $rd Le contenu du registre spécialisé $hi qui est mis à jour par l de multiplication ou de division est recopié dans le registre général $rd. $rd $hi MIPS R3000 jeu d instructions page - 22

23 mflo rd Copie le registre $lo dans un registre général mflo $rd Le contenu du registre spécialisé $lo qui est mis à jour par l de multiplication ou de division est recopié dans le registre général $rd. $rd $lo mtc rt rd Copie d un registre général dans un registre spécialisé mtc0 $rt, $rd Le contenu du registre général $rt est recopié dans le registre spécialisé $rd non directement accessible au programmeur. Ces registres sont ceux du coprocesseur 0 qui servent à la gestion des exceptions et interruptions. copro 0 [$rd] $rt mthi rs Copie d un registre général dans le registre $hi mthi $rs Le contenu du registre général $rs est recopié dans le registre spécialisé $hi. $hi $rs mtlo rs MIPS R3000 jeu d instructions page - 23

24 Copie d un registre général dans le registre $lo mtlo $rs Le contenu du registre général $rs est recopié dans le registre spécialisé $lo. $lo $rs mult rs rt Multiplication signé registre registre mult $rs, $rt Le contenu du registre $rs est multiplié par le contenu du registre $rs, le contenu des deux registres étant considéré comme des nombres en complément à deux. Les 32 bits de poids fort du résultat sont placés dans le registre $hi, et les 32 bits de poids faible dans $lo. La multiplication est une multicycles. $lo ($rs $rt) $hi ($rs $rt) multu rs rt Multiplication signé registre registre multu $rs, $rt Le contenu du registre $rs est multiplié par le contenu du registre $rt, le contenu des deux registres étant considéré comme des nombres non-signés. Les 32 bits de poids fort du résultat sont placés dans le registre $hi, et les 32 bits de poids faible dans $lo. La multiplication est une multicycles. nor $lo (0 $rs 0 $rt) $hi (0 $rs 0 $rt) rs rt rd MIPS R3000 jeu d instructions page - 24

25 or ori rfe Non-ou bit-à-bit registre registre nor $rd, $rs, $rt Un non-ou bit-à-bit est effectué entre les contenus des registres $rs et $rt. Le résultat est placé dans le registre $rd. $rd $rs nor $rt rs rt rd Ou bit-à-bit registre registre or $rd, $rs, $rt Un ou bit-à-bit est effectué entre les contenus des registres $rs et $rs. Le résultat est placé dans le registre $rd. $rd $rs or $rt rs rt imm16 Ou bit-à-bit registre immédiat ori $rt, $rs, imm La valeur immédiate sur 16 bits subit une extension de zéros. Un ou bit-à-bit est effectué entre cette valeur étendue et le contenu du registre $rs pour former un résultat placé dans le registre $rt. $rt (0 16 imm) or $rs Restauration des bits d état en fin d exception rfe MIPS R3000 jeu d instructions page - 25

26 Recopie les anciennes valeurs des bits de masques d interruption et de mode (noyau ou utilisateur) du registre d état un des registres spécialisé à la valeur qu il avait avant l exécution du programme d exception courant. $sr $sr $sr sb exception Utilisation de l instruction en mode utilisateur rs rt imm16 Écriture d un octet en mémoire sb $rt, imm($rs) L adresse d écriture est la somme de la valeur immédiate sur 16 bits, avec extension de signe, et du contenu du registre $rs. L octet de poids faible du registre $rt est écrit à l adresse ainsi calculée. mem 1 [imm + $rs] $rt exceptions sh Adresse de chargement en segment noyau alors que le code tourne avec le bit utilisateur ; Mémoire inexistante à l adresse de chargement rs rt imm16 Écriture d un demi-mot en mémoire sh $rt, imm($rs) L adresse d écriture est la somme de la valeur immédiate sur 16 bits, avec extension de signe, et du contenu du registre $rs. Les deux octets de poids faible du registre $rt sont écrit à l adresse ainsi calculée. Le bit de poids faible de cette adresse doit être à zéro. mem 2 [imm + $rs] $rt exceptions Adresse non alignée sur une frontière de demi-mot ; MIPS R3000 jeu d instructions page - 26

27 sll Ensimag - Filières SLE/ISI Adresse de chargement en segment noyau alors que le code tourne avec le bit utilisateur ; Mémoire inexistante à l adresse de chargement rt rd shamt Décalage à gauche immédiat sll $rd, $rt, shamt Le registre $rt est décalé à gauche de la valeur immédiate codée sur 5 bits, des zéros étant introduits dans les bits de poids faibles. Le résultat est placé dans le registre $rd. $rd $rt 31 shamt shamt sllv slt rs rt rd Décalage à gauche registre sllv $rd, $rt, $rs Le registre $rt est décalé à gauche du nombre de bits spécifiés dans les 5 bits de poids faibles du registre $rs, des zéros étant introduits dans les bits de poids faibles. Le résultat est placé dans le registre $rr. $rd $rt 31 $rs $rs rs rt rd Comparaison signée registre registre slt $rd, $rs, $rt Le contenu du registre $rs est comparé au contenu du registre $rt, les deux valeurs étant considérées comme des quantités signées. Si la valeur contenue dans $rs est inférieure à celle contenue dans $rt, alors $rd prend la valeur un, sinon il prend la valeur zéro. $rs < $rt $rd $rs $rt $rd 0 32 MIPS R3000 jeu d instructions page - 27

28 slti rs rt imm16 Comparaison signée registre immédiat slti $rt, $rs, imm Ensimag - Filières SLE/ISI Le contenu du registre $rs est comparé à la valeur immédiate sur 16 bits qui à subit une extension de signe. Les deux valeurs étant considérées comme des quantités signées, si la valeur contenue dans $rs est inférieure à celle de l immédiat étendu, alors $rt prend la valeur un, sinon il prend la valeur zéro. $rs < imm 16 sltiu $rs imm imm $rt imm $rt rs rt imm16 Comparaison non-signée registre immédiat sltiu $rt, $rs, imm Le contenu du registre $rs est comparé à la valeur immédiate sur 16 bits qui à subit une extension de signe. Les deux valeurs étant considérées comme des quantités non-signées, si la valeur contenue dans $rs est inférieur à celle de l immédiat étendu, alors $rt prend la valeur un, sinon il prend la valeur zéro. 0 $rs < 0 imm 16 sltu 0 $rs 0 imm imm $rt imm $rt rs rt rd Comparaison non-signée registre registre sltu $rd, $rs, $rt Le contenu du registre $rs est comparé au contenu du registre $rt, les deux valeurs étant considérés comme des quantités non-signées. Si la valeur contenue dans $rs est inférieur à celle contenue dans $rt, alors $rd prend la valeur un, sinon il prend la valeur zéro. MIPS R3000 jeu d instructions page - 28

29 sra 0 $rs < 0 $rt $rd $rs 0 $rt $rd rt rd shamt Décalage à droite arithmétique immédiat sra $rd, $rt, shamt Ensimag - Filières SLE/ISI Le registre $rt est décalé à droite de la valeur immédiate codée sur 5 bits, le bit de signe du registre étant introduit dans les bits de poids fort. Le résultat est placé dans le registre $rd. $rd $rt imm 31 $rt 31...imm srav srl srlv rs rt rd Décalage à droite arithmétique registre srav $rd, $rt, $rs Le registre $rt est décalé à droite du nombre de bits spécifiés dans les 5 bits de poids faible du registre $rs, le signe de $rt étant introduit dans les bits de poids fort ainsi libérés. Le résultat est placé dans le registre $rd. $rd $rt $rs $rt 31...$rs rt rd shamt Décalage à droite logique immédiat srl $rd, $rt, shamt Le registre $rt est décalé à droite de la valeur immédiate codée sur 5 bits, des zéros étant introduits dans les bits de poids fort. Le résultat est placé dans le registre $rd. $rd 0 imm $rt 31...imm MIPS R3000 jeu d instructions page - 29

30 rs rt rd Décalage à droite logique registre srlv $rd, $rs, $rt Ensimag - Filières SLE/ISI Le registre $rt est décalé à droite du nombre de bits spécifiés dans les 5 bits de poids faible du registre $rs, des zéros étant introduits dans les bits de poids fort ainsi libérés. Le résultat est placé dans le registre $rd. rd 0 $rs4...0 $rt 31...$rs sub rs rt rd Soustr registre registre signée sub $rd, $rs, $rt Le contenu du registre $rt est soustrait du contenu du registre $rs pour former un résultat sur 32 bits qui est placé dans le registre $rd. $rd $rs $rt exception Dépassement de capacité. subu sw rs rt rd Soustr registre registre non-signée subu $rd, $rs, $rt Le contenu du registre $rt est soustrait du contenu du registre $rs pour former un résultat sur 32 bits qui est placé dans le registre $rd. $rd $rs $rt rs rt imm16 MIPS R3000 jeu d instructions page - 30

31 Écriture d un mot en mémoire sw $rt, imm($rs) L adresse d écriture est la somme de la valeur immédiate sur 16 bits, avec extension de signe, et du contenu du registre $rs. Le contenu du registre $rt est écrit à l adresse ainsi calculée. Les deux bits de poids faible de cette adresse doivent être à zéro. mem 4 [imm + $rs] $rt exception Adresse non alignée sur une frontière de mot. syscall Appel à une fonction du système (en mode noyau). syscall Un appel système est effectué, transférant immédiatement, et inconditionnellement le contrôle au gestionnaire d exception. Note : par convention, le numéro de l appel système, c.-à-d. le code de la fonction système à effectuer, est placé dans le registre $2. pc 0x exception Déclenchement d une exception de type appel système systématique. tlbp Vérifie la présence d une entrée valide dans le tampon de traduction d adresse. tlbp Le contenu du registre $entryhi est comparé à l ensemble des entrées du tampon de traduction d adresses. Si une entrée correspond, alors l adresse de cette entrée est écrite dans le registre $index. Sinon, le bit de poids fort du registre $index est mis à 1. si i T LB[i] = $entryhi et (T LB[i] 8 ou T LB[i] = $entryhi ) alors $index = 0 18 i sinon $index = MIPS R3000 jeu d instructions page - 31

32 exception Utilisation en mode utilisateur. tlbr Lit l entrée du tampon de traduction d adresses dont l index est précisé par le registre $index du coprocesseur 0. tlbr Cette instruction charge les registres $entryhi et $entrylo avec le contenu du tampon de traduction d adresse indicé le registre $index. $entryhi T LB[$index ] $entrylo T LB[$index ] exception Utilisation en mode utilisateur. tlbwi Écrit l entrée du tampon de traduction d adresses dont l index est précisé par le registre $index du coprocesseur 0. tlbwi Le contenu de la case indexée par le registre d index du tampon de traduction d adresse est écrasé par les valeurs contenues dans les registres $entryhi et $entrylo du coprocesseur 0. Ceci permet de modifier une entrée dans le tampon pour un processus en cours d exécution, ou d évincer les inions de traduction d un processus dont on sait qu il va être peu utile dans le futur proche. T LB[$index ] $entryhi $entrylo exception Utilisation en mode utilisateur. tlbwr Écrit l entrée du tampon de traduction d adresses dont l index est précisé par le registre $random du coprocesseur 0. MIPS R3000 jeu d instructions page - 32

33 xor tlbwr Le contenu de la case indexée par le registre d index du tampon de traduction d adresse est écrasé par les valeurs contenues dans les registres $entryhi et $entrylo du coprocesseur 0. Ceci permet de créer une entrée dans le tampon pour un processus en cours d exécution. T LB[$random ] $entryhi $entrylo exception Utilisation en mode utilisateur rs rt rd Ou-exclusif bit-à-bit registre registre xor $rd, $rs, $rt Un ou-exclusif bit-à-bit est effectué entre les contenus des registres $rs et $rt. Le résultat est placé dans le registre $rd. $rd $rs xor $rt xori rs rt imm16 Ou-exclusif bit-à-bit registre immédiat xori $rt, $rs, imm La valeur immédiate sur 16 bits subit une extension de zéros. Un ou-exclusif bit-à-bit est effectué entre cette valeur étendue et le contenu du registre $rs pour former un résultat placé dans le registre $rt. $rt 0 16 imm xor $rs MIPS R3000 jeu d instructions page - 33

34 G) Encodage des instructions Les tables suivantes présentent sous forme compacte le codage des différentes instructions Champ opcode special regimm j jal beq bne blez bgtz 001 addi addiu slti sltiu andi ori xori lui 010 cop lb lh - lw lbu lhu sb sh - sw Champ func, lorsque l opcode vaut special sll - srl sra sllv - srlv srav 001 jr jalr - - syscall break mfhi mthi mflo mtlo mult multu div divu add addu sub subu and or xor nor slt sltu Champ rt, lorsque l opcode vaut regimm bltz bgez bltzal bgezal Champ rs, lorsque l opcode vaut cop mfc mtc Champ func, lorsque l opcode vaut cop tlbr tlbwi tlbwr tlbp rfe MIPS R3000 jeu d instructions page - 34

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

Plus en détail

CM2 L architecture MIPS32

CM2 L architecture MIPS32 CM2 L architecture MIPS32 Olivier Marchetti (CM-TD-TP) Alexandre Brière (TD-TP) Laboratoire d informatique de Paris 6 Pôle SoC UPMC Année 2014-2015 Instructions MIPS Contrôle Données en MIPS E/S en MIPS

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Jeu d instructions NIOS II

Jeu d instructions NIOS II Jeu d instructions NIOS II 1 Formats d instructions Le processeur NIOS II a un jeu d instructions de type RISC. Il possède 32 registres de 32 bits, notés r0 à r31, avec r0 0. Les instructions sont de longueur

Plus en détail

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION 145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu

Plus en détail

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Exécution des instructions machine

Exécution des instructions machine Exécution des instructions machine Eduardo Sanchez EPFL Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr]

Plus en détail

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

GPA770 Microélectronique appliquée Exercices série A

GPA770 Microélectronique appliquée Exercices série A GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie 1 Professeur : Haouati Abdelali CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie I : Généralités et algorithmique de base 1. Environnement matériel et logiciel

Plus en détail

Structure d un programme

Structure d un programme Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé

Plus en détail

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96 Assembleur i8086 Philippe Preux IUT Informatique du Littoral Année universitaire 95 96 1 Avertissement Ce document décrit le langage d assemblage étudié et utilisé dans le cadre des TP d architecture.

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Microprocesseur + Logiciel

Microprocesseur + Logiciel Microprocesseur + Logiciel Robot EVALBOT MOHAMED AKIL BUREAU 5253 UNITE IGI 1001 PROGRAMMATION DES MICROPROCESSEURS Présentation [IGI1001] CONTEXTE SCIENTIFIQUE... 4 1. OBJECTIFS DE L UNITE... 6 2. OBJECTIFS

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Programmation assembleur : aperçu

Programmation assembleur : aperçu Assembleur : Younès EL AMRANI. 1 Programmation assembleur : aperçu Programmation en assembleur : NASM Module M14 Semestre 4 Printemps 2010 Equipe pédagogique : Younès El Amrani, Abdelhakim El Imrani, Faissal

Plus en détail

Architecture : Circuits numériques et éléments d architecture

Architecture : Circuits numériques et éléments d architecture Ecole Nationale Supérieure d Informatique et de Mathématiques Appliquées Architecture : Circuits numériques et éléments d architecture 1 ère année Année scolaire 2014 2015 Consignes Les exercices de ce

Plus en détail

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques CTIA04 Page 1 1. Les types de données sous S7 300 Il existe plusieurs types de données utilisées pour la programmation

Plus en détail

Logiciel de Base. I. Représentation des nombres

Logiciel de Base. I. Représentation des nombres Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats

Plus en détail

Conversion d un entier. Méthode par soustraction

Conversion d un entier. Méthode par soustraction Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut

Plus en détail

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre 2011. Université de Rennes I - IRISA

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre 2011. Université de Rennes I - IRISA SGM Master S.T.S. mention informatique, première année Isabelle Puaut Université de Rennes I - IRISA Septembre 2011 Isabelle Puaut SGM 2 / 1 Organisation de l enseignement Semestre 1 : processus, synchronisation

Plus en détail

IFT1215 Introduction aux systèmes informatiques

IFT1215 Introduction aux systèmes informatiques Introduction aux circuits logiques de base IFT25 Architecture en couches Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau Niveau Couche des langages d application Traduction (compilateur) Couche du langage d

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB) Base de l'informatique Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB) Généralité Comment fonctionne un ordinateur? Nous définirons 3 couches Le matériel

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

TD Architecture des ordinateurs. Jean-Luc Dekeyser

TD Architecture des ordinateurs. Jean-Luc Dekeyser TD Architecture des ordinateurs Jean-Luc Dekeyser Fiche 1 Nombres de l informatique Exercice 1 Une entreprise désire réaliser la sauvegarde de ses données sur un site distant. Le volume de données à sauvegarder

Plus en détail

Architecture de l ordinateur

Architecture de l ordinateur Architecture de l ordinateur Emmanuel Lazard Université Paris-Dauphine mars 2011 Computers are my forte! BRAZIL (Terry Gilliam, 1985) Ce document a initialement été publié sous forme de livre : Emmanuel

Plus en détail

Concept de machine virtuelle

Concept de machine virtuelle Concept de machine virtuelle Chap. 5: Machine virtuelle Alain Sandoz Semestre été 2007 1 Introduction: Java Virtual Machine Machine Virtuelle Java: qu est-ce que c est? c est la spécification d une machine

Plus en détail

Système de Gestion de Fichiers

Système de Gestion de Fichiers Chapitre 2 Système de Gestion de Fichiers Le système de gestion de fichiers est un outil de manipulation des fichiers et de la structure d arborescence des fichiers sur disque et a aussi le rôle sous UNIX

Plus en détail

Codage d information. Codage d information : -Définition-

Codage d information. Codage d information : -Définition- Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination Croisière au cœur d un OS Étape 4 : Mise en place de la pagination Résumé Grâce à l article 3, nous pouvons gérer la totalité de la RAM disponible. Dans cet article, nous allons commencer la mise en place

Plus en détail

Configuration automatique

Configuration automatique Configuration automatique (/home/terre/d01/adp/bcousin/polys/internet:gestion_reseau/6.dhcp.fm- 29 Septembre 1999 12:07) PLAN Introduction Les principes de DHCP Le protocole DHCP Conclusion Bibliographie

Plus en détail

IFT2880 Organisation des ordinateurs et systèmes

IFT2880 Organisation des ordinateurs et systèmes Représentation des nombres flottants Notation exponentielle Représentations équivalentes dans la base 10 de 1,234 1 2 3, 4 0 0. 0 x 1 0-2 1 2, 3 4 0. 0 x 1 0-1 1, 2 3 4. 0 x 1 0 1 2 3. 4 x 1 0 1 2. 3 4

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

TP 2 Réseaux. Adresses IP, routage et sous-réseaux TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP

Plus en détail

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu Travaux d études et de recherches Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu Étudiant : Luc Michel Encadrants : Frédéric Pétrot Nicolas Fournel 23 mai 2010 TABLE DES MATIÈRES

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Architecture matérielle des systèmes informatiques

Architecture matérielle des systèmes informatiques Architecture matérielle des systèmes informatiques IDEC, Renens. Version novembre 2003. Avertissement : ce support de cours n est pas destiné à l autoformation et doit impérativement être complété par

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Organisation des Ordinateurs

Organisation des Ordinateurs Organisation des Ordinateurs Bernard Boigelot E-mail : boigelot@montefiore.ulg.ac.be URL : http://www.montefiore.ulg.ac.be/~boigelot/ http://www.montefiore.ulg.ac.be/~boigelot/cours/org/ 1 Chapitre 1 Les

Plus en détail

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013 DHCP et NAT Cyril Rabat cyril.rabat@univ-reims.fr Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 22-23 Cours n 9 Présentation des protocoles BOOTP et DHCP Présentation du NAT Version

Plus en détail

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free. 2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Version default Titre : Procédure POURSUITE Date : 07/04/2009 Page : 1/10 Responsable : Clé : U4.11.03 Révision : 496

Version default Titre : Procédure POURSUITE Date : 07/04/2009 Page : 1/10 Responsable : Clé : U4.11.03 Révision : 496 Titre : Procédure POURSUITE Date : 07/04/2009 Page : 1/10 Procédure POURSUITE 1 But Poursuivre une étude à partir de la sauvegarde au format JEVEUX ou au format HDF de sa base 'GLOBALE'. La syntaxe apparemment

Plus en détail

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007 Introduction à l architecture des ordinateurs Adrien Lebre Décembre 2007 Plan - partie 1 Vue d ensemble La carte mère Le processeur La mémoire principal Notion de bus Introduction à l architecture des

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Support de cours système d exploitation

Support de cours système d exploitation Support de cours système d exploitation J. Gispert, J. Guizol, J.L. Massat Département d informatique Faculté de Luminy 163, Avenue de Luminy, Case 901, 13288 Marseille, cedex 9 23 février 2012 Chapitre

Plus en détail

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et

Plus en détail

Logiciel de base. Première année ENSIMAG

Logiciel de base. Première année ENSIMAG Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert

Plus en détail

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Table des matières. Introduction....3 Mesures et incertitudes en sciences physiques

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Architecture des ordinateurs Introduction à l informatique

Architecture des ordinateurs Introduction à l informatique Architecture des ordinateurs Introduction à l informatique 17 septembre 2004 1 2 3 4 5 6 Les interrupteurs... 0V 5V Ce sont des composants électroniques qui laissent pser un courant principal lorsque la

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Chapitre 10 Arithmétique réelle

Chapitre 10 Arithmétique réelle Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013

Plus en détail

Petit guide des sous-réseaux IP

Petit guide des sous-réseaux IP Petit guide des sous-réseaux IP Robert Hart, hartr@interweft.com.au version française par Laurent Caillat-Vallet, caillat@univ-lyon1.fr v1.0, 31 Mars 1997 Ce document décrit pourquoi et comment découper

Plus en détail

Initiation à la sécurité

Initiation à la sécurité Initiation à la sécurité UE Systèmes informatiques 12 septembre 2011 Julien Raeis - http://raeis.iiens.net/ Présentation Ingénieur IIE 2005 Carrière dans la sécurité des systèmes Consultant en sécurité

Plus en détail

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net : Champ Encodé SKWRITTEN() : Champ Variable défini Précédemment & définissant l état des champs à suivre ECT

Plus en détail

WEBVIEW. Serveur Web embarqué dans DIRIS G NOTICE D UTILISATION. www.socomec.com. http://www.socomec. com/webview_ software

WEBVIEW. Serveur Web embarqué dans DIRIS G NOTICE D UTILISATION. www.socomec.com. http://www.socomec. com/webview_ software NOTICE D UTILISATION WEBVIEW Serveur Web embarqué dans DIRIS G FR http://www.socomec. com/webview_ software www.socomec.com FR SOMMAIRE 1. DOCUMENTATION...3 2. OPÉRATIONS PRÉALABLES...3 3. PRÉSENTATION...3

Plus en détail

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

Traitement de données

Traitement de données Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Chapitre 4 : Les mémoires

Chapitre 4 : Les mémoires 1. Introduction: Chapitre 4 : Les mémoires Nous savons que dans un ordinateur toutes les informations : valeur numérique, instruction, adresse, symbole (chiffre, lettre,... etc.) sont manipulées sous une

Plus en détail

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération

Plus en détail

Une version javascript sera disponible directement dans le cours prochainement.

Une version javascript sera disponible directement dans le cours prochainement. Author : Cédric Vanconingsloo Ce cours est principalement axé sur la compréhension du fonctionnement d'un ordinateur et l'étude du seul langage qu'il connaisse, le binaire. De ce fait, le cours est relativement

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F) NanoSense 123 rue de Bellevue, 92100 Boulogne Billancourt France Tél : 33-(0) 1 41 41 00 02, fax : 33-(0) 1 41 41 06 72 Protocole Modbus de la sonde Particules P4000 (Version 01F) Ver V01A V01B V01C V01D

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail