Académique Documents
Professionnel Documents
Culture Documents
Assembleur
Filière SUD
Cours basé sur deux livres:
• «Computer Organization & Design», 2e édition, Patterson &
Hennessy 1998
• couvre la plupart des sujets de ce cours
• Très bien écrit
• Basée principalement sur l'architecture MIPS R3000
• « ARM System-on-Chip Architecture », Steve Furber, 2000
• Fortement recommandé – très bon livre sur le processeur ARM
Tout ce que vous devez savoir sur l’informatique
(en tant qu’Ingénieur Cloud et IoT)
• Ce que l’enseignement de l’informatique n'est pas:
• L’informatique n’est pas seulement une question de programmation en C, Java, Python
ou d’autres langages
• L’informatique ne se résume pas à apprendre le code machine ou un code spécifique
d’un microprocesseur et son jeu d'instructions
• L'informatique ne consiste pas à apprendre à utiliser Office 2016 (ou 2019)
• ...
• L’enseignement de l’informatique devrait permettre d’ :
• Avoir un modèle (au niveau approprié) du fonctionnement d'un ordinateur (ou d’un
système de calcul)
• Avoir les capacités de concevoir et réaliser une bonne solution logicielle pour un
problème
• Être capable de gérer la complexité dans un système
• Être capable d'utiliser un ordinateur / un microprocesseur pour résoudre un problème
d'ingénierie
L’informatique comme discipline
• L'informatique ne concerne pas seulement un PC ou un Mac (ou une tablette ...)
• La plupart des microprocesseurs sont utilisés dans des applications embarquées
• Celles-ci vont d’un programme de quelques kilo-octets sur un simple microprocesseur 4 bits dans
une machine à laver à quelques Mo de code sur un processeur 32 (ou 64) bits sur un téléphone
mobile
• En tant qu'ingénieur (IoT), on sera plus intéressé par les applications embarquées, que par
exemple, la programmation de bases de données sur un ordinateur central IBM (dans une
banque?)
• Mais on garde un esprit généraliste ...
• L’informatique devrait être un outil pour nous aider à aborder ces disciplines mais pas une
fin en soi (Computer Science vs Engineering)
• En tant qu’ingénieur, on a besoin d’apprendre différentes aspects concernant le
MATERIEL ET le LOGICIEL
Compétences et connaissances attendues des
étudiants (dans un cadre plus large que ce cours)
• Compétences:
• Être capable de concevoir et d’écrire un programme assez volumineux dans
un langage procédural (ou objets) pour effectuer une tâche utile non
forcément numérique.
• Connaissances (cadre plus large que ce cours)
• Comprendre les principes de base du génie logiciel tels que:
• La méthodologie de conception descendante
• Modularité, encapsulation d’information, cohésion
• Les logiciels ne doivent pas simplement être écrits, mais conçus et «engineered»
• Test et documentation
Connaissances (Suite)
• Comprendre les concepts de structures de données, d’algorithmes et de paradigme
orienté-objet tels que:
• Structures de données de base - enregistrement, listes chaînées, arbres, files d'attente, tables, etc.
• Comment concevoir une structure de données pour améliorer l’efficacité des algorithmes et la
maintenabilité du code
• Quelques algorithmes couramment utilisés
• Notions d'efficacité et de complexité des algorithmes
• Concepts d’encapsulation dans le contexte d’une conception orientée objet
• Comprendre le fonctionnement d'un ordinateur. Cela devrait inclure:
• Quelques notions de base de l’architecture des ordinateurs et du jeu d’instructions de bas niveau
• Les principaux blocs à l'intérieur d'un PC
• La relation entre le matériel, les microprogrammes (par exemple, le BIOS), le système d’exploitation
et les applications logicielles
• Certains aspects de l’interfaçage tels que les entrées / sorties, pourquoi avoir besoin de
pilotes de périphériques, les interruptions et DMA.
Ce qu’on va voir dans ce cours
• Qu'est-ce qu'un ordinateur?
• Qu'est-ce que l'architecture ISA (Instruction Set Architecture)?
• Comment un ISA est-il implémenté dans le matériel? (au niveau abstrait)
• Arithmétique sur ordinateur
• Architecture du processeur - chemin de données et contrôle
• Pipelining simple dans les processeurs
• Hiérarchie de la mémoire de base
• Un ordinateur (simple) s'interfaçant avec des périphériques
• Processeurs embarqués (survol)
• Programmation en langage d'assemblage - une bonne partie du cours
Logiciel
Logiciel
• Assembleur / • Programmation
• BIOS
• Disques / Système Compilateur / procédurale /
• Bootstrap objets
de fichiers éditeur de liens
• Modes • Génie logiciel
• Ordonnanceur • Émulateur /
d’adressage • Structures de
• Droits et privilèges débugger
• Jeu d’instructions données
• Changement de • Profiler • Algorithmes
• Langage
contexte • IDE • Langages de
d’assemblage
• Librairies programmation
Matériel
Matériel
Système
d’exploitation Connaissances
Technologie: Densité logique (processeurs)
Source: https://fr.wikipedia.org/wiki/Loi_de_Moore#/media/File:Loi_de_Moore.png
• « Le nombre de transistors double tous les 36 mois » - Loi de Moore
(Plus vraiment valable)
Améliorations de la technologie des circuits
intégrés numériques
Capacité Vitesse
Logic 2x tous les 3 ans 2x tous les 3 ans
DRAM 4x tous les 3 ans 1.4x tous les 10 ans
Disque 4x tous les 3 ans 1.4x tous les 10 ans
Améliorations de la vitesse des processeurs
Coût d'un processeur
• Coût IC = Coût du dé + Coût de test + Coût d'emballage
• Coût de l'emballage: dépend des broches, de la dissipation thermique
Puce Coût du dé Package Test et Total
Pins Type Coût assemblage