# Computer Architecture

L'architecture de l'ordinateur définit l'organisation et le comportement des composants matériels d'un ordinateur, en mettant l'accent sur les interactions entre le CPU, la mémoire et les E/S qui déterminent les performances et l'efficacité énergétique.

Computer architecture encompasses the design and organization of the central processing unit (CPU), memory hierarchy, input/output systems, and the interconnections among these components. It includes instruction set architectures (ISAs), datapath design, control logic, pipelining strategies, cache hierarchies, virtual memory, memory coherence, and parallel processing models. Foundational models such as Von Neumann (shared memory for instructions and data) and Harvard (separate instruction and data memories) illustrate how architectural choices impact performance, power, and cost. Modern architectures balance latency and throughput through techniques like deep pipelines, branch prediction, cache coherence protocols, memory-level parallelism, and multi-core or many-core designs. A complete view also considers I/O subsystems, storage hierarchies, and virtualization that enable scalable, secure, and interoperable systems.

        graph LR
  Center["# Computer Architecture"]:::main
  Rel_security_architecture["security-architecture"]:::related -.-> Center
  click Rel_security_architecture "/terms/security-architecture"
  Rel_hardware_security["hardware-security"]:::related -.-> Center
  click Rel_hardware_security "/terms/hardware-security"
  Rel_security_automation["security-automation"]:::related -.-> Center
  click Rel_security_automation "/terms/security-automation"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Explique-moi comme si j'avais 5 ans

🧠 L'architecture informatique, c'est comme le plan d'une ville, qui détermine comment les bâtiments (processeurs) et les routes (connexions) fonctionnent ensemble pour accomplir les tâches efficacement.

🤓 Expert Deep Dive

## Plongée en profondeur par un expert : Architecture informatique

L'architecture informatique moderne transcende les descriptions de composants de base, pour plonger dans des couches complexes d'abstraction et d'optimisation. Au niveau de l'architecture du jeu d'instructions (ISA), la divergence fondamentale entre les paradigmes RISC (par ex. ARM) et CISC (par ex. x86) dicte la complexité des instructions, l'utilisation des registres et les modes d'adressage, impactant à la fois la portabilité logicielle et l'implémentation matérielle. La microarchitecture réalise ensuite cette ISA, employant des techniques avancées telles que l'exécution superscalaire, l'exécution hors-ordre (OoOE) avec des tampons de réorganisation (reorder buffers) et des stations de réservation (reservation stations), ainsi que des mécanismes sophistiqués de prédiction de branchement (par ex. Gshare, BTB) pour maximiser le parallélisme au niveau des instructions (ILP).

La hiérarchie mémoire est un espace de conception critique, équilibrant latence et débit grâce à des caches multiniveaux (L1, L2, L3) gérés par des protocoles comme MESI et employant diverses politiques de remplacement (LRU, FIFO). Au-delà de la cohérence des caches, les modèles de cohérence mémoire (séquentiels, relâchés) influencent profondément les paradigmes de programmation multiprocesseurs. Le parallélisme est exploité au niveau des threads (TLP) et au niveau des données (DLP), se manifestant dans les conceptions multi-cœurs avec des caches partagés et des architectures NUMA, ainsi que dans les systèmes à nombreux cœurs comme les GPU utilisant des modèles d'exécution SIMT et un parallélisme massif. Les interconnexions, évoluant des bus vers des réseaux sur puce (NoC) sophistiqués avec des topologies comme les maillages et les fat-trees, sont vitales pour la communication inter-cœurs. La performance est de plus en plus quantifiée par l'efficacité énergétique (Perf/Watt) et l'efficacité spatiale (Perf/Area), stimulant les innovations en DVFS, gating d'horloge et accélérateurs spécialisés (ASIC, FPGA, TPU) pour le calcul hétérogène. Les fonctionnalités de sécurité architecturales, telles que les TEE (Trusted Execution Environments) et les atténuations des attaques par canal auxiliaire, sont également primordiales.

❓ Questions fréquentes

What is the difference between computer architecture and computer organization?

Computer architecture defines the high-level design and the functional capabilities of a system, while computer organization describes how the components are arranged and operate to realize those capabilities.

What are Von Neumann and Harvard architectures?

Von Neumann architecture uses a single shared memory for instructions and data; Harvard architecture uses separate memories for instructions and data, affecting bandwidth and design tradeoffs.

Why is memory hierarchy important in architecture?

A memory hierarchy (registers, L1/L2/L3 caches, main memory) hides latency and increases effective bandwidth by exploiting locality, thereby improving overall performance.

📚 Sources