Vous êtes sur la page 1sur 30

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A.

CHENINE

Architecture des Ordinateurs


Mr Abdelkader CHENINE
Chenine_a@yahoo.fr
Vesrion : V1.0 Draft sept.2019 Université Ibn-Khaldoun Tiaret
Département informatique
2eme Année License
Cours: ……………1h30
TD : ………………1h30
TP : ……………….1h30
Coefficient :………….. 3
Crédit : ……………….5
Unité fondamentale : UEF1

Chapitre 1 – Introduction
Chapitre 2 – Principaux composant d’un ordinateur
Chapitre 3 – Notions sur les instructions d’un ordinateur
Chapitre 4 – le processeur
Chapitre 5 – instructions spéciales

1

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

Chapitre 1 – introduction

1.1 Notion d’architecture des ordinateurs

L’architecture d’un ordinateur est la description de ses unités fonctionnelles et de leurs interconnexions.

CPU
Mémoire
Processeur
Microprocesseur

Entrées/Sorties
(E/S) (I/O)

Fig. 1. Schéma1 d’un ordinateur

L’architecture a un impact direct sur la logique d’exécution d’un programme


 Jeu d’instructions,
 Nombre de bits pour représenter les types de données (nombres, caractères, …)
 Mécanismes d’E/S,
 Techniques d’adressage de la mémoire

2

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

Unité de contrôle
(C.U)

Unité Unité Arithmétique et Unité de


Logique (ALU)
d’entrée sortie

R1 R2 Rn

Mémoire

Fig. 2. Schéma2 d’un ordinateur

Problème à résoudre Problème à résoudre

Software

Hardware
Hardware

Fig. 3. Les premiers ordinateurs Fig. 4. Les nouveaux ordinateurs

3

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

Programme = {instructions}

Code Machine :
00100100000000100000000000000101
00000000000000000000000000001100
00111100000000010001000000000001
10101100001000100000000000000100
00100100000000100000000000000101
00000000000000000000000000001100
00111100000000010001000000000001
10101100001000100000000000001000
00111100000000010001000000000001
10001100001010000000000000000100
00000001000000100010000000100000
00111100000000010001000000000001
10101100001001000000000000000000
00100100000000100000000000000001
00000000000000000000000000001100
00100100000000100000000000001010
00000000000000000000000000001100

4

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

1.2 Architecture de Von Neumann

L’architecture dite architecture de von Neumann est un modèle pour un ordinateur qui utilise une structure de
stockage unique pour conserver à la fois les instructions et les données demandées ou produites par le calcul.
Ce modèle est le résultat des travaux publiés en 1946 par le mathématicien John von Neumann, il est à la base
des ordinateurs actuels.

a. Processor (ALU + CU + Memory (Registers)),


b. Mémoire pour le programme & les données (MM),
c. Dispositif d’entrée/Sortie (I/O)

CPU Programme
Processeur
Données
Microprocesseur

Entrées/Sorties
(E/S) (I/O)

Fig. 5. Architecture de Von Neumann

- Un seul bus pour le transfert des instructions et des données.


- Cycle d’exécution est séquentielle

Recherche

Exécution Décodage

Fig. 6. Cycle d’exécution

5

2 LMD Architecture des ordinateurs 2019-2020 Chap. 1 Univ. Tiaret Mr A. CHENINE

1.3 Architecture de Harvard

Le nom de cette structure vient du nom de l’université Harvard où une telle architecture a été mise en pratique
pour la première fois avec Le Mark I en 1944.

CPU Programme
Données
Processeur
Microprocesseur

Entrées/Sorties
(E/S) (I/O)

Fig. 7. Architecture de Harvard


 Les deux mémoires peuvent avoir des caractéristiques différentes,
o Taille du mot,
o Timing,
o Technologie,
o Structure de l’adresse
 Mémoires séparées l’une pour le programme et l’autre pour les données accès simultanés
aux données et aux instructions.

1.4 Comparaison

Architecture de Von Neumann Architecture de Harvard


