Conception de circuits numériques et architecture des ordinateurs

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

Conception de circuits numériques et architecture des ordinateurs

Système binaire. Algèbre booléenne

Logiciel de Base. I. Représentation des nombres

Informatique Générale

Algèbre binaire et Circuits logiques ( )

Cours Informatique 1. Monsieur SADOUNI Salheddine

IFT1215 Introduction aux systèmes informatiques

Représentation des Nombres

Une version javascript sera disponible directement dans le cours prochainement.

Conversion d un entier. Méthode par soustraction

Organisation des Ordinateurs

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Représentation d un entier en base b

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

RESUME DE COURS ET CAHIER D'EXERCICES

Conception de circuits numériques et architecture des ordinateurs

Concevoir son microprocesseur

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

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

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

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Architecture de l ordinateur

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Rappels Entrées -Sorties

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Axiomatique de N, construction de Z

Electronique Numérique

Jeux de caracte res et encodage (par Michel Michaud 2014)

Chapitre 10 Arithmétique réelle

Licence Sciences, Technologies, Santé Mention Informatique Codage de l'information

Les opérations binaires

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Le langage VHDL. Eduardo Sanchez EPFL

Vers l'ordinateur quantique

I- Définitions des signaux.


V- Manipulations de nombres en binaire

Numérisation du signal

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Chapitre 1 I:\ Soyez courageux!

Cours Premier semestre

MPI Activité.10 : Logique binaire Portes logiques

Manipulations du laboratoire

Le multiplexage. Sommaire

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Microprocesseur + Logiciel

T. BLOTIN Lycée Paul-Eluard SAINT-DENIS

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

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

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

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


Architecture matérielle des systèmes informatiques

Programmation Structurée en Langage C

Algorithme. Table des matières

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

QUESTION 1 {2 points}

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

Mathématiques appliquées à l informatique

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

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

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

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

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

Le poids et la taille des fichiers

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Architecture des ordinateurs. Robin FERCOQ

Livret - 1. Informatique : le matériel. --- Ordinateur, circuits, codage, système, réseau. Cours informatique programmation.

IFT2880 Organisation des ordinateurs et systèmes

Programmation en langage C

Introduction à l'informatique. Vincent Boyer et Jean Méhat

2 Comment fonctionne un ordinateur, dans les grandes lignes

Architecture des ordinateurs Introduction à l informatique

SIN-FPGA DESCRIPTION PAR SCHEMA

TD Architecture des ordinateurs. Jean-Luc Dekeyser

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

I.1- DÉFINITIONS ET NOTIONS DE BASE

Rappels d architecture

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

Partie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN)

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

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

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

UE C avancé cours 1: introduction et révisions

TP 1. Prise en main du langage Python

Programmation assembleur : aperçu

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Programmation en Java IUT GEII (MC-II1) 1

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

Le codage informatique

Transcription:

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 booléenne, portes logiques, circuits combinatoires Circuits séquentiels Construction circuits complexes Micro-architecture et fonctionnement des mémoires Machines à état Synthèse de circuits PC/PO Optimisation de circuits PC/PO Interprétation d'instructions Interprétation d'instructions Interprétation d'instructions Introduction aux caches 2 / 32

Intérêt Intérêt Pour des raisons technologiques, les ordinateurs utilisent la présence ou de l'absence de courant électrique pour travailler Les données sont donc codées en base 2, et l'ensemble des opérations que l'on peut eectuer se fait par conséquence en base 2 Les programmes informatiques se trouvent donc, par un processus complexe, ramenés à une suite d'opérations binaires sur des données binaires 3 / 32

Plan Plan détaillé du cours d'aujourd'hui 1 Interprétation des vecteurs de bits 2 Notations binaire usuelles 3 Rappels sur les booléens 4 Représentations des fonctions 4 / 32

Interprétation des vecteurs de bits Plan 1 Interprétation des vecteurs de bits 2 Notations binaire usuelles 3 Rappels sur les booléens 4 Représentations des fonctions 5 / 32

