Logo ENSEIRB-MATMECA
  • Accueil
  • À propos
  • Outils
  • Contributeurs
  • Pages
  • Code
  • GitHub
  • Dark Theme
    Light Theme
Logo Inverted Logo
  • Pages
  • Outils
  • Processeur
    • 0 - Introduction
    • 1 - Simulateur RISC-V
    • 2 - Exécution
    • 3 - ISA RISC-V
    • 4 - Pipeline
    • 5 - Branchement
    • 6 - Mémoire cache
  • Plateforme CALF
    • Système
    • Utilisation
    • Processeur
    • Mémoire
  • Sécurité matérielle
    • Introduction
    • FPGA
    • Caches
  • STM32
    • IDE
    • GPIO
    • Interruptions
    • Timer
    • UART
Hero Image
Architecture des processeurs 0: Introduction

Les processeurs modernes sont des systèmes complexes, résultat de plusieurs décennies de travaux. Les plus avancés intègrent de nombreux mécanismes permettant de répondre aux besoins, notamment en performances, de multiples applications. Organisation du cours 0 - Introduction 1 - Simulation de microarchitectures 2 - Exécution d'un programme 3 - ISA RISC-V 4 - Pipeline 5 - Prédiction de branchement 6 - Mémoire cache Simulation

    mercredi 11 février 2026 Lire
    Hero Image
    Architecture des processeurs 1: Simulateur de microarchitectures RISC-V

    Lors de l’étude du fonctionnement des processseurs, il peut être utile de voir cycle par cycle comment évolue une exécution afin de comprendre l’impact des différents mécanismes. Cela s’applique aussi bien pour l’étude de la microarchitecture des processeurs, que pour d’autres expérimentations comme par exemple pour de la sécurité matérielle. Ainsi, un simulateur de microarchitectures est mis à disposition sur GitLab: https://gitlab.com/escou64-emmk/riscv-sim.git. Il permet de simuler l’exécution de différents programmes sur des processeurs implémentant le jeu d’instructions RISC-V. Les différents modèles de simulation sont en fait des exécutables générés directement à partir de description RTL de processeurs.

      mercredi 11 février 2026 Lire
      Hero Image
      Architecture des processeurs 2: Exécution d'un programme

      Dans un système informatique, un programme ou un logiciel est une suite d’opérations plus ou moins simples décrivant le fonctionnement attendu. Ces opérations sont transmises sous la forme d’instructions que le processeur pourra interpréter avant d’effectuer les tâches correspondantes. Quelque soit le jeu d’instructions ou le type de processeur, ce fonctionnement reste toujours le même. Sur cette page, nous allons voir comment un programme est exécuté sur un processeur et certains des éléments nécessaires à la compilation. Pour cela, l’objectif sera également de prendre en main l’environnement de simulation de processeurs RISC-V. L’ensemble des expérimentations, sur cette page et les suivantes, seront réalisés à partir de plusieurs modèles de microarchitectures simulées.

        mercredi 11 février 2026 Lire
        Hero Image
        Architecture des processeurs 3: ISA RISC-V

        Avant même de commencer à commencer à concevoir un processeur, il est nécessaire de définir l’architecture de jeu d’instructions (ISA) qu’il implémentera. Cet élément est essentiel afin de définir comment les parties matérielles et logicielles du système pourront intérragir. C’est à ce niveau que sont définies les instructions (et doc opérations) disponibles, la taille des données manipulées, le nombre de registres etc. Différents types d’architectures de jeux d’instructions existent, avec leurs outils et écosystèmes respectifs.

          mercredi 11 février 2026 Lire
          Hero Image
          Architecture des processeurs 4: Pipeline

          Les capacités de calcul (ou performances) d’un processeur sont généralement la principale caractéristique à prendre en compte lors de la conception. Comme pour tout système numérique, l’une des solutions pour augmenter le débit de calculs réalisés est d’augmenter la fréquence d’horloge. Pour cela, un mécanisme essentiel est alors implémenté : le pipeline. Sur cette page, nous allons étudier le fonctionnement d’un pipeline dans un processeur. Notamment, nous verrons comment il impacte l’exécution des programmes. Également, nous étudierons les différents aléas susceptibles de pénaliser le débit final.

            mardi 13 janvier 2026 Lire
            Hero Image
            Architecture des processeurs 5: Prédiction de branchement

            Environnement de simulation Pour effectuer les différentes simulations de cette page, ouvrez l’ensemble du répertoire riscv-sim avec Visual Studio Code. Dans le terminal de l’IDE, configurez l’environnement du simulateur puis placez-vous dans le répertoire sw/uarch/br.

              mardi 13 janvier 2026 Lire
              Hero Image
              Architecture des processeurs 6: Mémoire cache

              Le processeur ne correspond qu’à la partie opérationnelle du système. Ainsi, pour avoir un système pleinement fonctionnel, il est également nécessaire de l’associer à une ou plusieurs mémoires afin de stocker les différentes instructions et données. Généralement, ces composants sont bien plus lents que le processeur lui-même, ce qui peut impacter les performances de l’ensemble du système. Sur cette page, nous allon étudier le fonctionnement des mémoires caches, des mémoires intermédiaires permettant de réduire les limitations de la mémoire principale. À l’aide de simulations, nous verrons comment les temps d’accès peuvent varier selon les opérations effectuées. Nous verrons également l’impact du placement des données en mémoire, par exemple lors de la manipulation de tableaux ou matrices.

                mardi 13 janvier 2026 Lire
                Hero Image
                Programmation de microcontrôleurs STM32: GPIO

                Cette page vise à présenter une première utilisation des GPIO sur un microcontrôleur STM32. À la suite de cette page, un développeur logiciel doit être capable: De trouver les informations nécessaires dans une datasheet pour l’utilisation des GPIO, De programmer les différents registres pour différentes utilisations des GPIO (LED, bouton-poussoir etc.) Version des outils Les différentes étapes utilisent la version v1.12.0 du logiciel STM32CubeIDE. Certaines variations au niveau des captures d’écrans peuvent apparaître si vous utilisez des versions différentes. De même, la carte utilisée est la Nucleo-F446RE. Clignotement d’une LED Pour la première partie, on se propose de concevoir un programme faisant clignoter la LED d’une carte. Notamment, la carte Nucleo-F446RE dispose d’une LED directement intégrée sur la carte. Elle est connectée sur la broche (pin) 5 du port GPIO A.

                  mardi 6 janvier 2026 Lire
                  Hero Image
                  Programmation de microcontrôleurs STM32: Interruptions

                  Cette page vise à présenter une première utilisation des interruptions sur un microcontrôleur STM32. À la suite de cette page, un développeur logiciel doit être capable: De trouver les informations nécessaires dans une datasheet pour l’utilisation des interruptions, De programmer les différents registres pour l’utilisation d’une interruption, De comprendre le fonctionnement pour différentes sources d’interruption. Version des outils Les différentes étapes utilisent la version v1.12.0 du logiciel STM32CubeIDE. Certaines variations au niveau des captures d’écrans peuvent apparaître si vous utilisez des versions différentes. De même, la carte utilisée est la Nucleo-F446RE. Détection d’un évènement Précédemment, nous avons utilisé un bouton poussoir pour déclencher l’allumage d’une LED. La détection de l’état du bouton était alors faite de manière scrutative: le programme vérifiait régulièrement l’état du registre correspondant. Bien que fonctionnel, ce type de fonctionnement est peu efficace: le microcontrôleur exécute en boucle des opérations pour détecter le changement d’état. Ainsi, il ne peut exécuter aucune autre tâche utile pendant ce temps d’attente, en plus de continuer à consommer en réalisant les calculs.

                    mardi 6 janvier 2026 Lire
                    Hero Image
                    Programmation de microcontrôleurs STM32: Timer

                    Cette page vise à présenter une première utilisation des interruptions sur un microcontrôleur STM32. À la suite de cette page, un développeur logiciel doit être capable: De trouver les informations nécessaires dans une datasheet pour l’utilisation des timers, De programmer les différents registres pour différentes utilisations des timers (LED, bouton-poussoir etc.), D’adapter le fonctionnement d’un timer à l’utilisation d’un capteur externe. Version des outils Les différentes étapes utilisent la version v1.12.0 du logiciel STM32CubeIDE. Certaines variations au niveau des captures d’écrans peuvent apparaître si vous utilisez des versions différentes. De même, la carte utilisée est la Nucleo-F446RE. Détection d’un obstacle Dans cette partie, l’objectif va être de concevoir un système de détection d’obstacle. Le fonctionnement recherché sera le suivant: faire clignoter une LED de plus en plus rapidement selon la distance d’un obstacle. Pour cela, nous allons décomposer le problème en trois sous-arties:

                      mardi 6 janvier 2026 Lire
                      Hero Image
                      Programmation de microcontrôleurs STM32: UART

                      Cette page vise à présenter une première utilisation des interruptions sur un microcontrôleur STM32. À la suite de cette page, un développeur logiciel doit être capable: De trouver les informations nécessaires dans une datasheet pour l’utilisation du protocole UART, De programmer les différents registres, D’envoyer des informations octet par octet vers un ordinateur. Version des outils Les différentes étapes utilisent la version v1.12.0 du logiciel STM32CubeIDE. Certaines variations au niveau des captures d’écrans peuvent apparaître si vous utilisez des versions différentes. De même, la carte utilisée est la Nucleo-F446RE. Transmission/Réception UART Lors de la conception d’un système à base de microcontrôleur, il est souvent utile de pouvoir échanger des informations avec un autre système. Par exemple, c’est le cas lorsque l’on souhaite envoyer des données vers un ordinateur responsable du traitement ou du contrôle. Un protocole de transmission permet alors de mettre en place une interface commune pour l’échange de ces données. Selon les applications, il existe de multiples types de protocoles. Dans le cadre de cet exercice, nous allons nous intéresser au protocole UART.

                        mardi 6 janvier 2026 Lire
                        Hero Image
                        Programmation de microcontrôleurs STM32: Utilisation de l'IDE

                        Cette page vise à présenter une première utilisation du logiciel STM32CubeIDE pour la programmation de microcontrôleurs STM32. En la suivant pas-à-pas, un développeur logiciel doit être capable: de créer un projet, de savoir où ajouter son programme (simple) en langage C, de connaître quelles informations sont mises à disposition par l’outil pour le débogage et comprendre à quoi elles servent. Version des outils Les différentes étapes utilisent la version v1.12.0 du logiciel STM32CubeIDE. Certaines variations au niveau des captures d’écrans peuvent apparaître si vous utilisez des versions différentes. De même, la carte utilisée est la Nucleo-F446RE. Créer un projet Pour créer un projet sur STM32CubeIDE, différentes étapes sont nécessaires. Celles-ci sont présentées ci-dessous.

                          mardi 6 janvier 2026 Lire
                          • ««
                          • «
                          • 1
                          • 2
                          • »
                          • »»
                          Navigation
                          • À propos
                          • Outils
                          • Contributeurs
                          Contactez moi :
                          • mathieu.escouteloup@enseirb-matmeca.fr
                          • mescoutelou

                          Restez à jour par e-mail


                          En renseignant votre adresse e-mail, vous acceptez de recevoir la newsletter de ce site.

                          Toha Theme Logo Toha
                          © 2025 Copyright.
                          Alimenté par Hugo Logo