Organisation des ordinateurs Examen de première session 2015 Livres fermés. Durée : 3 heures 1/2. Veuillez répondre à chaque question sur une feuille séparée sur laquelle figurent nom, prénom et section. Soyez bref et concis, mais précis. [6/20] 1. Un système de contrôle d’un processus industriel possède deux entrées i1 et i2 connectées à des capteurs, une entrée supplémentaire r permettant de le réinitialiser, et une sortie s. Ce système est implémenté par un circuit séquentiel qui fonctionne de la façon suivante : – Lorsque r = 1, le système est inactif et produit toujours s = 0. – Lorsque r = 0, le système compare la valeur des entrées i1 et i2 . Tant que celles-ci sont égales, la sortie s reste à 0. En revanche, si i1 et i2 diffèrent pendant au moins deux périodes consécutives de l’horloge, alors la sortie s devient égale à 1. – Lorsque la sortie s passe à 1, elle garde cette valeur jusqu’à ce que le circuit soit réinitialisé (en entrant r = 1). Concevoir un circuit séquentiel conforme à ces spécifications. A titre d’exemple, voici le comportement souhaité du circuit pour un scénario particulier (le temps évoluant de gauche à droite) : i1 i2 r s 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 ··· ··· ··· ··· [2/20] 2. (a) Quels sont tous les nombres dont la représentation par complément à un et par complément à deux sur n bits sont identiques, pour n > 0 donné ? (Justifier votre réponse.) [1/20] (b) Calculer la somme (−71) + (−29) en représentant les nombres par complément à un sur 8 bits. [1/20] (c) Dans le procédé de représentation IEEE 754, quel est l’intérêt d’utiliser des mantisses dénormalisées ? [3/20] 3. (a) On souhaite assembler quatre composants de mémoire morte 1G × 8 de façon à obtenir une mémoire composite 2G × 16. Dessiner un schéma complet montrant comment réaliser cet assemblage. Note : La forme des lignes de contrôle des composants peut être librement choisie. [2/20] (b) Dans un processeur, quelle est l’utilité des lignes de contrôle ? Par quel mécanisme une valeur leur est-elle attribuée ? 1 [5/20] 4. Ecrire un programme assembleur 80x86 capable d’extraire d’une chaı̂ne de caractères le préfixe précédant la première occurrence du symbole “:”. La chaı̂ne de caractère est représentée en ASCII à partir de l’adresse fournie dans le registre AX, et est suivie d’un octet nul. On demande d’écrire le résultat à partir de l’adresse fournie dans le registre BX, et de le faire suivre également d’un octet nul. Par exemple, si AX pointe initialement vers une séquence d’octets représentant la chaı̂ne “http://www.ulg.ac.be”, le programme doit écrire à partir de l’adresse spécifiée par BX la chaı̂ne “http”, suivie d’un octet nul. Notes : – Dans le cas où la chaı̂ne fournie ne contient pas “:”, le résultat doit être composé de l’entièreté de cette chaı̂ne. – On peut supposer que BX pointe vers une zone de mémoire distincte de la chaı̂ne pointée vers AX, et de taille suffisante pour contenir le résultat. – Le code ASCII du symbole “:” est égal à 0x3a. 2 Annexe 1 : Modes d’adressage des instructions 80x86 Op.1 rα mα rα pα MOV Op.2 Op.1 rα rα rα rα mα pα rα mα ADD, Op.1 rα mα rα pα r16 m16 Op.2 pα iα iα iα SUB, AND, OR, Op.2 Op.1 rα rα rα rα mα pα rα mα i8 p16 i8 XCHG Op.1 Op.2 rα rα mα rα pα rα rα mα rα pα XOR, CMP Op.2 pα iα iα iα i8 PUSH Op.1 r16 m16 i16 POP Op.1 r16 m16 INC, DEC, MUL, NOT Op.1 rα mα pα JMP, LOOP, CALL Op.1 i16 r16 m16 p16 r = registre, i = immédiat, m = direct, p = indirect ou indirect indexé, α = 8 ou 16. Annexe 2 : Instructions de saut conditionnel Instr. JE JNE JG JGE JL JLE JA JAE JB JBE Condition de saut Op1 = Op2 Op1 6= Op2 Op1 > Op2 (valeurs Op1 ≥ Op2 (valeurs Op1 < Op2 (valeurs Op1 ≤ Op2 (valeurs Op1 > Op2 (valeurs Op1 ≥ Op2 (valeurs Op1 < Op2 (valeurs Op1 ≤ Op2 (valeurs 3 signées) signées) signées) signées) non signées) non signées) non signées) non signées)