Interprétation des vecteurs de bits Représentation des données Ordinateur circuit électronique numérique Données manipulées informations électriques discrètes types de données variés nombres caractères achables agrégats taille des données variée chaînes de caractères entiers bornés... Tout est aaire d'interprétation! 6 / 32

Interprétation des vecteurs de bits Vecteur de bits Élément de base : le bit {0, 1}, (binary digit) Exemple :01001101111100010001010001111111 Nombre de bits ni l est le nombre de bits, en pratique l = 8 n n est le nombre d'octets (bytes), en pratique n = 2 p En programmation (machine 32 ou 64 bits ) : n = 1 est appelé un octet ou byte n = 2 est appelé un short n = 4 est appelé un entier ou int, ou un oat s'il représente un nombre pseudo-réel n = 8 est appelé un long long, ou un double s'il représente un nombre pseudo-réel 7 / 32

Interprétation des vecteurs de bits Entiers naturels (Unsigned integers) Soit un vecteur x de n bits : (x n 1, x n 2,..., x 1, x 0 ) avec x i {0, 1} Valeur de x interprété comme entier naturel : x = 0 i=n 1 x i 2 i Intervalle des 2 n valeurs représentables : Exemples au tableau 0 x 2 n 1 8 / 32

Interprétation des vecteurs de bits Conversion binaire/décimale des entiers naturels base 2 base 10 : application de la formule base 10 base 2 : 0 x = x i 2 i i=n 1 x = v 0 2 + x 0 v 0 = v 1 2 + x 1 v i = v i+1 2 + x i+1 Arrêt lorsque v j < 2 et x = (v j, x j,..., x 1, x 0 ) Exemples au tableau 9 / 32

