Chapitre 3 L’accès aux données.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Le Concept du programme enregistré
Architecture de machines Le microprocesseur
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Informatique Deug2 Sciences Eco S. Maabout 2004/2005.
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
auxiliaires ou mémoires de masse ou alors secondaire).
Plan du cours : 2ème Partie
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
merci Laurent JEANPIERRE
Assembleur
C.
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Mémoire & Processus Cours SE - SRC
Architecture Systèmes
Les structures de données
Introduction : Compilation et Traduction
TRANSMISSION DES DONNEES INFORMATIQUES
Architecture de machines La mémoire
Architecture de machines La mémoire
Système d’exploitation : Assembleur
Système d’exploitation : Assembleur
Chapitre 8 : L’architecture de base des ordinateurs
Architecture de base d’un ordinateur
Les piles Djamal Rebaïne.
LE MICROPROCESSEUR 8086/8088 Architecture externe du 8086
Les mémoires :. Mémoriser Enregistrer Conserver Restituer.
Architecture des Ordinateurs
LES SYSTEMES AUTOMATISES
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
GPA770: Microélectronique appliquée
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
Architecture et technologie des ordinateurs II
Chap. 2 - Structure d’un ordinateur
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Le langage C Rappel Pointeurs & Allocation de mémoire.
Cours Architecture des Systèmes Informatiques
Architecture d'un ordinateur
3-Présentation d’un µP simple
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Modélisation VHDL de.
Les Machines RAM.
LE TRAITEMENT NUMERIQUE
MJ / EME 2006Mémoires numériques Architecture d’un composant Exemple de contenu mémoire Lignes à accès bidirectionnel Quelques définitions Types de mémoires.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Tableur 1.Concept : Un tableur permet de manipuler des données, de le présenter, de les trier et d'effectuer automatiquement des calculs sur des nombres.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Cours Architecture des.
INFOR 101 Chapitre 5 Marianne Morris.
Progression - Quelques rappels
Un programme Algorithme permettant au processeur de s'alimenter:
Architecture et technologie des ordinateurs II
Patricia Renault UPMC 2005/2006
Les instructions de contrôle
Chapitre 4 La représentation des nombres.
Tour rapide d’un premier programme SPARC v9
Chapitre 9 Les caractères.
Architecture des ordinateurs
ALLOCATION DU CPU et GESTION DES TRAVAUX.
CHAPITRE 10 Les sous-programmes 1. Sous-programme Suite d’instructions appelée de manière répétitive Par un programme Par plusieurs programmes distincts.
CHAPITRE 8 Les booléens et les chaines de bits 1.
Memoire.
L3 Instrumentation Pétrolière S6
Architecture d’un ordinateur
Automne 2002 Martin Dubois Programmation système IFT Semaine 02 Retour sur la semaine 01 Les outils de développement logiciel Les outils que nous.
Les mémoires la préparation de: chaimaa hamdou.
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Architecture d'un automate programmable
Chapitre IV Architecture de VonNeumann. I/ Introduction John VonNeumann est un mathématicien d’origine Hongroise qui a participé au projet Manhattan.
Transcription de la présentation:

Chapitre 3 L’accès aux données

Les mémoires Toute information est représentée sous forme binaire Un prix, un texte légal, une image, du son, etc. Transformée en binaire, on l’appelle des données. Pour utiliser les données stockées en mémoire secondaire (disque, ruban, etc.) elles doivent passer par le bus C’est le goulot d’étranglement Afin d’assurer un accès rapide, on utilise plusieurs unités de stockage.

Les mémoires Registre Mémoire cache Mémoire centrale (RAM, ROM, VRAM) Plus rapide, plus couteux, plus petit Mémoire cache Jusqu’à dix fois plus rapides que la mémoire principale, plusieurs niveaux Mémoire centrale (RAM, ROM, VRAM) Plus volatile Disque et ruban (disque/SSD/CD, DVD, …) Permet de garder des données sur une plus longue période Coût très faible, très grande capacité, très lent Dois transiter par la mémoire centrale pour être utilisée

