Vue d'ensemble de l'ordinateur.

Documents pareils
Architecture des ordinateurs

Exécution des instructions machine

Cours Informatique 1. Monsieur SADOUNI Salheddine

Tout savoir sur le matériel informatique

Conception de circuits numériques et architecture des ordinateurs

ELP 304 : Électronique Numérique. Cours 1 Introduction

ASR1 TD7 : Un microprocesseur RISC 16 bits

Programmation assembleur : aperçu

Cours 3 : L'ordinateur

Une version javascript sera disponible directement dans le cours prochainement.

Architecture des Ordinateurs. Partie II:

Logiciel de base. Première année ENSIMAG

Fonctionnement et performance des processeurs

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

Rappels d architecture

Éléments d'architecture des ordinateurs

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

Matériel & Logiciels (Hardware & Software)

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

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

Chapitre 4 : Les mémoires

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

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

IFT1215 Introduction aux systèmes informatiques

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

IV- Comment fonctionne un ordinateur?

GESTION DE LA MEMOIRE

Microprocesseur + Logiciel

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Architecture Matérielle et Logicielle (LIF6) Cahier d'exercices, automne 2014

Représentation des Nombres

Structure de base d un ordinateur

Structure d un programme

Architecture des ordinateurs

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

Tests de performance du matériel

Prentice Hall, 2011 (ISBN )

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

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

Architecture des ordinateurs Introduction à l informatique

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

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

Structure et fonctionnement d'un ordinateur : hardware

Licence Sciences et Technologies Examen janvier 2010

Architecture matérielle des systèmes informatiques

Module M1 Elément 2 : Informatique 1 (I1)

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Leçon 1 : Les principaux composants d un ordinateur


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

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Conception de circuits numériques et architecture des ordinateurs

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

ROYAUME DU MAROC RESUME THEORIQUE & GUIDE DE TRAVAUX PRATIQUES : TERTIAIRE ET NTIC : SYSTÈME ET RÉSEAUX INFORMATIQUES

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

Master e-secure. VoIP. RTP et RTCP

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Description d'une liaison

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Cours Informatique Master STEP

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Informatique Générale

Cours 1 : Qu est-ce que la programmation?

Projet de Veille Technologique

Jeu d instructions NIOS II

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

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

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

CM2 L architecture MIPS32

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

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

QUESTION 1 {2 points}

Introduction à NetCDF

Compilation (INF 564)

Initiation au HPC - Généralités

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Architecture des ordinateurs

Ordinateurs, Structure et Applications

PIC : COURS ASSEMBLEUR

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Lecteur de carte à puce LCPM1 SOMMAIRE

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO

TRANSFERER UNE PHOTO SUR CLE USB

Transmissions série et parallèle

Fiche technique CPU 314SC/DPM (314-6CG13)

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Un ordinateur, c est quoi?

Annexe : La Programmation Informatique

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Guide Mémoire NETRAM

Transcription:

Vue d'ensemble de l'ordinateur. Un ordinateur est une machine conçue pour exécuter au moins un programme formé d'une séquence d'instructions. Nous décrivons ici l'organisation d'un ordinateur répondant au modèle de Von Neumann : c'est un modèle mis au point dans les années 1950, et qui est toujours utile pour comprendre le fonctionnement des ordinateurs. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 1 / 20

Plan 1 Mémoire centrale 2 Unité centrale de traitement 3 Classes d'instructions et modes d'adressage 4 Cycle d'instruction 5 Organisation des unités autour d'un bus 6 Un exemple : le processeur Intel 8080 7 Conclusion Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 2 / 20

Dans le modèle de Von Neumann, l'ordinateur se compose : d'une mémoire centrale, qui contient le programme et les données ; d'une unité centrale de traitement (UCT), qui exécute un programme contenu en mémoire centrale ; d'une (ou plusieurs) unité d'entrée-sortie permettant l'échange d'informations avec l'environnement de l'uct. Un système d'interconnexion permet l'interaction entre ces unités. Unité d entrée/sortie Unité centrale de traitement Mémoire centrale Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 3 / 20

