mips exception on the cpu, Summaries of Computer Architecture and Organization

course lecture over the df df dfdf

Typology: Summaries

2024/2025

Uploaded on 12/15/2025

another-user-1
another-user-1 🇩🇿

4 documents

1 / 16

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Architecture des
ordinateurs I
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download mips exception on the cpu and more Summaries Computer Architecture and Organization in PDF only on Docsity!

Architecture des

ordinateurs I

Table des

matières

Objectifs 5

Introduction 7

I - Chapitre I :Concepts fondamentaux en architecture des

ordinateurs 9

A. Qu'est qu'un ordinateur ?.............................................................................. 9 B. Architecture de base d'un ordinateur............................................................ 10

1. Bus système.................................................................................................................. 10 2. Unité centrale de traitement ( microprocesseur)................................................................. 12 3. Structure interne de base d'une unité centrale de traitement............................................... 13 4. La mémoire................................................................................................................... 14 C. Langages de programmation évolués et Langage assembleur.......................... 18 D. Architectures RISC et CISC......................................................................... 19 K. DERBAL

Introduction

Historiquement, l'informatique est née de la nécessité d'automatiser les calculs

complexes qui ne peuvent être efficacement effectués par un être humain. Les

premières machines à calculer en est la preuve. Progressivement cette idée s'est

développée pour que l'ordinateur sous ses différentes formes (PC bureau, Laptop,

etc.) soit aujourd'hui omniprésent dans notre vie quotidienne et soit de plus en plus

puissant capable de traiter tout type d'information et d'effectuer les tâches les plus

complexes en un temps réel. l'informatique est désormais définie comme étant le

traitement automatique de l'information ou plus exactement le traitement de

l'information par ordinateur. L'information que traite un ordinateur peut être de

différents types (alphabétique, numérique, image, son...,)mais pour être traitée ,

elle doit être codée sous format binaire, c'est à dire une représentation à deux

états, 0 ou 1(courant électrique ou pas de courant, lumière ou absence de lumière,

orientation nord ou sud ...).

Les ordinateurs ont connu d'énormes progrès depuis l'apparition du premier

ordinateur. Ils sont d'aujourd'hui sont très complexes. Au niveau hardware ou

architecture les processeurs (cœurs de l'ordinateur) ont considérablement évolué ;

le processeur Core i7 8 coeurs de Intel par exemple est 1.4 milliards de transistors.

même évolution est constaté au niveau software ( systèmes d'exploitation,

environnement de développement. etc). d'où la nécessité d'étudier leur

fonctionnement à différents niveaux d'abstraction.

Ce support de cours est organisé en trois chapitres inter-liés :

Le premier chapitre présente l’architecture de base d’un ordinateur qui est facile à

comprendre mais dont les concepts architecturaux abordées sont présents dans

tous les microprocesseurs réels avec des nominations et des structures variées.

K. DERBAL

Le deuxième chapitre sera consacré à l’étude d’un micro-processeur réel , soit le

Intel 8086. Ce micro-processeur est l’ancêtre de la famille intel X86. Une étude

détaillée de l’aspect interne et externe dans une première partie. Par contre dans la

partie 2, nous abordons la structure et l’organisation de la mémoire adressable par

le micro-processeur i8086.

Le chapitre III aborde la programmation en assembleur i8080 et la génération du

code machine qui présuppose une bonne connaissance du microprocesseur i8086,

objet du deuxième chapitre de ce cours.

K. DERBAL

B. Architecture de base d'un ordinateur l'architecture de base d'un ordinateur peut être représentée par le schéma bloc suivant : Figure 1.1 : schéma synoptique d'un ordinateur le schéma de la figure 1.1 présente les principaux composants d'un ordinateur et leurs interconnections : l'Unité Centrale de Traitement (UCT) ou Central Processing Unit (CPU) en Anglais est chargé des traitement de l'information qui lui est fournis conformément au programme traitant cette information. ces programmes ainsi que les données qu'ils traitent sont stockées en mémoire. Toutes ces activités sont synchronisées par un signal d'horloge à fréquence bien défini. Ll' Unité d'Entrée/Sortie (I/O en Anglais) représente les différents dispositifs (périphériques) qui permettent au processeur d'interagir avec le monde externe, en introduisant de l'information dans l'ordinateur (unités d'entrée)ou en restituant les résultats des traitements effectués par l'ordinateur (Unité de sortie), on peut citer ,le clavier, l'écran, la souris, la carte graphique, la carte réseau, etc. Ces différents composants d'un ordinateur sont reliés par des bus

1. Bus système Définition On appelle « Bus » l'ensemble des liaisons physiques (câbles, pistes de circuits imprimés, etc.) pouvant être exploités en commun par plusieurs éléments matériels (Composants) afin de les faire communiquer. tel qu'illustré sur la figure 1.1. L' UCT est liée à la mémoire ainsi qu'à l'unité d'E/S via des Bus. Mais il faut noter Chapitre I :Concepts fondamentaux en architecture des ordinateurs

cycle d'exécution : exécute l'instruction en procédant éventuellement, au chargement des opérandes à partir de la mémoire. Cette séquence d'étapes Recherche-Décodage-Exécution (voir figure 1.3) que le processeur effectue indéfiniment informe sur la nature séquentielle de l'exécution d'un programme, cela signifie qu'une instruction d'ordre n ne peut s'exécuter avant une instruction d'ordre n-1. Cependant cette séquentialité peut ne peut pas être vérifiée ?! Question : Dans quel cas la séquentialité d'un programme est perturbée? Toutes les activités ou calculs effectuées par l'ordinateur (processeur, bus, etc.) sont cadencées et synchronisées par une horloge de fréquence f. Une horloge est un circuit à quartz qui génère des signaux périodiques appelés impulsions. Son rôle est de cadencer toutes les activités de l'ordinateur, de façon à ce que tous les composants de l'ordinateur travaillent ensemble de façon synchronisée. Plus la fréquence de l'horloge est élevée, et plus l'ordinateur est plus rapides. En effet, le temps de cycle ou la période de l'horloge est égale à t= 1/f , si f est élevée t sera suffisamment réduit , ce qui permettra à l'ordinateur d'effectuer plus d'opération en une unité de temps (par seconde), mesuré en MIPS, « Million d'Instructions par Seconde ». La figure 1.4 présente un exemple de signal d'horloge. La fréquence d'une horloge est mesuré en Hertz (Hz), elle informe sur le nombre de battements par seconde. Parmi les unités de mesure, nous citons : ( complétez le vide): KHz (kilo-Hertz) ; 1Khz = ....... Hz MHz (Méga-Hertz), 1MHz = .........Hz GHz (Giga-Hertz), 1 GHz = .........Hz THz (Téra-Hertz), 1 THz =..........Hz Le temps d'un cycle machine(Cycle d'horloge ou CLK cycle ) est calculé comme suit : t est exprimé en seconde (s) si f est exprimé en HZ) Figure 1.4 : signal d'horloge Question : La fréquence permet donc d'évaluer la puissance de l'ordinateur. Ceci est-il toujours vrai ?!, expliquer. Chapitre I :Concepts fondamentaux en architecture des ordinateurs