Les données Chaque cellule de mémoire peut contenir une donnée binaire Entier Nombre virgule flottante Caractères Bits et chaînes de bits Adresses L’interprétation est laissée au programme qui l’utilise.

Les adresses Chaque cellule de mémoire est désignée par une adresse. Entier binaire de longueur « n »  2 𝑛 cellules  0 à 2 𝑛 −1 Dans le code d’un programme Adresse numérique Adresse symbolique Adresse effective Obtenue à partir de transformations sur une adresse initiale Adresse indexée Adresse indirecte Adresse relative Mémoire virtuelle  Adresse virtuelle

Unité de gestion mémoire Vie d’un programme Création (Éditeur de texte) Adresses numériques (rares), Adresses symboliques, Modes d’adressage Traduction (Assembleur) Programme source Adresses numériques, Adresses symboliques (rares), Modes d’adressage Édition des liens (Éditeur de liens) Code Objet Librairies statiques Adresses numériques, Modes d’adressage Chargement (Chargeur) Module chargeable Adresses numériques, Modes d’adressage Exécution (Processeur) Processus Mode d’adressage(Adresses numériques) = Adresse effective Unité de gestion mémoire Physique Virtuelle Physique

Modification d’une adresse donnée 𝑎+𝑙 l a Module chargeable Code Objet donnée a donnée 𝑎+𝑙+𝑐 l a c Mémoire

Mode d’adressage Adressage immédiat L’opérande est dans l’instruction Utilisé lorsque la valeur de l’opérande est constante Valeur généralement petite (RISC) Code Op Opérande

Mode d’adressage Adressage par registre L’opérande est dans un registre Pratique lorsqu’un même opérande est utilisé constamment par une suite d’instruction L’instruction contient le numéro du registre Opérande Registres Code Op Numéro de registre

Mode d’adressage Adressage direct L’opérande est en mémoire L’adressage est limité dans une architecture RISC L’instruction contient l’adresse de l’opérande Opérande Mémoire Code Op Adresse

Mode d’adressage Adressage indexé L’opérande est en mémoire L’instruction contient le repère (adresse indexée) et un index Le repère et l’index peuvent être dans des registres, l’instruction contient alors les numéros de registre Mémoire Opérande Code Op Adresse indexée Index +

Mode d’adressage Adressage relatif L’opérande est en mémoire Le repère est variable (contenu du PC) Le déplacement est contenu dans l’instruction C’est l’assembleur qui s’occupe de calculer le déplacement Très pratique  Indépendant de l’emplacement du programme en mémoire Instruction Opérande Mémoire Code Op Déplacement Déplacement PC +

Mode d’adressage Adressage base et déplacement L’opérande est en mémoire Le repère (base) est dans un registre L’instruction donne le numéro de registre Le déplacement est contenu dans l’instruction Mémoire Opérande Adresse de base Code Op Registre Déplacement Adresse de base Registres Déplacement +

Mode d’adressage Adressage immédiat différé Équivalent au mode direct Différé  Au lieu d’avoir l’opérande, on a l’adresse de l’opérande L’opérande est donc toujours en mémoire Opérande Mémoire Code Op Adresse

Mode d’adressage Adressage par registre différé Le registre contient l’adresse de l’opérande Opérande Mémoire Code Op Registre Adresse Registres

Mode d’adressage Adressage indirect Adresse qui contient une adresse Opérande Mémoire Code Op Adresse

Mode d’adressage Adressage indexé différé Code Op Adresse indexée Mémoire Adresse indexée Adresse Opérande Code Op Adresse indexée Index Index +

Mode d’adressage Adressage relatif différé Code Op Déplacement PC + Instruction Adresse Mémoire Opérande Code Op Déplacement Déplacement PC +

Mode d’adressage Adressage auto-incrément L’instruction contient un numéro de registre Le registre contient l’adresse de l’opérande À la fin de l’exécution, la valeur de l’adresse est incrémentée par 𝑖 Opérande Mémoire Code Op Registre Adresse Registres Adresse effective +𝑖

Mode d’adressage Adressage auto-décrément On décrémente l’adresse en premier On peut aussi faire les deux derniers modes en différé Opérande Mémoire Code Op Registre Adresse Registres −𝑖 Adresse effective