Mémoire centrale Au niveau physique, la mémoire ne supporte que des bits : les données et les instructions sont stockées sous forme de mots (suite de bits). C'est une mémoire à accès aléatoire (RAM, pour Random Access Memory) : la mémoire est composée de cases, chacune identiée par une adresse unique. La case mémoire est la plus petite unité d'information adressable. chaque case peut être lue/écrite en temps constant, indépendamment des accès précédents. Chaque case mémoire est identiée de façon unique par un indice appelé adresse. Avec des adresses sur m bits, cela donne 2 m adresses possibles, de 0 à 2 m 1. La mémoire peut donc être vue comme un tableau de 2 m cases mémoires : si add est une adresse, on notera mem[add] la case mémoire d'adresse add. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 4 / 20

L'UCT contient une petite quantité de registres : un registre est une cellule mémoire, physiquement présente dans l'uct, permettant de stocker un mot de longueur xée (typiquement, 8, 16, 32 ou 64 bits). Les registres stockent temporairement les données et les résultats intermédiaires des calculs, ou des informations de contrôle. Ils ne sont pas référencés par une adresse en mémoire ; il existe un mode d'adressage dédié pour eux. Les registres peuvent être lus et écrits très rapidement car : ils sont physiquement présents dans l'uct, ils sont fabriqués à l'aide de composants très rapides. Au contraire, les accès à la mémoire sont beaucoup plus lents : elle est plus éloignée de l'uct, et fabriquée à partir de composants plus lents. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 5 / 20

Stockage des programmes en mémoire centrale Chaque instruction est stockée en mémoire sous la forme d'un ou plusieurs mots binaire. Le code d'une instruction se décompose en : un champ appelé code-opération ou opcode, qui spécie l'opération qui doit être réalisée lors de l'exécution de l'instruction ; éventuellement, un ou plusieurs champs opérandes qui dénissent les emplacements où l'instruction doit lire ses sources et écrire son résultat. Ex : sur une certaine machine, les instructions sont codées sur 16 bits : 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 opcode adresse Exemples d'opcodes hypothétiques : 0001 : charger le mot dont l'adresse est donnée dans ACC ; 0010 : stocker le mot contenu dans ACC à l'adresse donnée. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 6 / 20

Ex : Compilons le petit programme C suivant avec gcc -O0 -Wa,-alh : int a, b; int main(void) { int c; a = 6; b = -5; c = a + b; return(c); } Sur une machine implantant l'architecture x86, on obtient le listing suivant, qui comporte en particulier le codage en langage machine du programme : 1.file "test.c" 2.comm a,4,4 3.comm b,4,4 4.text 5.globl main 6.type main, @function 7 main: 8 0000 55 pushl %ebp 9 0001 89E5 movl %esp, %ebp 10 0003 83EC10 subl $16, %esp 11 0006 C7050000 movl $6, a 11 00000600 11 0000 12 0010 C7050000 movl $-5, b 12 0000FBFF 12 FFFF 13 001a 8B150000 movl a, %edx 13 0000 14 0020 A1000000 movl b, %eax 14 00... Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 7 / 20

Unité centrale de traitement L'UCT contient (au moins) deux unités fonctionnelles : L'unité de contrôle (UC), pour gérer l'exécution des instructions ; L'unité arithmétique et logique (UAL ou ALU), pour eectuer les opérations sur les données. Mémoire centrale Unité de contrôle Unité Arithmétique et Logique Unité d Entrées/Sorties Unité centrale de traitement Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 8 / 20

L'unité de contrôle (UC) active dans un ordre précis les circuits nécessaires à l'exécution des instructions d'un programme. Elle utilise deux registres : le registre d'instruction IR, qui contient l'instruction en cours d'exécution ; le compteur de programme PC, qui contient l'adresse en mémoire centrale de la prochaine instruction a exécuter. L'UC contient un circuit pour le décodage des instructions, qui détermine quelle opération doit être exécutée en fonction de l'opcode de l'instruction courante. L'UC est synchronisée sur une horloge, dont la fréquence détermine celle à laquelle sont executées les instructions. L'unité arithmétique et logique (ALU) contient les circuits nécessaires pour exécuter des instructions du langage machine : addition, soustraction, multiplication, division, opérations logiques (or, and, not... ). Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 9 / 20