Interprétation des vecteurs de bits Entiers relatifs (Signed integers) Principalement 2 possibilités pour représenter x : signe et grandeur x n 1 = { 0 si x 0, 1 si x < 0. et (xn 2, x n 3,..., x 1, x 0 ) = x Simple à comprendre Mais : deux 0 et implantation arithmétique non-signés complément à 2 (ou plus précisément à 2 n ) Moins simple à comprendre Mais : numération et implantation arithmétique inchangée 10 / 32

Interprétation des vecteurs de bits Entiers relatifs (Signed integers) Notation dite en complément à 2 Utilisée dans 99,9% des circuits intégrés Soit un vecteur x de n bits : (x n 1, x n 2,..., x 1, x 0 ) avec x i {0, 1} Valeur de x interprété comme entier relatif : Exemples au tableau x = x n 1 2 n 1 + 0 i=n 2 x i 2 i 11 / 32

Interprétation des vecteurs de bits Entiers relatifs Représentation de x a partir de la représentation de x = (x n 1, x n 2,..., x 1, x 0 )? { 1 si a = 0, Dénition du complément de a {0, 1} : a = 0 si a = 1. x = (x n 1, x n 2,..., x 1, x 0 ) + 1 x n 1 est appelé le bit de signe (sign bit) Intervalle des 2 n valeurs représentables : 2 n 1 x 2 n 1 1 C'est la représentation unique utilisée dans ce cours! 12 / 32

Interprétation des vecteurs de bits Extension de signe Aectation d'un vecteur de taille n dans un vecteur de taille m? n > m troncature, perte irrémédiable des poids forts n < m exige une extension de signe Soit (x n 1, x n 2,..., x 1, x 0 ) à écrire comme (y m 1, y m 2,..., y n, y n 1, y n 2,..., y 1, y 0 ) La valeur est conservée avec : y m 1 = x n 1, y m 2 = x n 1,..., y n = x n 1, y n 1 = x n 1, y n 2 = x n 2,..., y 1 = x 1, y 0 = x 0 Preuve, non totalement triviale, basée sur le lemme 0 i=l 1 2 i = 2 l 1 démontrable par récurrence 13 / 32

Interprétation des vecteurs de bits Nombres à virgule Partie entière sur n bits, partie fractionnaire sur m bits : x n 1 x n 2... x 1 x 0, y 1 y 2... y m 1 y m Interprété comme : Exemple : 0 m x = x i 2 i + y i 2 i i=n 1 i=1 110, 011 = 1 2 2 + 1 2 1 + 0 2 0 + 0 2 1 + 1 2 2 + 1 2 3 = 4 + 2 + 0, 25 + 0, 125 = 6, 375 Nombreux nombres non représentables! Virgule xe ou ottante Norme IEEE 754 dénie la représentation des ottants 14 / 32

Interprétation des vecteurs de bits Autres interprétations Champs de bits, indicateurs, booléens,... Caractères/symboles : encodage ASCII ou ISO ou UTF-8. Utile pour acher des messages Flux de données encodées (bzip,... ), musique (mp3, ogg,... ), vidéo (mpeg2, h264,... ) Données cryptées Instructions : forme nale des programmes... Tout ceci nécessite l'interprétation des vecteurs de bits! 15 / 32

Notations binaire usuelles Plan 1 Interprétation des vecteurs de bits 2 Notations binaire usuelles 3 Rappels sur les booléens 4 Représentations des fonctions 16 / 32

Notations binaire usuelles Hexadécimal et octal Lire du binaire est une misère : l'hexadécimal (base 16) est la règle L'Octal (base 8) est parfois utilisé 1 binaire hexa octal binaire hexa octal 0000 0 0 1000 8 10 0001 1 1 1001 9 11 0010 2 2 1010 A 12 0011 3 3 1011 B 13 0100 4 4 1100 C 14 0101 5 5 1101 D 15 0110 6 6 1110 E 16 0111 7 7 1111 F 17 notation du langage C : notation du langage VHDL : notation des langages ADA et VHDL : 0x..., nombre hexadécimal 0..., nombre octal X"...", nombre hexadécimal O"...", nombre octal B"...", nombre binaire n#...#, nombre en base n 1. La conversion est triviale, car 8 et 16 sont des puissances entières de 2 17 / 32

Notations binaire usuelles Kilo, Mega, Giga - octets En matériel, 1K 10 3 = 1000 mais 1K = 2 10 = 1024! Ainsi : Symbole valeur héxa décimale 1K 2 10 0x400 1024 1M 2 20 0x100000 1048576 1G 2 30 0x40000000 1073741824 Nouvelle unité : Kibibyte (KiB) introduite en 2000 2 De même, les log sont des log 2 Par extension, c'est le cas très souvent en informatique! 2. Les KiB, MiB et GiB sont très peu usitées en pratique. 18 / 32

Rappels sur les booléens Plan 1 Interprétation des vecteurs de bits 2 Notations binaire usuelles 3 Rappels sur les booléens 4 Représentations des fonctions 19 / 32

Rappels sur les booléens Rappels sur les booléens B = {0, 1} : ensemble des booléens x B : variable booléenne B doté d'un opérateur unaire et de 2 opérateurs binaires Notations utilisées pour le cours : non, unaire not x = x et, binaire x and y = x y ou, binaire x or y = x + y Interprétation des valeurs : 0 = false et 1 = true Interprétation des fonctions : intuitivement suivant leur nom 20 / 32

Rappels sur les booléens Axiomes associativité a + (b + c) = (a + b) + c / a (b c) = (a b) c commutativité a + b = b + a / a b = b a distributivité a + (b c) = (a + b) (a + c) / a (b + c) = (a b) + (a c) absorption a + (a b) = a / a (a + b) = a complementation a + a = 1 / a a = 0 21 / 32

Rappels sur les booléens Quelques propriétés idempotence a + a = a / a a = a éléments neutres a + 0 = a / a 1 = a a + 1 = 1 / a 0 = 0 0 et 1 sont complementaires 0 = 1 / 1 = 0 involution a = a 22 / 32

Rappels sur les booléens Quelques propriétés, suite Autres propriétés : Lois de De Morgan a + b = a b / a b = a + b n a i=1 i = n a i=1 i / n a i=1 i = n a i=1 i Principe de dualité : une loi valide peut être transformée en son dual en échangeant 0 avec 1 et + avec 23 / 32

Représentations des fonctions Plan 1 Interprétation des vecteurs de bits 2 Notations binaire usuelles 3 Rappels sur les booléens 4 Représentations des fonctions 24 / 32

Représentations des fonctions Tables de vérité Représentation sous forme de tables de vérité Liste de tous les cas possibles n variables impliquent 2 n valeurs possibles x y x x y x + y x y x y x + y x y not x x and y x or y x xor y x nand y x nor y x xnor y 0 0 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 1 Note : il y a 2 2n fonctions booléennes de n variables 25 / 32

Représentations des fonctions Interprétation Somme de produits : 1 en sortie obtenu par produit des littéraux fonction obtenue par somme de ces produits Produit de sommes : 0 en sortie obtenu par somme des littéraux complémentés fonction obtenue par produit de ces sommes x y f sop pos 0 0 0 x + y 0 1 1 x y 1 0 0 x + y 1 1 0 x + y d'où f = x y = (x + y)(x + y)(x + y ) f <= not(x) and y f <= (x or y) and ((not(x) or y) and (not(x) and not(y))) 26 / 32

Représentations des fonctions Schémas utilisés en circuiterie numérique Portes logiques (logic gate) : représentation schématique d'un opérateur booléen Une porte possède : des connecteurs d'entrée i j, 0 j n 1 un connecteur de sortie o un comportement o = f (i n 1,..., i 0 ) Syntaxe VHDL : Dénition ENTITY gate IS PORT (i0, i1,... : IN STD_LOGIC; o : OUT STD_LOGIC) END gate; ARCHITECTURE behavioral OF gate IS BEGIN o <= i0 op i1 op... ; END behavioral; Instanciation mygate : gate PORT MAP ( i0 => a, i1 => b,..., o => s ); 27 / 32

Représentations des fonctions Portes de base Portes usuelles à une ou deux entrées i i 0 i 1 i 0 + i 1 i 0 i 1 o <= not i o <= i0 and i1 o <= i0 or i1 o <= i0 xor i1 i o i 0 o i 0 o i 1 i 1 i 0 i 1 o i 0 i 1 i 0 + i 1 i 0 i 1 o <= i0 nand i1 o <= i0 nor i1 o <= i0 xnor i1 i 0 i 0 i 0 o o o i 1 i 1 i 1 Portes d arité supérieure à 2 : exemples au tableau 28 / 32

Représentations des fonctions Aspects temporels Porte : dispositif électronique (transistors, R, C ) Conséquence : un calcul logique prend du temps! Temps t pe(i,o) (propagation) et t te(o) (transition) e front (egde) de la sortie : HL, LH o sortie dépendante de l'entrée i si t p pris entre Vdd de i et Vdd de o si t 2 2 p pris entre 0, 9 Vdd et 0, 1 Vdd si t t Pour une technologie 45nm, charge 4 inverseurs i 0 t phl (i 0,o) 46.4ps t tlh (o) 12.4ps t plh (i 0,o) 52.3ps t thl (o) 9.1ps i 1 o t plh (i 1,o) t phl (i 1,o) 51.5ps 39.6ps 29 / 32

Représentations des fonctions Circuit combinatoire Circuit combinatoire (combinational circuit) : représentation schématique d'un ensemble de portes ou circuits interconnectés Un circuit combinatoire possède : des connecteurs d'entrée i j, 0 j n 1 des connecteurs de sortie o k, 0 k m 1 un comportement (o m 1,..., o 0 ) = f (i n 1,..., i 0 ) 30 / 32

Représentations des fonctions Circuit combinatoire Interconnexions légales : entrée primaire sur entrée de porte sortie primaire sur sortie de porte sortie de porte sur entrées de portes 2 sorties ensemble court-circuit! 31 / 32

Représentations des fonctions Schémas utilisés en circuiterie numérique Réalisation en portes de l'équation : Analyse du circuit : t = (x + y).z i 0 i 1 i 2 i 3 o0 <= not a; o 0 o1 <= c xnor d; b <= i2 nand i3; c <= a or b; a <= i0 xor i1; o 1 d <= a and b; 32 / 32