Introduction à l architecture ARM. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2016 Jean-François Lalonde

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

Architecture des ordinateurs

Rappels d architecture

ASR1 TD7 : Un microprocesseur RISC 16 bits

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

Compilation (INF 564)

Microprocesseur + Logiciel

Ordinateurs, Structure et Applications

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

Structure fonctionnelle d un SGBD

Conception de circuits numériques et architecture des ordinateurs

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

Programmation assembleur : aperçu

CUOMO PC Route d Oron Lausanne 021/

Architecture des Ordinateurs. Partie II:

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

Présentation du cours

IV- Comment fonctionne un ordinateur?

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

Structure d un programme

RoomMate Guide de l'utilisateur

Architecture des ordinateurs. Loïc Cuvillon. 20 novembre 2013

REALISATION d'un. ORDONNANCEUR à ECHEANCES

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Exigences système BauBit pro

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

Architecture des ordinateurs

Cours Informatique 1. Monsieur SADOUNI Salheddine

LOGICIEL DC4D MONITOR

Architecture des ordinateurs Introduction à l informatique

Fonctionnement et performance des processeurs

Préconisations Techniques & Installation de Gestimum ERP

Exécution des instructions machine

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Programmation parallèle et distribuée

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

Configuration automatique

Le langage C. Séance n 4

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

Cours 1 : La compilation

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

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

CM2 L architecture MIPS32

Aide à l installation et à la migration en HelloDoc 5.60

Jeu d instructions NIOS II

Programmation parallèle et distribuée

PIC : COURS ASSEMBLEUR

ProCod. Manuel d utilisation. Software de programmation pour codeurs absolus TWK modèles CRF et DAF CRF DF 08 / 10

Conversion d un entier. Méthode par soustraction

Histoire de l Informatique

Fonction Memory Viewer

TD 1 - Transmission en bande de passe

Licence Sciences et Technologies Examen janvier 2010

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

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

Conventions d écriture et outils de mise au point

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Introduction à l Informatique licence 1 ère année Notes de Cours

Qu est-ce qu un outil de travail collaboratif Google Drive?

Algorithmique et langages du Web

CAHIER DES CHARGES D IMPLANTATION

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

Cahier des Clauses Techniques Particulières

CHAPITRE 4 LA VALORISATION DES STOCKS COURS DE COMPTABILITE ANALYTIQUE SEMESTRE 2 DUT TC

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Documentation Technique du programme HYDRONDE_LN

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Retrospect. pour Windows. Nouveautés de Retrospect 9

Sélection du contrôleur

PARTAGER UN ANNUAIRE COLLECTIF DE SIGNETS AVEC DEL.ICIO.US

Représentation des Nombres

Architecture des ordinateurs

L intelligence intégrée et connectée au cœur de vos projets. Dossier de presse

Competence Management System (Système de Gestion de Compétences)

La technologie Java Card TM

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

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

Une société d assurance améliore son service à la clientèle et économise sur ses coûts grâce à un nouvel outil de services d applications pour le Web

QUESTION 1 {2 points}

Plan global Outils de développement et compilation. Ce que l on veut éviter. Plan. Git : gestion de code source et versionnement.

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

Les opérations binaires

Office Pro Plus. Procédures d installation. Direction des Systèmes d Information Grenoble Ecole de Management. Date de publication Juin 2014

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

Manuel d'installation de GESLAB Client Lourd

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Tutorial Terminal Server sous


Éléments d'architecture des ordinateurs

Premiers pas sur l ordinateur Support d initiation

domovea Portier tebis

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Transcription:

Introduction à l architecture ARM GIF-1001 Ordinateurs: Structure et Applications, Hiver 2016 Jean-François Lalonde

Petit historique Tandis qu Intel produit des microprocesseurs 8086 et 80286, des employés d une compagnie anglaise inspirés par les travaux de l heure travaillent à la conception d un ordinateur En 1985, la compagnie ACORN produit un premier processeur qui résulte de ces travaux: le Acorn RISC Machine (ARM) La complexité du ARM est réduite par choix et par faute de moyens et le jeu d instructions est simplifié. Alors que le 8086 gagne en popularité, ACORN et Apple collaborent pour fonder la compagnie ARM ltd en 1990 ARM et Intel feront évoluer leurs produits en parallèle dans des marchés différents

