<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Architecture des processeurs on ENSEIRB-MATMECA</title><link>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/</link><description>Recent content in Architecture des processeurs on ENSEIRB-MATMECA</description><generator>Hugo -- gohugo.io</generator><language>fr</language><lastBuildDate>Fri, 01 Sep 2023 00:00:00 +0200</lastBuildDate><atom:link href="https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/index.xml" rel="self" type="application/rss+xml"/><item><title>Architecture des processeurs 0: Introduction</title><link>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/0_intro/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0200</pubDate><guid>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/0_intro/</guid><description>&lt;p>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.&lt;/p>
&lt;h2 id="organisation-du-cours">Organisation du cours&lt;/h2>
&lt;div class="toc-container" style="font-size:16pt; margin-left: 50px;">
&lt;li>0 - &lt;a href="https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/0_intro/">Introduction&lt;/a>&lt;/li>
&lt;li>1 - &lt;a href="https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/1_sim/">Simulation de microarchitectures&lt;/a>&lt;/li>
&lt;li>2 - &lt;a href="https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/2_exec/">Exécution d'un programme&lt;/a>&lt;/li>
&lt;li>3 - &lt;a href="https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/3_riscv/">ISA RISC-V&lt;/a>&lt;/li>
&lt;li>4 - &lt;a href="https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/4_pipe/">Pipeline&lt;/a>&lt;/li>
&lt;li>5 - &lt;a href="https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/5_br/">Prédiction de branchement&lt;/a>&lt;/li>
&lt;li>6 - &lt;a href="https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/6_cache_1/">Mémoire cache&lt;/a>&lt;/li>
&lt;/div>
&lt;h2 id="simulation">Simulation&lt;/h2></description></item><item><title>Architecture des processeurs 1: Simulateur de microarchitectures RISC-V</title><link>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/1_sim/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0200</pubDate><guid>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/1_sim/</guid><description>&lt;p>Lors de l&amp;rsquo;étude du fonctionnement des processseurs, il peut être utile de voir cycle par cycle comment évolue une exécution afin de comprendre l&amp;rsquo;impact des différents mécanismes.
Cela s&amp;rsquo;applique aussi bien pour l&amp;rsquo;étude de la microarchitecture des processeurs, que pour d&amp;rsquo;autres expérimentations comme par exemple pour de la sécurité matérielle.
Ainsi, un simulateur de microarchitectures est mis à disposition sur GitLab: &lt;a href="https://gitlab.com/escou64-emmk/riscv-sim.git" target="_blank" rel="noopener">https://gitlab.com/escou64-emmk/riscv-sim.git&lt;/a>.
Il permet de simuler l&amp;rsquo;exécution de différents programmes sur des processeurs implémentant le jeu d&amp;rsquo;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.&lt;/p></description></item><item><title>Architecture des processeurs 2: Exécution d'un programme</title><link>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/2_exec/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0200</pubDate><guid>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/2_exec/</guid><description>&lt;p>Dans un système informatique, un programme ou un logiciel est une suite d&amp;rsquo;opérations plus ou moins simples décrivant le fonctionnement attendu.
Ces opérations sont transmises sous la forme d&amp;rsquo;instructions que le processeur pourra interpréter avant d&amp;rsquo;effectuer les tâches correspondantes.
Quelque soit le jeu d&amp;rsquo;instructions ou le type de processeur, ce fonctionnement reste toujours le même.&lt;/p>
&lt;p>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&amp;rsquo;objectif sera également de prendre en main l&amp;rsquo;environnement de simulation de processeurs RISC-V.
L&amp;rsquo;ensemble des expérimentations, sur cette page et les suivantes, seront réalisés à partir de plusieurs modèles de microarchitectures simulées.&lt;/p></description></item><item><title>Architecture des processeurs 3: ISA RISC-V</title><link>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/3_riscv/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0200</pubDate><guid>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/3_riscv/</guid><description>&lt;p>Avant même de commencer à commencer à concevoir un processeur, il est nécessaire de définir l&amp;rsquo;architecture de jeu d&amp;rsquo;instructions (ISA) qu&amp;rsquo;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&amp;rsquo;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 &lt;em>etc.&lt;/em>
Différents types d&amp;rsquo;architectures de jeux d&amp;rsquo;instructions existent, avec leurs outils et écosystèmes respectifs.&lt;/p></description></item><item><title>Architecture des processeurs 4: Pipeline</title><link>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/4_pipe/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0200</pubDate><guid>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/4_pipe/</guid><description>&lt;p>Les capacités de calcul (ou performances) d&amp;rsquo;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&amp;rsquo;une des solutions pour augmenter le débit de calculs réalisés est d&amp;rsquo;augmenter la fréquence d&amp;rsquo;horloge.
Pour cela, un mécanisme essentiel est alors implémenté : le pipeline.&lt;/p>
&lt;p>Sur cette page, nous allons étudier le fonctionnement d&amp;rsquo;un pipeline dans un processeur.
Notamment, nous verrons comment il impacte l&amp;rsquo;exécution des programmes.
Également, nous étudierons les différents aléas susceptibles de pénaliser le débit final.&lt;/p></description></item><item><title>Architecture des processeurs 5: Prédiction de branchement</title><link>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/5_br_1/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0200</pubDate><guid>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/5_br_1/</guid><description>&lt;link rel="stylesheet" href="https://emmk-73cb1c.gitlab.io/css/vendors/admonitions.5bbb5ba8ed2a1a08fa75ad9197534b803de632cb2c8df129d462d6e07250e6ca.css" integrity="sha256-W7tbqO0qGgj6da2Rl1NLgD3mMsssjfEp1GLW4HJQ5so=" crossorigin="anonymous">
&lt;div class="admonition warning">
&lt;div class="admonition-header">&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">&lt;path d="M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"/>&lt;/svg>
&lt;span>Environnement de simulation&lt;/span>
&lt;/div>
&lt;div class="admonition-content">
&lt;p>Pour effectuer les différentes simulations de cette page, ouvrez l&amp;rsquo;ensemble du répertoire &lt;code>riscv-sim&lt;/code> avec &lt;em>Visual Studio Code&lt;/em>.
Dans le terminal de l&amp;rsquo;IDE, configurez l&amp;rsquo;&lt;a href="https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/1_sim/#configuration-de-lenvironnement">environnement du simulateur&lt;/a> puis placez-vous dans le répertoire &lt;code>sw/uarch/br&lt;/code>.&lt;/p></description></item><item><title>Architecture des processeurs 6: Mémoire cache</title><link>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/6_cache_1/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0200</pubDate><guid>https://emmk-73cb1c.gitlab.io/fr/posts/hw_cpu/6_cache_1/</guid><description>&lt;p>Le processeur ne correspond qu&amp;rsquo;à la partie opérationnelle du système.
Ainsi, pour avoir un système pleinement fonctionnel, il est également nécessaire de l&amp;rsquo;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&amp;rsquo;ensemble du système.&lt;/p>
&lt;p>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&amp;rsquo;aide de simulations, nous verrons comment les temps d&amp;rsquo;accès peuvent varier selon les opérations effectuées.
Nous verrons également l&amp;rsquo;impact du placement des données en mémoire, par exemple lors de la manipulation de tableaux ou matrices.&lt;/p></description></item></channel></rss>