3. Structure interne de base d'une unité centrale de traitement L'architecture de base d'une unité centrale de traitement intègre deux parties : Unité d'exécution ou de calcul et l'unité de contrôle (voir Figure I.5) qui communique avec la mémoire centrale ou sont stockés les programmes et les données qu'elle traitent. f Figure 1.5 : architecture interne de base d’une unité centrale de traitement 1. figure Définition : Unité de contrôle : Elle joue le rôle de superviseur, elle contrôle le déroulement de toutes les opérations au sein du Processeur (Génération des signaux de Lecture/Ecriture d'accès à la mémoire, décodage des instructions, etc.). Elle est composée de :  Compteur Ordinal (Program Counter en Anglais) : qui contient l'adresse mémoire où est stockée la prochaine instruction à charger. Au début de l'exécution d'un programme, le CO est initialisé par le système d'exploitation à l'adresse mémoire où est stockée la première instruction.Le compteur ordinal est incrémenté chaque fois qu'une instruction est chargée dans le CPU.  Le Registre d'Instruction (RI) : un registre où est stockée l'instruction en cours d'exécution ou qui doit être exécuté.  Le décodeur : identifie (à partir du code de l'opération) l'opération à exécuter parmi toutes les opérations possibles, générer les signaux correspondant et les communiquer aux autres unités (séquenceur).  Le séquenceur : qui va "décoder" l'instruction contenue dans RI egénère tous les signaux de commandes qui activent les différents composants concernés par l'exécution de l'opération telle que l'UAL. Il gère le séquencement des opérations. Chapitre I :Concepts fondamentaux en architecture des ordinateurs

Deux principales opérations sont effectuées sur la mémoire soient : l'opération de Lecture (Read) qui se traduit par le transfert ou le chargement d'une information à partir de la mémoire dans l'UCT ( le microprocesseur) sans que le contenu de la mémoire soit supprimé. Par contre l'opération d'écriture (Write) implique un transfert d'information de l'UCT vers la mémoire, à un emplacement donné, ce qui provoquera l’écrasement de l'ancienne valeur contenu dans cet emplacement. Ces deux opérations sont effectuées sous le contrôle de deux signaux , read et write comme le notre la figure 1. E e x e f f f f f q d g q f d g q f d g q s h f d g h q s f d g h q f s d g x 2. Reprendre l'exemple avec une mémoire de 1 K octets. e m p l e Exemple d’application Soit une mémoire de 16 emplacements d'un octet chacun.

  1. Proposez un schéma sur lequel vous représentez les adresses des emplacements écrit en binaire puis en Hexadécimal.
  2. Reprendre l'exemple avec une mémoire de 1 K octets
  3. Décrire la séquence d'étapes d'une opération de lecture effectuée sur la mémoire 2. Même question pour l’opération d'écriture effectuée sur la mémoire. 1. Décrire la séquence d'étapes d'une opération de lecture effectuée sur la mémoire 2. Même question pour l’opération d'écriture effectuée sur la mémoire.^ C^ o^ m^ p^ l^ é^ m^ e^ n^ t^ :^ C o m p l é m e n t Déroulement d'une opération de lecture (cycle de lecture) et d'une opération d'écriture (cycle d'écriture): Déroulement d'une opération de lecture (cycle de lecture) et d'une opération d'écriture (cycle d'écriture) Complément : Déroulement d'une opération de lecture (cycle de lecture) et d'une opération d'écriture (cycle d'écriture)
  4. Décrire la séquence d'étapes d'une opération de lecture effectuée sur la mémoire
  5. Même question pour l’opération d'écriture. C. Langages de programmation évolués et Langage assembleur l'ordinateur est une machine qui exécute des programmes pour accomplir des tâches spécifiques (ex. Gestion des employés d'une entreprise, , etc.). Ces programmes sont élaborés en utilisant des langages de programmation. Le langage dit natif de l'ordinateur est le langage machine, c'est une suite binaire (de 0 et 1) qui représente le code d'une instruction. Chaque instruction est identifiée par un Chapitre I :Concepts fondamentaux en architecture des ordinateurs Figure 1.6 : opérations de lecture et d’écriture sur la mémoire

code appelé code opération (Operation code ou Opcode en anglais), ainsi l'opcode d'une addition est différent de celui d'une multiplication ou de soustraction. Cependant, il est difficile, voire impossible pour le programmeur qui est un être humain d'utiliser un tel langage de chiffres pour réaliser des programmes du fait de son incapacité de mémoriser un code (suite numérique de 0 et 1). Ceci a conduit à l'apparition du langage assembleur qui est proche du langage binaire mais qui est plus simple à utiliser car il remplace le code de l'instruction par des symboles ou mnémoniques, conformément à une syntaxe bien définie. A titre d'exemple, une opération d'addition est symbolisée par ADD en assembleur i8086 et ses opérandes peuvent être des registres ou des variables mémoire. Le langage assembleur se place donc, à un niveau plus élevé que le langage machine (voir figure 1.7), il doit donc disposer d'un traducteur qui assure le passage du langage assembleur vers le langage binaire compréhensible et exécutable par la machine. Ce traducteur est appelé à ce niveau "programme d'assemblage" où chaque instruction en assembleur correspond à son équivalente en binaire et vice versa. Malgré cela, le langage assembleur demeure difficile à utiliser car chaque processeur a son propre langage machine donc son propre langage assembleur. Cela signifie que celui qui programme en un langage assembleur donné doit impérativement connaître le processeur pour lequel il programme, un inconvénient majeur auquel on devait faire face pour plus de facilité. Et la solution a été apportée avec l'apparition de langages dit évolués ou pseudo- naturels car ils sont proches des langages naturels( vocabulaire et règles syntaxiques), ils sont par conséquent plus simples à utiliser et ils ne sont pas lié à un processeur particulier. Mais comme l'ordinateur ne comprend que son Langage qui est le langage binaire, d'où la nécessité d'avoir un traducteur qui traduit le programme écrit en Langage évolué en un programme écrit en langage binaire compréhensible par la machine. Ainsi, chaque langage évolué dispose d'un traducteur nommé compilateur qui est lui même un programme (logiciel). Il existe actuellement de nombreux langages évolués tels que : C++, java, Python, etc. Il est important de noter que les compilateurs et environnements de développement en général, constitue l'un des axes software qui ont connu une évolution remarquable. Figure 1.7 : processus d'assemblage Remarque Un programme écrit en assembleur ou en langage évolué est appelé "programme source " ou "code source", la phase de compilation ou d'assemblage permet Chapitre I :Concepts fondamentaux en architecture des ordinateurs

ses processeurs plus récent (Pentium Pro) car les instructions complexes sont traduites en instructions simples de type RISC lors de leurs exécutions.

Dans ce chapitre, nous avons présenté quelques concepts fondamentaux en architecture des ordinateurs notamment l'architecture de base d'un processeur et la structure de la mémoire principale avec laquelle il communique lors de l'exécution d'un programme. Ceci permettra au lecteur de ce lancer dans les prochains chapitres qui aborde un micro-processeur réel, soit le micro-processeur i8086 de la famille intel. Chapitre I :Concepts fondamentaux en architecture des ordinateurs