ARM ARM Holdings: développe des architectures de micro-processeurs et des jeux d instructions ne construit aucun micro-processeur comme tel! La compagnie licencie la technologie à d autres qui l implémentent à leur façon en hardware. clients: Apple, Nvidia, Samsung, Texas Instruments, etc Micro-processeurs ARM Supportent 32 et 64 bits L architecture la plus utilisée au monde 10 milliards produits en 2013 98% de téléphones portables contiennent au moins 1 processeur ARM

Processeurs ARM Plusieurs versions de processeurs, utilisées partout! ARM7TDMI(-S): Nintendo DS, Lego NXT ARM946E-S: Canon 5D Mark ii (caméra) ARM1176JZ(F)-S: Raspberry Pi Cortex-A9: Apple iphone 4S, ipad2 Cortex-A15: Nexus 10 Beaucoup d autres! http://en.wikipedia.org/wiki/list_of_applications_of_arm_cores

Architecture des ARM (32 bits) Dans le cours: ARM7TDMI (architecture 32 bits populaire) Registres de 32 bits Instructions de 32 bits Adresses de 32 bits Architecture RISC pour laquelle tout passe par des registres Accès à combien de mémoire? 2 32 octets (4GB) de mémoire

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0210c/cacbbajb.html

MAR 16 accessibles «à la fois» MDR pipeline?

Dans la série «Vous n avez rien à faire ce weekend?» http://www.megaprocessor.com

Pipelines Début des années 1990 Idée: séparer l architecture en deux unités séparées, pouvant être exécutées simultanément Comme dans un restaurant: Fetch-decode : les serveurs vont prendre les commandes des clients aux tables Execute : les cuisiniers préparent les repas

Pipeline ARM Le pipeline ARM est divisé en 3 Lecture Que contient PC? L adresse de la prochaine instruction à être lue Donc, lors de l exécution d une instruction, PC indique l adresse de deux instructions plus loin! Décodage Exécution

Organisation de la mémoire TP1 Taille des mots: 16 bits Chaque mot possède une adresse Taille du bus de données et des registres: 16 bits Taille d une instruction: 16 bits ARM Taille des mots: 8 bits Chaque mot possède une adresse Taille du bus de données et des registres: 32 bits Taille d une instruction: 32 bits

Mémoire, instructions, PC Combien d adresses mémoire a-t-on besoin pour stocker une instruction? chaque octet possède une adresse une instruction possède 4 octets (32 bits) donc une instruction nécessite 4 adresses mémoire 2 considérations importantes sur PC: après chaque exécution, de combien doit-on incrémenter PC? PC = PC + 4 qu est-ce que contient PC? PC = adresse de deux instructions plus loin que l instruction exécutée PC = adresse de l instruction exécutée + 8

Pipeline ARM Adresse Instruction exécution 0x0 MOV R0, #0x40 décodage lecture 0x4 0x8 0xC LDR R0, [R0] ADD R0, R1, R2 Donc, PC contient l adresse de l instruction courante (exécutée) + 8!

Big vs Little Endian comment stocker un mot de 32 bits (4 octets) à l adresse 0x0? exemple: 0x12345678? Adresse (A) A+0 A+1 A+2 A+3 0x0 78 56 34 12 0x4 ou Adresse (A) A+0 A+1 A+2 A+3 0x0 12 34 56 78 0x4

Big vs Little Endian La taille minimum d une donnée stockée en mémoire est habituellement 1 octet Les données ayant plusieurs octets peuvent être stockées de 2 façons: Little endian : l octet le moins significatif est placé à la plus petite adresse dans la mémoire (ex: Intel x86) Big endian : l octet le moins significatif est placé à la plus haute adresse dans la mémoire (ex: Motorola 68000)

Big vs Little Endian comment stocker un mot de 32 bits (4 octets) à l adresse 0x0? exemple: 0x12345678? Adresse (A) A+0 A+1 A+2 A+3 Little Endian 0x0 78 56 34 12 0x4 Adresse (A) A+0 A+1 A+2 A+3 Big Endian 0x0 12 34 56 78 0x4

Les registres 16 registres de 32 bits sont disponibles: R0 à R12: usage général R13 à R15: registres spéciaux Le Current Program Status Register (CPSR) est utilisé pour mémoriser les résultats d opération

