projet de microprocesseur - École normale supérieure...a cheur graphique serveur i serveur nodejs...
TRANSCRIPT
Projet de microprocesseur
Nicolas J., Elie M., Aurélien D. et Louis G.
28 janvier 2014
1 / 18
Vue d'ensemble
2 / 18
Sommaire
Simulateur
Microprocesseur
Programme
A�cheurs
Oscillateur
3 / 18
Simulateur - Fonctionnement général
I Parseur de netlistI Optimizer (ordonne et simpli�e les netlists)I Parseur de �chier de ROMI Lecture/Écriture des entrées/sorties du circuitI InitialisationI C÷ur du simulateur
4 / 18
Simulateur - Fonctionnement interne
Optimizer
I Successeur du SchedulerI Suppression des nappes (sauf vers RAM et ROM)I Suppression des doublonsI Problèmes de complexité
Simulation
I Problèmes d'optimisationI Phase d'initialisation pour modi�er la structure des données
5 / 18
Simulateur - Fonctionnement interne
Optimizer
I Successeur du SchedulerI Suppression des nappes (sauf vers RAM et ROM)I Suppression des doublonsI Problèmes de complexité
Simulation
I Problèmes d'optimisationI Phase d'initialisation pour modi�er la structure des données
5 / 18
Simulateur - Utilisation
ROM
I Contient le programme à exécuter.I Décrit par un �chier .bin, suite de 0 et 1 pouvant contenir des
commentaires.
Entrées/Sorties
I Utilisations de l'entrée/sortie standardI Communication avec les périphériques par pipeI Possibilité d'asynchronisation de l'entrée
6 / 18
Simulateur - Utilisation
ROM
I Contient le programme à exécuter.I Décrit par un �chier .bin, suite de 0 et 1 pouvant contenir des
commentaires.
Entrées/Sorties
I Utilisations de l'entrée/sortie standardI Communication avec les périphériques par pipeI Possibilité d'asynchronisation de l'entrée
6 / 18
Microprocesseur - Architecture
7 / 18
Microprocesseur - Modi�cation
8 / 18
Microprocesseur - Séparation CPU/GPU
9 / 18
Programme
I Lexer "compilateur"I Initialisation de la RAMI LUT dans la RAM à l'initialisationI Réinitialisation de la LUT au changement d'années (pour
traiter les années bisextiles)I Indentation pour connaître la valeur de c
10 / 18
Programme - Gestion de la mémoire
|13|24|29|30|31|32|60|100|︸ ︷︷ ︸chunk0
|j |m|a1|a2|h|mn|s| ∗ |︸ ︷︷ ︸chunk1
|L0| ∗ |L2| ∗ | ∗ | ∗ | ∗ |old |︸ ︷︷ ︸chunk2
11 / 18
Programme - Di�cultés
I Di�cile de coder avec si peu d'instructions, mais intéressantI Surtout lorsqu'il a fallu prendre en compte le nombre de jours
par moisI LUT dans la RAM à l'initialisationI Réinitialisation de la LUT au changement d'années (pour
traiter les années bisextiles)
12 / 18
Programme - Compilation
I Langage plus haut niveau pour créer le codeI Pile et données statiquesI Valeurs des Li6 chargés au débutI Véri�cation : valeur de cI Optimisation di�cile
13 / 18
A�cheur non graphique
A�cheur heure et date
I Lecture en continueI Décodage 7 segments → chi�re
A�cheur stats
I Secondes � réelles �I Fréquences (moyenne et instantanée)
14 / 18
A�cheur non graphique
A�cheur heure et date
I Lecture en continueI Décodage 7 segments → chi�re
A�cheur stats
I Secondes � réelles �I Fréquences (moyenne et instantanée)
14 / 18
A�cheur graphique
Serveur
I Serveur NodeJSI Même base que l'a�cheur non graphiqueI Permet de communiquer avec le client en temps réelI Envoi toutes les 100ms
Client
I Inspiré d'un exemple de la bibliothèque graphique RaphaëlJSI Ne gère pas correctement le nombre de jours par mois
15 / 18
A�cheur graphique
Serveur
I Serveur NodeJSI Même base que l'a�cheur non graphiqueI Permet de communiquer avec le client en temps réelI Envoi toutes les 100ms
Client
I Inspiré d'un exemple de la bibliothèque graphique RaphaëlJSI Ne gère pas correctement le nombre de jours par mois
15 / 18
Oscillateur
16 / 18
Oscillateur - Montage
17 / 18
Oscillateur - Mesures pratiques
18 / 18