L'UCT doit échanger des données ou des instructions avec la mémoire centrale. Elle utilise pour cela deux registres internes : Un registre d'adresse AR, qui spécie l'adresse de la mémoire centrale où devra être réalisée la prochaine lecture ou d'écriture. La taille du registre AR détermine le nombre maximal de cases mémoires adressables. Un registre de données mémoire MDR est utilisé pour les accès en écriture et les accès en lecture. Le MDR peut soit contenir la donnée qui doit être écrite en mémoire centrale, soit recevoir la donnée qui doit être lue en mémoire centrale. On peut imaginer un mécanisme similaire pour échanger avec les unités d'e/s. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 10 / 20

Classes d'instructions et modes d'adressage On appelle jeu d'instructions l'ensemble des instructions disponibles dans le langage machine d'un ordinateur (qu'il peut exécuter). On distingue essentiellement trois classes d'instructions : Opération arithmétique et logique : opération sur des données. addition, soustraction, ou, et, ou-exclusif... Accés mémoire : transfert entre un registre de l'uct et la mémoire. LOAD : chargement du contenu d'une case mémoire dans un registre. STORE : rangement du contenu d'un registre dans une case mémoire. Contrôle du ot d'instructions : Le PC est incrémenté à chaque cycle d'instruction, mais certaines instructions peuvent modier sa valeur. utilisé pour les boucles et les blocs si-alors-sinon ; instructions de branchement, de saut, ou d'appel à des routines. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 11 / 20

Ex : Le LC3 dispose de 8 registres, notés R0,...,R7. Dans le langage d'assemblage, l'instruction d'addition se décline de deux façons : ADD DR, SR1, SR2, qui eectue DR <- SR1 + SR2. Tous les opérandes de l'instruction sont des registres : adressage par registre. Exemple : ADD R1, R2, R3 eectue R1 <- R2 + R3. ADD DR, SR1, imm5, qui eectue DR <- SR + imm5. Le dernier opérande est un immédiat, i.e., il est codé dans l'instruction. Exemple : ADD R1, R2, 5 eectue R1 <- R2 + 5. Dans le codage de l'instruction en langage machine, un bit permet de spécier quel mode d'adressage est utilisé pour le troisième opérande : assembleur action codage opcode arguments F E D C B A 9 8 7 6 5 4 3 2 1 0 ADD DR,SR1,SR2 DR <- SR1 + SR2 0 0 0 1 DR SR1 0 0 0 SR2 ADD DR,SR1,Imm5 DR <- SR1 + Imm5 0 0 0 1 DR SR1 1 Imm5 Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 12 / 20

Ex (suite) : Le LC3 présente deux instructions d'accès à la mémoire : LD DR, add, qui eectue DR <- mem[add]. ST SR, add, qui eectue mem[add] <- SR. Dans les deux cas, add désigne une adresse mémoire, et mem[add] la case mémoire d'adresse add. On parle d'adressage direct pour le second opérande de ces instructions, car c'est une adresse en mémoire centrale qui est désignée. Dans le codage de ces instructions en langage machine, l'addresse de chargement ou de rangement en mémoire se retrouve codée 1 dans l'instruction : assembleur action codage opcode arguments F E D C B A 9 8 7 6 5 4 3 2 1 0 LD DR,add DR <- mem[add] 0 0 1 0 DR add ST SR,add mem[add] <- SR 0 0 1 1 SR add 1. Sous une forme particulière, que nous ne détaillerons pas tout de suite... Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 13 / 20

Ex (suite) : Le jeu d'instruction du LC3 permet d'eectuer un branchement inconditionnel de la façon suivante : BR add, qui eectue PC <- add. Dans ce cas, add désigne l'adresse mémoire de l'instruction qui sera exécutée après l'instruction BR add. A nouveau, il s'agit d'un adressage direct : assembleur action codage opcode arguments F E D C B A 9 8 7 6 5 4 3 2 1 0 BR add PC <- add 0 0 0 0 0 0 0 add La méthode de localisation des opérandes, dans la mémoire ou parmi les registres, est appelé mode d'adressage ; on parle d'adressage : par registre lorsque l'emplacement désigné est simplement un registre. immédiat lorsque l'opérande est une valeur codée dans l'instruction. direct lorsque l'opérande est une adresse en mémoire centrale. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 14 / 20