Le registres spéciaux R13 à R15 R13: Pointeur de pile (Stack Pointer ou SP) R14: Registre de liens (Link Register ou LR) R15: Compteur de programme (Program Counter ou PC)

Le registre Program Counter R15 Le contenu du PC indique à quel endroit de la mémoire se trouve la prochaine exécution que le processeur doit lire PC identifie des octets tandis que la mémoire est composée de mots de 4 octets Il y a 2 32 octets qui peuvent être adressés donc 2 32 /4 = 2 30 mots de 4 octets à représenter avec le registre PC C est dire que les deux bits de poids le moins significatif du registre PC ne servent pas 2 considérations importantes: après chaque exécution, de combien doit-on incrémenter PC? PC = PC + 4 qu est-ce que contient PC? PC = adresse de deux instructions plus loin que l instruction exécutée PC = adresse de l instruction exécutée + 8

Piles ( stacks ) Structure de données très utilisée en informatique Inventée par Alan Turing (1946) Alan Turing Imitation Game

Piles ( stacks ) Structure de données LIFO LIFO = Last In, First Out Deux opérations principales: PUSH: rajoute un élément sur le dessus la pile POP: enlève un élément du dessus de la pile

Piles ( stacks ) Exemples? Notation Polonaise Inverse dans les calculatrices ( RPN ) Algorithme pour naviguer un labyrinthe Stack overflow!

Le Stack Pointer (R13) Par convention, on définit un bloc de mémoire qu on nomme pile (stack) La pile est utilisée pour sauvegarder temporairement des valeurs de travail exemples: variables locales, paramètres et valeurs de retour des fonctions Le Stack Pointer contient une adresse de la pile à laquelle on peut écrire ou lire une valeur Changer la valeur de SP directement peut être dangereux! On utilise plutôt des instructions dédiées: PUSH: rajouter un élément sur la pile POP: enlever un élément de la pile

Appel de fonction simple (sans paramètres) Mnémonique assembleur indique un appel de fonction (ex: B mafonction) mafonction: INST 1 ; première instruction ; liste d instructions ; return, indique que la fonction est terminée Il suffirait de modifier le PC pour le mettre à l adresse correspondant aux instructions de mafonction Cependant, que faire lorsque la fonction est terminée? Où doit-on revenir?

Le Link Register (R14) Un appel de fonction à l aide d instructions dédiées entraîne un changement de la valeur du Program Counter Un retour de fonction ne peut se faire que si PC reprend sa valeur d avant l appel de la fonction Par convention, le Link Register est utilisé pour sauvegarder l adresse de retour pendant l exécution de la fonction Mettre la valeur de LR dans PC commande un retour de fonction Utiliser LR à d autres fins ne peut que causer des problèmes si on n a pas le plein contrôle du programme L appel d une fonction par une fonction commande une gestion de LR qui se fait avec la pile par convention

Registres d usage général Gestion des nombres signés ou non à 8, 16 ou 32 bits Les calculs sont faits à 32 bits et la gestion des valeurs plus petites est logicielle 31 24 23 16 15 8 7 0 8 bits (byte) 16 bits (half-word ) 32 bits (word )

Registre de statut (CPSR) Un registre de statut décrit l état du processeur Sélection du mode Dépassement (overflow) Retenue (carry) Valeur nulle (zero) Thumb actif FIQ inactif IRQ inactif Nombre négatif (negative )

CPSR: Détection de conditions N: Détection de signe négatif 1 si résultat < 0, 0 autrement Z: Détection de zéro 1 si résultat = 0, 0 autrement Souvent utilisé pour détecter les égalités C: Détection de retenue ( carry) 1 si l opération a impliqué une retenue Ex. retenue d addition de nombres positifs V: Détection de dépassements (overflow) 1 si l opération a impliqué un dépassement Ex. dépassement signé lors d une addition

Condition spéciale: retenue («carry») Addition: lorsqu il y a une retenue Exemple 1: 10 + 8 =? avec nombres non-signés sur 4 bits: 1010 b + 1000 b = 1 0010 b Nous avons besoin d un 5e bit pour que le résultat soit valide, c est le bit carry! Exemple 2: -2 + 2 =? avec nombres signés sur 4 bits (complément-2): 1110b + 0010b = 1 0000 b Le résultat est valide sur 4 bits, mais un 5e bit est activé: il y a «carry»! Est-ce qu il y a débordement? Le bit de signe n est pas inversé, pas de débordement!