1 Mémoire partagée par les données et les Mémoires séparées pour les données et les
instructions instructions
2 Deux cycles d’horloges (un cycle pour la Un seul cycle d’horloge
recherche de l’instruction et un cycle pour la
recherche des données
3 Le pipeline n’est pas possible Le pipeline possible
4 Conception simple Conception complexe (C.U)
5 Hardware minime Plus de hardware
6 Moins d’espace Plus d’espace
7 Exécution moins rapide Exécution rapide
8 Meilleure exploitation de la mémoire L’espace libre dans une mémoire ne peut être
utilisé par l’autre mémoire

TD1 – La machine MINIAC


6

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Chapitre 2 – Principaux composant d’un ordinateur

Le CPU

2.1 Introduction

Fig. 8 Composant du processeur

7

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

(calculs en flottant, calcul d'adresses ...)


Le Processeur (CPU) : traite les données et envoie des ordres aux autres composants
2.2 Exécution d'une instruction
2.2.1 Cycle d’instruction

8

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Traiter une instruction implique les opérations suivantes :


 Lire l’instruction en mémoire : fetch,
 Comprendre ce que fait l’instruction (addition ? multiplication ? …) : decode,
 Aller chercher les opérandes si nécessaire (en mémoire ou en registre) : read
 Exécuter l’instruction : execute,
 Éventuellement écrire les résultats dans un registre ou en mémoire : write back

2.2.2 Cycle d'exécution d'une instruction


À chaque signal de l'horloge :
1. fetch :
1.1 l'adresse i de l'instruction (par exemple 183) est transférée de CI vers RA,

1.2 on augmente de 1 la valeur de CI


1.3 le contenu du mot d'adresse mémoire i va (via le bus de données) dans RI

2. decode :
l'instruction est décodée (par exemple ici add 327, c'est à dire ajouter le mot à l'adresse 327 à
l'accumulateur)

3. Execute :
3.1 l'adresse de la donnée (ici 327) est transférée dans RA
3.2 le contenu du mot d'adresse 327 (ici 56) est transféré dans l'UAL, ainsi que le contenu de
l'accumulateur (ici 14) : read
3.3 les 2 valeurs sont additionnée : execute proprement dit et le résultat est mis dans l'accumulateur :
write back

9

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

2.3 Jeu d’instruction [1]


2.3.1 Introduction
Le jeu d'instructions est l'ensemble des instructions machines qu'un processeur peut exécuter. Ces instructions
machines permettent d'effectuer des opérations élémentaires (addition, ET logique…). Le jeu d'instructions
définit quelles sont les instructions supportées par le processeur. Le jeu d'instructions précise aussi quels sont
les registres du processeur manipulables par le programmeur.
Exemple

10

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

2.3.2 Classes des jeux d'instructions


« 0 adresse »

Dans cette architecture, les instructions vont directement agir sur la pile. Les opérandes sont
automatiquement chargés depuis le pointeur de pile (SP, Stack Pointer), et le résultat est à son tour empilé.

L'opération A = B + C sera traduite par la séquence suivante :

Ce type d'architecture a été utilisé dans les calculatrices HP fonctionnant en notation polonaise inversée (post-fixée),
dans les machines Burroughs de la gamme B 5000 et les miniordinateurs Hewlett-Packard de la gamme HP 3000. Il est
aussi utilisé pour le FPU des processeurs x86.

« à accumulateur »
Sur une machine de ce type, historiquement ne disposant que d'un seul registre, appelé Accumulateur, tous les calculs
se font implicitement sur celui-ci.

11

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

L'opération A = B + C sera traduite par la séquence suivante :

« une adresse, registre - mémoire »

L'exemple A = B + C peut donc être traduit par la séquence :

« registre - registre »
Exemple, la séquence A = B + C sera traduite en :

« mémoire - mémoire »
L'expression A = B + C :

Exemple de traduction d’une instruction d’affectation avec évaluation d’une expression

Soit à traduire l’instruction d’affectation Python x=(a+b)*(c+d), où a, b, c et d sont des variables préalablemant
définies. Le langage d’assemblage dispose des instructions add pour l’addition, mul pour la multiplication,
mov pour le transfert de registre à registre ou de registre à mémoire, et des instructions load et store ou push et
pop suivant le cas. On notera respectivement A, B, C et D les adresses des variables a, b, c et d (ces adresses
doivent être déterminées par le programmeur). Ecrivons les programmes correspondants aux différentes
situations énumérées ci-dessus.

12

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

2.4 Familles de processeurs


Une autre classification très connue est celle qui fait la différence entre processeurs CISC, RISC,
VLIW, processeurs vectoriels, Architectures dataflow, DSP, etc. Cette classification se base surtout sur des
idiomes architecturaux communs entre processeurs d'une même catégorie.

On distingue généralement les jeux d'instructions complexes (CISC) et les jeux d'instructions réduits (RISC).
Ces deux philosophies de conception cohabitent. La plupart des architectures actuelles sont de type RISC,
mais l'architecture x86 d'Intel est de type CISC.

CISC
Les processeurs CISC embarquent un maximum d'instructions souvent très complexes mais prenant
plusieurs cycles d'horloge. Leurs instructions gèrent aussi un grand nombre de modes d'adressages.
Le jeu d'instructions x86 (CISC) équipe tous les processeurs compatibles avec l'architecture intel (qu'ils soient
construits par Intel ou AMD). Il a reçu plusieurs extensions dont le passage à une architecture 64 bits, x86-64.
Parmi les processeurs CISC notables, on peut citer, en plus du x86 :

 VAX ;
 68000.

RISC

À l'opposé, les processeurs RISC ont un jeu d'instructions plus réduit mais chaque instruction est codée
simplement et n'utilise que quelques cycles d'horloge. Toutes ses instructions sont de la classe « registre-
registre ».
Il existe de nombreuses familles de processeurs RISC :

 PowerPC ;
 SPARC ;
 ARM ;
 Alpha ;
 MIPS R3000.

13

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Difference between RISC and CISC:

14

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

UAL
2.5 Unité arithmétique et logique

L'unité arithmétique et logique (UAL, en anglais arithmetic–logic unit, ALU), est l'organe de
l'ordinateur chargé d'effectuer les calculs.

2.5.1 Différents types d'UAL

Les UAL peuvent être spécialisées ou pas. Les UAL élémentaires calculent sur des nombres entiers, et
peuvent effectuer les opérations communes, que l'on peut séparer en quatre groupes :

1. Les opérations arithmétiques : addition, soustraction, changement de signe, etc.


2. les opérations logiques : compléments à un, à deux, et, ou, ou-exclusif, non, non-et, etc.
3. les comparaisons : test d'égalité, supérieur, inférieur, et leur équivalents « ou égal ».
4. éventuellement des décalages et rotations (mais parfois ces opérations sont externalisées).

Certaines UAL sont spécialisées dans la manipulation des nombres à virgule flottante, en simple ou double
précision (on parle d'unité de calcul en virgule flottante (UVF, en anglais floating-point unit, FPU) ou dans
les calculs vectoriels. Typiquement, ces unités savent accomplir les opérations suivantes :

 additions, soustractions, changement de signe ;


 multiplications, divisions ;
 comparaisons ;
 modulos.

Certaines UAL, le plus souvent de la classe des FPUs, notamment celles des superordinateurs, sont
susceptibles d'offrir des fonctions avancées :

 inverse (1/x) ;
 racine carrée ;
 logarithmes ;
 fonctions transcendantes (sin x, cos x, etc.) ;
 opération vectorielle (produit scalaire, vectoriel, etc.) ;
 etc.

Les processeurs modernes font appel à plusieurs UAL, au moins deux : une située dans le chemin de contrôle
pour incrémenter le registre de programme (de 1, 2, 4 ou 8 typiquement), et une autre dans le chemin de
données pour traiter l'information. Pour augmenter leurs performances, elles sont le plus souvent pipelinées.

15

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

2.5.2 Drapeaux (D)

Il existe différents drapeaux qui définissent ou une erreur dans le résultat (division par zéro, dépassement de
mémoire...), ou alors des codes conditions (supérieur, inférieur, égal à zéro...).

La plupart des UAL possèdent des drapeaux qui ont différentes significations, dont voici plusieurs
exemples :

 Report (en : Carry-out), transporte le report résultant d'une addition, la retenue résultant d'une opération de
soustraction.
 Zéro, indique que tous les bits de R sont égaux à zéro.
 Négatif, indique que le résultat de l'opération arithmétique est négatif.
 Débordement (en anglais : overflow), indique que le résultat d'une opération arithmétique a excédé la capacité
numérique de R.

Exemple Circuit d’une UAL de 1 bit

Fig.9 UAL 1 bit

16

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Exemple d’UAL commercial

74LS181 (UAL 4 bits) 

 Opérandes sur A & B


 Type de fonctions sur M (1 logiques, 0 arithmétiques)
 Type d'opération sur S
 Résultat sur F

17

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Les mémoires

18

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

2.6 RAM

Une mémoire est un ensemble de registres précédé par un décodeur qui permet de sélectionner un des
registres. On distingue deux types de mémoire : RAM (mémoire vive) (Random Acces Memory) et ROM
(mémoire morte) (Read Only Memory).
Les ROM se programme une fois et leur contenu n'est pas modifié dans le circuit tandis que les RAM sont
faites pour sauvegarder les données au moment de fonctionnement normal du circuit.
Le choix d'écriture ou lecture se fait par une entrée souvent appelée .

De l'autre côté, il faut aussi des lignes d'adresse qui sont utilisées pour sélectionner un des registres. Il y
souvent une autre entrée (CS) qui sert à sélectionner le boîtier : si cette entrée n'est pas validée, le boîtier ne
réagit pas.

Fig. 10 Schéma fonctionnel d’une mémoire RAM

 Taille, organisation et capacité : nombre de mots, nombre de bits par mot et nombre total de bits.

 Temps d’accès, le temps entre l’envoi de l’adresse et l’obtention de la donnée, et temps de cycle, le
temps entre deux opérations mémoire successives.

19

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Exemple de RAM commerciale


Am29F010 (https://pdf1.alldatasheet.com/datasheet-pdf/view/55454/AMD/AM29F010.html) visité le 12/11/2019

1 Megabit (128 K x 8-bit)

Fig.10 RAM 1 MB

20

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

La RAM est constituée d’un ensemble ordonné de 2m cellules, chaque cellule contenant un mot de n bits.
Ces mots permettent de conserver les informations. On accède à n’importe laquelle de ces cellules au moyen
de son adresse, nombre entier compris dans l’intervalle [0, 2m-1]. Cet accès est en temps constant quelle que
soit la valeur de l’adresse (accès direct). Pour communiquer avec la mémoire, le bus est subdivisé en un bus
d’adresse et un bus de données. Il existe deux types d’accès :

 La lecture transfère sur le bus de données le mot contenu dans la cellule dont l’adresse est située sur
le bus d’adresse.
 L’écriture transfère dans la cellule dont l’adresse est sur le bus d’adresse, le mot contenu sur le bus
de données

Fig.11 Boutisme (endianness)

Fig. 12 Mémoire de 32 mots de 8 bits

Comme nombre flottant

0101 0011 1111 1010 1000 0000 0010 0000  2.1517828096E12 Big endian
00100000100000001111101001010011  2.18496941221920751566765075274E-19 Little endian

Comme instructions MIPS


53 FA 80 20  beql $ra $k0 0x8020 (voir annexe 01) Big Endian

20 80 FA 53  addi $zero $a0 0xFA53 Little Endian (voir annexe 02)


addi $0, $a0, 64083

21

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

1111101001010011
0000010110101100
1
0000010110101101  05AD  -1453

2.6.1 RAM statiques / RAM dynamiques

Il y a deux technologies de fabrication des RAM : statiques et dynamiques, elles ont chacune leur domaine
d'application

La SRAM ou RAM Statique est la plus ancienne. Les bits y sont mémorisés par des bascules électroniques
dont la réalisation nécessite six transistors par bit à mémoriser. Les informations y restent mémorisées tant
que le composant est sous tension. Les cartes mères utilisent une SRAM construite en technologie CMOS et
munie d'une pile pour conserver de manière non volatile les données de configuration (setup) du BIOS. Le
circuit de cette RAM CMOS est associé au circuit d'horloge qui lui aussi a besoin de la pile pour fonctionner
en permanence même quand l'ordinateur est éteint. La SRAM est très rapide et est pour cette raison le type
de mémoire qui sert aux mémoires cache.

La DRAM pour RAM dynamique est de réalisation beaucoup plus simple que la SRAM. Ce qui permet de
faire des composants de plus haute densité et dont le coût est moindre.
Chaque bit d'une DRAM est mémorisé par une charge électrique stockée dans un petit condensateur. Ce
dispositif offre l'avantage d'être très peu encombrant mais a l'inconvénient de ne pas pouvoir garder
l'information longtemps. Le condensateur se décharge au bout de quelques millisecondes (ms). Aussi pour
ne pas perdre le bit d'information qu'il contient, il faut un dispositif qui lit la mémoire et qui la réécrit de
suite pour recharger les condensateurs. On appelle ces RAM des RAM dynamiques car cette opération de
rafraîchissement doit être répétée régulièrement.

Bus d'adresses et de données

Fig. 13 Câblage du µP et le mémoire

22

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

2.6.2 Registres

Register is a very fast computer memory, used to store data/instruction in-execution.

A Register is a group of flip-flops with each flip-flop capable of storing one bit of information. An n-bit
register has a group of n flip-flops and is capable of storing binary information of n-bits.
A register consists of a group of flip-flops and gates. The flip-flops hold the binary information and gates
control when and how new information is transferred into a register. Various types of registers are available
commercially. The simplest register is one that consists of only flip-flops with no external gates.
These days registers are also implemented as a register file.

Loading the Registers


The transfer of new information into a register is referred to as loading the register. If all the bits of register
are loaded simultaneously with a common clock pulse than the loading is said to be done in parallel.

1. Serial In Serial Out shift register


2. Serial In parallel Out shift register
3. Parallel In Serial Out shift register
4. Parallel In parallel Out shift register

23

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Les registres, qui sont des mémoires de petite taille (quelques octets), suffisamment rapides pour que l’UAL
puisse manipuler leur contenu à chaque cycle de l’horloge. Un certain nombre de registres sont communs à
la plupart des processeurs.

 Compteur de programme : ce registre contient l’adresse mémoire de l’instruction en cours


d’exécution ;
 Accumulateur : ce registre est utilisé pour stocker les données encours de traitement par l’UAL ;
 Registre d’adresses : il contient toujours l’adresse de la prochaine information à lire par l’UAL : soit
la suite de l’instruction en cours, soit la prochaine instruction ;
 Registre d’instructions : il contient l’instruction en cours de traitement ;
 Registre d’état : il sert à stocker le contexte du processeur, ce qui veut dire que les différents bits de
ce registre sont des “ drapeaux” (flags) servant à stocker des informations concernant le résultat de la
dernière instruction exécutée.
 Pointeurs de pile : ce type de registre, dont le nombre varie en fonction du type de processeur,
contient l’adresse du sommet de la pile (ou des piles) ;
 Registres généraux : ces registres sont disponibles pour les calculs ;

Exemple de registre commercial

2.6.3 La mémoire cache (antémémoire)

Principe de localité

 Localité spatiale : les accès futurs en RAM se feront à des adresses proches des accès courants
 Localité temporelle : une donnée accédée récemment sera certainement réutilisée prochainement

On combine :

1. Une petite mémoire rapide avec


2. Une grosse mémoire lente

24

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Localité temporelle : on charge en mémoire rapide une donnée à laquelle on accède


Localité spatiale : on charge aussi les voisines
Politique de remplacement ?

Pas pratique

Performance du cache

 Cache hit : la donnée est dans le cache  accès rapide,


 Cache miss : la donnée n'est pas dans le cache  accès lent

Le processeur a besoin en permanence des données à traiter et des instructions à exécuter. Mais la mémoire centrale ne
peut fournir raisonnablement ces données à la vitesse dont le processeur en a besoin
Solution :
Utiliser une mémoire plus rapide entre la mémoire centrale et le processeur

25

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Divers niveaux de mémoire cache


Dans les microprocesseurs, on différencie plusieurs niveaux de caches, souvent au nombre de trois :
 Le cache de premier niveau (L1), plus rapide et plus petit (cache de données pouvant être séparé du
cache d'instructions) ;
 Le cache de second niveau (L2), moins rapide et plus gros ;
 Le cache de troisième niveau (L3), encore moins rapide et encore plus gros ;
Ces derniers caches peuvent être situés dedans ou hors du microprocesseur.

Pour plus d’information voir [2]


En résumé
Caractéristiques des mémoires
 Mode d'accès : aléatoire (RAM), séquentiel (disque dur), associatif (cache)
 Capacité d'écriture : ROM (en lecture seule), Non ROM (en lecture et écriture)
 Volatilité : maintien des informations en l'absence de courant ? (ROM : forcément non volatile, RAM : ça
dépend ; SDRAM : volatile ; NVRAM : non volatile ou RAM + pile : CMOS)

Les registres
 Capacité : 8-16-32-64 bits
 Temps d'accès : 1 ps (10-12 s)
 Volatile

Static Random Access Memory (SRAM)


 Capacité : 10 Ko - 10 Mo
 Temps d'accès : ≈ 1ns
 Volatile

Dynamic Random Access Memory (DRAM)


 Capacité : 10 Go
 Temps d'accès : 80 ns (réécriture toutes les ms)
 Volatile
 Moins cher que la SRAM
 Actuellement DRAM DDR5 16 Gb

Disque magnétique
 Capacité : 1 To – 4 To
 Temps d'accès : 10 ms
 Non volatile

26

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

La hiérarchie de mémoires

27

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Annexe 01 (source : https://www.eg.bucknell.edu/~csci320/mips_web/) visité le 12/11/2019.

BEQL $ra $k0 0x8020


Binary: 01010011111110101000000000100000
Hex: 0x53FA8020

BEQL
Branch on Equal Likely

MIPS Architecture Extension: MIPS II


Format:
BEQL rs, rt, offset [I-type]

Purpose:
To compare GPRs then do a PC-relative conditional branch; execute the delay slot only if the branch is
taken.
Description:
if (rs = rt) then branch_likely
An 18-bit signed offset (the 16-bit offset field shifted left 2 bits) is added to the address of the instruction
following the branch (not the branch itself), in the branch delay slot, to form a PC-relative effective target
address.
If the contents of GPR rs and GPR rt are equal, branch to the target address after the instruction in the delay
slot is executed. If the branch is not taken, the instruction in the delay slot is not executed.
Restrictions:
None.
Operation:
I:
tgt_offset <- sign_extend(offset || 02)
condition <- (GPR[rs] = GPR[rt])
I+1:
if condition then
PC <- PC + tgt_offset
else
NullifyCurrentInstruction()
endif
Exceptions:
Reserved Instruction
Programming Notes:
With the 18-bit signed instruction offset, the conditional branch range is ± 128 KBytes. Use jump (J) or
jump register (JR) instructions to branch to more distant addresses.

28

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Annexe 02 (source : https://www.eg.bucknell.edu/~csci320/mips_web/) visité le 20/11/2019.

ADDI $zero $a0 0xFA53


Binary: 00100000100000001111101001010011
Hex: 0x2080FA53

ADDI
Add Immediate Word

MIPS Architecture Extension: MIPS I


Format:
ADDI rt, rs, immediate [I-type]

Purpose:
To add a constant to a 32-bit integer. If overflow occurs, then trap.

Description:
rt <- rs + immediate
The 16-bit signed immediate is added to the 32-bit value in GPR rs to produce a 32-bit result. If the addition
results in 32-bit 2's complement arithmetic overflow then the destination register is not modified and an
Integer Overflow exception occurs. If it does not overflow, the 32-bit result is placed into GPR rt.

Restrictions:
On 64-bit processors, if GPR rs does not contain a sign-extended 32-bit value (bits 63..31 equal), then the
result of the operation is undefined.

Operation:
if (NotWordValue(GPR[rs])) then UndefinedResult() endif
temp <- GPR[rs] + sign_extend(immediate)
if (32_bit_arithmetic_overflow) then
SignalException(IntegerOverflow)
else
GPR[rt] <- sign_extend(temp31..0)
endif

Exceptions:
Integer Overflow

Programming Notes:
ADDIU performs the same arithmetic operation but, does not trap on overflow.
29

2 LMD Architecture des ordinateurs 2019-2020 Chap. 2 Univ. Tiaret Mr A. CHENINE

Références
[1] Ref. : https://fr.wikipedia.org/wiki/Jeu_d%27instructions visité le 11/11/2019
[2] https://fr.wikibooks.org/wiki/Fonctionnement_d%27un_ordinateur/Les_m%C3%A9moires_cache
Visité le 19/11/2019

30