Cycle d'instruction Lors de l'exécution d'un programme, l'uct doit eectuer une séquence de tâches pour exécuter chacune des instructions de ce programme. Cette séquence, gérée par l'unité de contrôle, est appelée cycle d'instruction. Chaque tâche du cycle d'instruction occupe un cycle d'horloge du processeur. L'exécution d'un programme est une succession de cycles d'instructions : Début de l exécution Chargement d une instruction Exécution de l instrution chargée Fin de l exécution Notons que : certaines parties du cycle peuvent varier d'une instruction à l'autre, les cycles d'instructions peuvent varier d'un processeur à l'autre. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 15 / 20

Organisation des unités autour d'un bus Les échanges entre les unités de l'ordinateur sont réalisés grâce à des groupes de ls permettant le transfert de mots binaires : si la structure d'interconnexion était réalisée par des liaisons point-à-point, elle deviendrait vite inextricable... On utilise donc un bus : un bus est une nappe de ls paralléles permettant des échanges d'informations cohérents entres plus de deux unités. Plusieurs unités peuvent s'échanger des informations au travers d'un même bus, mais une seule unité à la fois peut envoyer des données avec succès sur le bus. Sur un bus circulent : des adresses, des données, des signaux de contrôle. UCT Mémoire Mémoire E/S E/S contrôle adresses données Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 16 / 20

Les lignes de données permettent la transmission de mots binaires. Ex : si le bus de données a une largeur de 8 bits, et que les instructions sont codées sur 16 bits, alors il faut deux accès pour charger chaque instruction. Les lignes d'adresses spécient les adresses de source ou de destination des données circulant sur le bus de données (ou bien l'adresse d'un port d'e/s). Ex : sur un hypothétique bus d'adresse de 8 bits les adresses 00000000 2 à 01111111 2 désignent une adresse de la mémoire centrale, et les adresses 10000000 2 à 11111111 2 désignent l'un des ports d'une unité d'e/s. Les lignes de contrôle permettent l'implantation d'un protocole d'assurant la abilité des communications entre les unités connectés au bus. Ex : les signaux de contrôle suivants peuvent être utilisés : clock : un signal d'hologe pour synchroniser les échanges ; bus request : lorsqu'une unité veut prendre le contrôle du bus ; bus grant : indique qu'une unité a le contrôle du bus ; write memory : provoque l'écriture des données à l'adresse spéciée ; Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 17 / 20

Un exemple : le processeur Intel 8080 Sorti en 1974, le 8080 d'intel est un processeur 8 bits comportant environ 6000 transistors, et cadencé à 2 MHz. Il est souvent considéré comme le premier microprocesseur véritablement utilisable dans une unité centrale. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 18 / 20

Le 8080 est un processeur 8 bits, au sens ou il travaille de manière privilégiée avec des mots de 8 bits : l'ual manipule des octets, et le bus de données a une largeur de 8 bits. Par contre, le bus d'adresse a une largeur de 16 bits : quelle est la capacité maximale d'adressage du processeur? On a huit registres de 8 bits, dont certains peuvent être appariés pour former un registre de 16 bits (BC, DE, HL). Deux registres 16 bits sont directement liés aux adresses mémoire : PC et SP. Toutes les opérations arithmétiques et logiques sont faites par le biais du registre Accumulator, et d'un registre temporaire (non accessible au programmeur). Flag est un registre d'état (Program Status Register, PSR) : il indique par exemple si le dernier résultat calculé par l'alu était positif, négatif ou nul. D'autre part, le processeur va chercher dans la même mémoire les instructions et les données : il réalise bien une architecture dite de von Neumann. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 19 / 20

Conclusion Nous avons présenté le modèle dit de Von Neumann, qui permet d'aborder le fonctionnement général des ordinateurs. Dans les cours suivants, nous verrons les outils nécessaires à l'implantation d'une architecture de Von Neumann simple, celle du LC3 : codage des nombres, circuit logiques combinatoires et séquentiels... Nous éludons pour l'instant de nombreuses caractéristiques des processeurs actuels : utilisation des caches, parallélisme d'instructions, de données ou de tâches... Nous en dirons quelques mots vers la n du cours. Nicolas Louvet Vue d'ensemble de l'ordinateur. 22 janvier 2016 20 / 20