Mode d’adressage Adressage indirect à 𝑛 niveaux L’adresse d’une adresse, d’une adresse… Adresse Opérande Mémoire Code Op Adresse

Particularités du SPARC 3 modes d’adressage pour accéder aux données Mode immédiat Mode registre Mode indexé Adresse indexée est dans un registre L’index est dans un autre registre, ou dans l’instruction Mode relatif Utilisé par les branchements Aussi pour les appels de sous-programmes

Particularités du SPARC Les instructions sont encodées sur 32 bits Les registres peuvent contenir des valeurs 64 bits Les adresses font 64 bits Comment écrire une adresse de 64 bits dans une instruction longue de 32 bits?

Chargement d’une adresse L’instruction sethi charge la valeur d’une expression dans les bits 10 à 31 d’un registre Pour mettre une valeur de 64 bits dans un registre, il faut : 6 instructions! sethi %hh(n), reg’ ! %hh conserve les bits 42 à 63 or reg’, %hm(n), reg’ ! %hm conserve les bits 32 à 41 sllx reg’, 32, reg’ %lm(n), reg ! %lm conserve les bits 10 à 31 reg, reg’, reg reg, %lo(n), reg ! %lo conserve les bits 0 à 9

Chargement d’une adresse Exemple : 0xBE400F26FA2 sethi %hh(0xBE400F26FA2), %l1 ! %hh(n) = 0000000000000000000010 or %hm(0xBE400F26FA2), %l1 ! %hm(n) = 1111100100 sllx %l1, 32, %l1 64 32 %l1 1 31 64 32 %l1 1 31 1 64 32 %l1 31

Chargement d’une adresse Exemple : 0xBE400F26FA2 sethi %lm(0xBE400F26FA2), %l0 ! %lm(n) = 0000000011110010011011 or %l0, %l1, %l0 or %l0, %lo(0xBE400F26FA2), %l0 ! %lo(n) = 1110100010 64 32 %l0 1 31 1 64 32 %l0 1 31 1 64 32 %l0 1 31

Chargement d’une adresse L’instruction setx remplace les 6 instructions Ne jamais la mettre dans la fente de temporisation! setx n, %l7, %l0 Les données contenues dans le registre temporaire sont perdues après un setx Adresse symbolique Registre temporaire Registre destination

Instructions de chargement ldub Charge un octet non signé dans un registre. Mets les 56 bits de poids fort à 0 ldsb Charge un octet signé dans un registre. Si la valeur est positive, met des 0 dans les 56 bits de poids fort, sinon, met 1. lduh Charge un demi-mot non signé dans un registre. Mets les 48 bits de poids fort à 0. ldsh Charge un demi-mot signé dans un registre. Si la valeur est positive, met des 0 dans les 48 bits de poids fort, sinon, met 1. lduw Charge un mot non signé dans un registre. Mets les 32 bits de poids fort à 0. ldsw Charge un mot signé dans un registre. Si la valeur est positive, met des 0 dans les 32 bits de poids fort, sinon, met 1. ldx Charge un mot étendu dans un registre.

Instructions de stockage stb Copie les 8 bits de poids faible du registre dans la mémoire sth Copie les 16 bits de poids faible du registre dans la mémoire stw Copie les 32 bits de poids faible du registre dans la mémoire stx Copie les 64 bits du registre dans la mémoire

Instructions synthétiques Remise à zéro d’une cellule mémoire Transfert d’un registre vers un registre Remise à zéro d’un registre clrb [%l0] == stb %g0, [%l0] clrh [%l0] sth %g0, [%l0] clr [%l0] stw %g0, [%l0] clrd [%l0] stx %g0, [%l0] mov %l1, %l4 == or %g0, %l1, %l4 or %l1, %g0, %l4 clr %l1 == mov %g0, %l1 or %g0, %g0, %l1

Instructions synthétiques Mettre une valeur dans un registre Si la valeur est plus petite que 2 13 Si la valeur est plus grande que 2 13 mov 518, %l6 == or %g0, 518, %l6 setx 234567890, %l7, %l0 == suite de 6 instructions