Clac ton Proc Questions et réponses

Transcription

Clac ton Proc Questions et réponses
Clac ton Proc
Questions et réponses
Si j’ai un bus d’adresse
comprenant 4 fils, quel est le
nombre maximum d’adresses
possibles ?
Si j’ai un bus de données
comprenant 16 fils, quel est le
nombre maximum d’adresses
possibles ?
Si je dis que mon processeur
est un processeur 64 bits. De
quoi est-ce que je parle ?
A quoi sert l’unité
arithmétique et logique ?
Réponse :
Réponse :
2^4 soit 16 adresses.
Les nombres placés dans les
registres d’un périphérique sontils des nombres décimaux,
hexadécimaux, des adresses
mémoire ? Autre ?
Réponse : Les nombres sont
enregistrés via une information
logique dans les bascules D.
L’information est binaire (0 ou 1).
Info+ :Peu importe la représentation
du nombre par la suite. Décimal,
hexa… ce ne sont que des
représentations conventionnelles pour
nous faciliter la lecture.
Réponse :
On ne peut pas savoir, le
calcul se fait uniquement à
partir du bus d’adresse.
Traduire en une seule ligne C
optimisée, sachant que Zt et
Yt sont des variables qui ne
sont pas utilisées dans la suite
du programme :
(le symbole ‘*’ doit
disparaître)
Zt = Z*16
Yt = Y & Zt
X=Yt
Réponse :
x = y & (z<<4)
Le *16 doit impérativement
être remplacé par « << »
Réponse : du nombre de bits
que le processeur va pouvoir
manipuler à un instant donné,
c'est-à-dire du nombre de bits
traités par l’UAL à un instant
donné.
à effectuer des opérations
arithmétiques et logiques
(Addition, ET, OU, …) sur des
informations provenant des
registres ou du bus de
données.
Quelle est la différence entre
un microcontrôleur et un
microprocesseur ?
Est-il possible de concevoir
une architecture avec un bus
d’adresse ayant un nombre de
fils différent du nombre de fils
du bus de données.
Réponse :
Un microcontrôleur contient
un microprocesseur avec des
périphériques, de la mémoire,
etc.
Le microcontrôleur est
autonome et peut fonctionner
seul contrairement au
microprocesseur.
Réponse : Oui rien ne
l’interdit.
Quel est le rôle du séquenceur
(ou unité de contrôle) dans un
processeur ?
Réponse :
Le séquenceur interprète
chaque instruction et assure le
bon déroulement de chaque
exécution.
Info + : il génère les signaux de
contrôle pour guider les
éléments d’un endroit à un
autre. C’est un circuit logique
qui exécute un automate fini.
Quelle est la différence entre
une architecture Von Neumann
et Harvard ?
Réponse :
L’architecture Harvard possède
une mémoire avec un accès
spécifique pour les instructions
et une mémoire avec un accès
spécifique pour les données.
Pour l’architecture
Von Neumann, la mémoire
contient les données, les
instructions, etc. L’accès se fait
par un bus d’adresse et un bus
de données commun à toute la
mémoire.
Peut-on programmer avec un
langage dit de haut niveau un
microcontrôleur ?
Donnez les éléments
fondamentaux d’une carte de
prototypage à
microcontrôleur comme nous
l’avons fait en mini-projet.
Réponse : Oui
C’est une histoire de
compilateur. Par exemple C18
est un compilateur C pour les
PIC18f. Le langage C est un
langage dit haut niveau.
Sur un forum un internaute
explique :
« Je ne comprends pas, sur
ma carte demo board
pic18f45k20, j’ai écris
LATD=0xFF et mes leds qui
sont sur le port D ne s’allume
pas ».
Quel serait votre premier
conseil avisé ?
Réponse :
configurer le port D en sortie !
Réponse :
Alimentation, le
microcontrôleur, quartz (si pas
d’usage d’un oscillateur
interne), un programmateur
in-situ du microcontrôleur
Vous voulez choisir un
microcontrôleur. Donnez 4
critères qui vont vous permettre
de choisir ce microcontrôleur.
Réponse :
Le nombre/choix des
périphériques/interfaces
proposées, la taille de la
mémoire volatile, non volatile,
coût, puissance de calcul, outils,
disponibilité, support, contrainte
thermique/énergétique/taille,
documentation, compétences,
fournisseur, partenaires...
Je viens d’acheter un
processeur de 12 watts. Mon
voisin vient d’en acheter un
de 60 watts. Son processeur
est-il 5 fois plus puissant pour
faire des calculs ?
Réponse : On ne peut pas
savoir. Ici le watt reflète la
puissance électrique
consommée par le processeur
qui dépend de l’architecture,
de la technologie de
fabrication du processeur, de
sa cadence, et de sa tension
d’alimentation.
Question collaborative :
un élément à chaque joueur si la bonne
réponse est trouvée. Le joueur qui lit la
question ne participe pas mais gagne
quand même un élément.
Quelle programme est le plus rapide à
s’exécuter sur un microcontrôleur type
PIC18f sans optimisation compilateur.
Prg1 :
For(int i=0 ; i+2; i < 1000) i-=1;
Prg2 :
i+=2;
i-=1;
Ces deux instructions recopiées 2100 fois
Réponse :
Le programme 2.
Info+ : dans le programme 1 il faut faire un
test, ajouter et soustraire, ce qui fait 3/4
instructions élémentaire en langage
machine sans compter le problème dû à la
boucle (pipeline).
Comment se nomme la phase
qui consiste à transformer un
programme écrit en langage
de haut niveau en un fichier
image, fichier écrit dans la
mémoire du microcontrôleur
contenant tout le programme
?
switch(state)
{
case INIT:
state = (condition)?STA1:STA2;
}
case STA1:
function1();
state = INIT;
case STA2:
function2();
state = INIT;
default:
Que manque t’il à cette machine à
états ?
Réponse :
La phase de compilation
Réponse :
Des « break; » pour chaque case !
Question en lien avec la bio
Si vous deviez comparer un
microcontrôleur à un organe
du corps humain, quel serait
celui le plus approprié :
Félicitation vous venez de
gagner une LED.
Donnez un exemple d’une
suite logicielle pour compiler
un programme pour
microcontrôleur PIC18F.
Réponse : MCC18. Attention :
MPLAB n’est pas un logiciel
pour compiler, c’est un IDE qui
s’interface avec le
compilateur.
Autres exemples : il existe
aussi les outils GNU pour pic
(gcc, gdb…), ou encore CCS...
La famille des
microcontrôleurs PIC18
s’appuie sur un cœur de
processeur de type Harvard
ou Von Neumann ?
Donnez un exemple d’une
chaine de compilation croisée.
Réponse : mcc18 (pour les
pic), les outils GNU pour ARM
(GCC+ GDB+AS +linker), CCS
(pour les pics). Attention à ne
pas citer d’IDE (comme
Eclipse, MPLAB, etc.). Ce sont
les compilateurs qui génères
un fichier image, exécutable
par un processeur différent du
processeur utilisé par la
chaine de compilation
Félicitation vous venez de
gagner une LED.
Prenez une LED puis rejouez.
Prenez une LED puis rejouez.
Réponse :
Réponse :
Le cerveau
C’est un cœur Harvard.
Question en lien avec l’option
TST :
La plupart des processeurs
récents disposent de mémoire
cache. Peut-on les considérer
comme des microcontrôleurs
?
Réponse :
Non car ils ne peuvent pas
s’utiliser de manière
indépendante pour exécuter
un programme
La personne qui dit la
première à l’exception du
lecteur : « j’aime les
microprocesseurs » gagne une
led.
Le joueur qui devait avoir une
question rejoue.
traduisez : « un
microprocesseur et un
microcontrôleur » en anglais.
Réponse :
a microprocessor and a
microcontroller
Comment effectuer en une
instruction C intelligente une
division par 32 de l’entier non
signé contenu dans une
variable a ?
Comment effectuer en une
instruction C intelligente une
multiplication par 128 de
l’entier non signé contenu
dans une variable a ?
Réponse :
a>>=5
ou
a=a>>5
Réponse :
a<<=7
ou
a=a<<7
Je souhaite effectuer un filtre
à réponse impulsionnelle finie
pour filtrer un signal audio.
Est-ce que je peux utiliser le
pic18f452 utilisé dans le miniprojet ?
Réponse :
Non
Info+ : Trop de calcul serait
demandé
Comment s’appelle en anglais
le regroupement des
transistors assemblés sur une
plaque de silicium pour en
faire un circuit intégré comme
par exemple un processeur ?
Dans un processeur, quelle
unité de mémorisation
temporaire de l’information
possède le temps d’accès le
plus court et est le plus
coûteux à fabriquer.
Réponse :
The ‘die’.
Réponse :
Les registres internes du
processeur
Donnez deux exemples
d’optimisation du cœur du
processeur pour accélérer le
traitement des instructions.
Le jeu d’instructions est-il
dépendant de l’architecture du
processeur. Justifiez.
Réponse :
Réponse : les optimisations
matérielles et logicielles sont
acceptées. Il est possible de
citer : le compilateur, la
finesse de gravure de la puce,
le pipeline, superscalaire
(SMT), architecture dédiée
(DSP, GPU, co-processeur), le
multi-coeur
Vous voulez choisir un
microcontrôleur. Donnez un
paramètre à prendre en
compte qui ne rentre pas dans
les paramètres de choix d’un
microprocesseur.
Oui, une fonction arithmétique,
logique ou autre ne peut exister
que si la fonction existe
réellement dans l’architecture
du processeur. La manière
d’aller chercher en mémoire
l’information dépend également
de l’architecture et donc les
instructions seront spécifiques
pour l’architecture.
Quelle unité de mesure peut
on utiliser pour caractériser la
puissance d’un processeur ?
Réponse :
Réponse :
Le nombre/choix des
périphériques/interfaces
proposées, la taille de la
mémoire volatile, non volatile
Le nombre d’instructions par
seconde souvent par multiple
du million (MIPS) ou du
milliard (GIPS)
Vous voulez choisir un
microprocesseur pour répondre
à une application donnée.
Donnez trois paramètres à
prendre en compte dans votre
choix.
Sur un forum de joueur de jeux
en réseau l’internaute 1 dit :
« Je ne comprends pas, je joue à
wow (World of Warcraft) et ça
rame. J’ai pourtant un
processeur double cœurs ».
L’internaute 2 répond :
« Mets un 4 cœurs, tu verras,
moi ça a résolu mes soucis ».
Réponse :
Que pensez-vous de la réponse
de l’internaute 2 ?
Consommation, chaine de
compilation, durée de vie,
performance du cœur, moyen de
tests, documentation, retour
utilisateur, le SAV, code
d’exemple, etc.
Réponse : Le nombre de cœur
est indépendant de la rapidité
d’exécution d’une application. Il
faut analyser en détail les
applications lancées et
l’occupation des ressources de
l’ordinateur
Donnez un exemple de logiciel
de débogage pour ARM.
Réponse : GNU GDB.
Attention : Eclipse n’est pas
un logiciel de débogage, c’est
un IDE qui s’interface avec
GDB.
Autres exemples : ADU (ARM
Debugger for UNIX), ARM RV
Debugger
Sur l’ARM cortex M4,
comment est décomposé le
pipeline (quelles sont les
étapes de ce pipeline) :
Réponse :
Fetch : recherche instruction
Decode : décodage/
préparation des blocs
Execute : exécution de
l’instruction
La famille des
microcontrôleurs STM32
s’appuie sur un cœur de
processeur de type Harvard
ou Von Neumann ?
Question en lien avec l’option
ESPRIT :
Qu’est ce qu’une architecture
superscalaire ?
Je souhaite effectuer un filtre
à réponse impulsionnelle finie
pour filtrer un signal audio.
Quel est le type de processeur
le plus adapté pour faire ces
calculs ?
(Déclinez l’acronyme)
Réponse :
C’est un cœur Harvard (bus
d’accès spécifique pour les
données et les instructions)
Pour m’amuser :
- Je construis manuellement les
mots correspondant à la traduction
en code machine d’instructions
assembleur.
- Je stocke ces mots à une adresse
mémoire.
- Je place cette adresse dans PC.
Le processeur peut-il ainsi exécuter
cette suite d’instructions
« construite manuellement » ?
Justifiez.
Réponse :
Oui, rien ne l’empêche.
Cela revient à faire le travail du
compilateur. Le processeur ne fait
pas la différence entre une
instruction et une donnée. Il ne sait
qu’exécuter les instructions situés à
l’adresse [PC]...
Réponse : Propose plusieurs
unités de traitement des
instructions pour paralléliser
les instructions.
Question collaborative :
un élément à chaque joueur si la bonne
réponse est trouvée. Le joueur qui lit la
question ne participe pas mais gagne
quand même un élément.
Quelles sont les différentes
étapes de l’exécution d’une
instruction, en partant du
décodage de l’instruction
jusqu’à la fin de son exécution ?
Partez de l’exemple de l’addition
pour vous aider.
Réponse :
(1- le séquenceur va chercher
l’instruction dans la mémoire,)
2- il active la fonction sur l’UAL,
3- les bons registres sont lus
4- l’opération est faite
5- le résultat est éventuellement
rangé en mémoire ou dans un
registre
Réponse :
DSP (digital signal processor)
mov r2, #1
ldr r0, =longueur_chaine
bl chaine_longueur
mov r1, r2
/*chaine_longueur est la
fonction de calcul de la
longueur d’une chaine de
caractères d’une chaîne passé
dans le premier paramètre*/
Protype d’une fonction :
init_eleve_femme(T_eleve*
eleve_a_initialiser, int age, char*
son_nom).
Question :
On souhaite écrire ce sousprogramme en assembleur ARM.
Expliquez comment récupérer
age et son_nom une fois l’appel
de la fonction fait.
Que vaut r1 après l’exécution
de l’instruction mov r1, r2 ?
Réponse : on ne peut pas
savoir. (la norme EABI
n’impose pas de restituer r2)
Réponse :
premier paramètre dans R0 ici
l’adresse de l’élève à initialiser,
le deuxième dans R1 ici l’entier
age , le troisième dans R2 ici
l’adresse de la chaîne.
Le sous-programme doit
retourner la valeur maximale de
deux entiers à comparer,
contenus dans R0 et R1.
Qu’est ce qu’un coprocesseur ?
Fonction_valeur_max:
STMDB SP!,{R0-R1, LR}
CMP R0, R1
MOVGT R0, R1
LDMIA SP!,{R0-R1, PC}
Cette fonction est-elle correcte ?
Justifiez.
Réponse :
L’instruction LDMIA écrase la
valeur de retour placée dans R0.
Il est d’ailleurs inutile de
sauvegarder R0 et R1 dans la
convention AAPCS.
mov r4, #1
ldr r0, =longueur_chaine
bl chaine_longueur
mov r1, r4
/*chaine_longueur est la
fonction de calcul de la
longueur d’une chaine de
caractères comme dans le
mini-projet*/
Que vaut r4 après l’exécution
de l’instruction mov r1, r4 ?
Réponse : 1 (la convention
AAPCS impose de restituer r4)
donc R4 vaut 1
Réponse :
Un coprocesseur est
spécialisé dans des calculs
souvent complexes. Le
coprocesseur peut être
abrité par un
microprocesseur.
Traduire en une instruction
assembleur ARM (vous pouvez
regarder l’aide mémoire des
instructions) :
x = y & (z<<4).
Vous attribuerez un registre à
chaque variable.
Réponse :
AND R0, R1, R2 LSL #4
avec
R0 : x,
R1 : y,
R2 : z
Comment traduire la notion de sousprogramme en langage d’assemblage
ARM ?
Réponse : En utilisant une étiquette. +
MOV PC, LR à la fin du sous-prg. Info+
: attention, la notion de sousprogramme n’existe pas. Ainsi il est
pris comme convention de donner une
étiquette avec le nom du sousprogramme. Avant l’appel de
l’instruction à cette étiquette,
l’adresse de la prochaine instruction à
exécuter après le retour du sousprogramme est enregistrée dans un
registre (LR = R14). Ainsi le sousprogramme doit se terminer par un
mov PC, LR pour indiquer au
processeur la prochaine instruction à
exécuter (donnée par PC) qui est
l’adresse de la prochaine instruction
après l’exécution du sous-programme.
Traduire en quelques
instructions assembleur ARM
pour cortex M4 l’algorithme
(vous pouvez regarder l’aide
mémoire des instructions) :
// x : R0, y : R1 et z : R2
if (x<10) //x est signé
z=y*13 ;
//puis appel au sousprogramme une_fonction
une_fonction() ;
Réponse :
CMP R0, #10
IT LT
MULLT R2, R1, #13
BL une_fonction
Question collaborative.
Un élément à chaque joueur si la
bonne réponse est trouvée. Le joueur
qui lit la question ne participe pas,
mais gagne quand même un élément.
Traduire en quelques
instructions l’algorithme :
if (x<10 && y==0 && z == 1)
x=100 ;
// x : R0, y : R1 et z : R2 sont signés
Réponse :
CMP R0, #10
BGE suite
CMP R1, #0
BNE suite
CMP R2, #1
IT EQ
MOVEQ R0, #100
suite : …
Attention il n’est pas possible de faire :
CMP R0,#10
CMPLT R1, #0
CMPEQ R2, #1
Proposez une traduction en
langage C ou en langage
algorithmique de :
CMP R0,#10
CMP R1, #0
IT EQ
ADDEQ R2, R2, #1
ADD R2, R2, #2
Réponse :
if (y == 0)
z +=1;
z+=2;
Question collaborative.
Un élément à chaque joueur si la
bonne réponse est trouvée. Le joueur
qui lit la question ne participe pas,
mais gagne quand même un élément.
Proposez une traduction en
langage d’assemblage ARM des
instructions suivantes :
while (x !=y){
if (x>y)
x = x-y;
if (x<y)
y = y-x; }
boucle:
Réponse :
CMP R0, R1
IT GT
SUBGT R0, R0, R1
IT LT
SUBLT R1, R1, R0
BNE boucle
Comment effectuer en une
instruction une division par 4
de l’entier non signé contenu
dans le registre R11 ?
Réponse :
MOV R11, R11, LSR #2
Info + : pour un entier signé :
MOV R11, R11, ASR #2
if(k%4)
Comment effectuer en une
instruction une multiplication
par 5 de la valeur contenue
dans R0, SANS UTILISER
L’INSTRUCTION MUL ?
i++;
ANDS R2, R0, #0x3
IT NE
ADDNE R1, R1, #1
/*R0 = k*/
/*R1 = i*/
Complétez la traduction en
langage d’assemblage ARM de :
for (i=0 ; i<10 ; i++)
s = s + X[i]
Pourquoi le pointeur de pile
évolue-t-il de 4 en 4.
Traduction proposée :
MOV R0, #0
Boucle_for :
CMP R0, #10
/* A compléter */
BLT Boucle_for
On suppose que le vecteur X est
rempli d’entiers de 32 bits dont
l’adresse de base est déjà
présente dans R1
Réponse :
ITTT LT
LDRLT R3, [R1, R0, LSL #2]
ADDLT R2, R2, R3
ADDLT R0, R0, #1
Est-il possible d’écrire cette
instruction dans le langage
d’assemblage ARM :
« ADD R1, #2, R2 ». Pourquoi ?
Réponse :
Car le pointeur de pile permet
d’enregistrer dans la pile des
mots (32 bits). A une adresse
est associé un octet, un mot
doit donc être écrit sur une
adresse multiple de 4.
SP doit varier de 4 en 4.
Lorsque je veux sauvegarder
dans la mémoire différents
registres du microprocesseur
ARM, quelle est l’instruction la
plus adaptée à cette opération
?
Est-ce que cette traduction est
équivalente ? Justifiez.
Réponse :
ADD R0, R0, LSL #2
/* R0 = R0 + R0<<2 */
/* R0 = R0 + R0 * 4 */
Réponse :
Oui.
L’instruction ANDS met à jour le
CPSR selon le résultat de :
R0 & 0x0000 0003
Si ce résultat est non nul, on
incrémente R1.
Réponse :
Non car à la place de #2, nous
devons forcément y placer un
registre
Réponse :
STM. Il faut ajouter ensuite le
préfixe pour indiquer le sens
de déplacement dans la
mémoire par exemple IA, ou
DB
Dans mon registre R1, je veux
enregistrer le caractère ‘0’. J’ai
écrit ces deux instructions :
MOV R1, #’0'
MOV R1, #0x30
Sachant que le code ASCII de
‘0’ est 0x30, quelle est
l’instruction que peut utiliser ?
Réponse :
Les deux.
Info + : au final, le caractère va
être codé dans l’instruction en
elle-même. Ce sont donc des 0
et des 1 qui vont être écrit
dans la mémoire quelque soit
la représentation faite par le
programmeur
Dans une table d’exception,
que trouve-t-on toujours dans
le début de cette table pour
tous processeurs ?
Réponse :
Le point d’entrée pour le
démarrage du programme
Vous venez de lire en
mémoire le mot :
0b1110 0011 1000 0000 0001
0000 0000 0000
Sachant que c’est une
instruction ARM et qu’il s’agit
d’un ADD, retrouvez le
registre Rn et Rd. Information
: le registre Rn est enregistré
entre dans les bits de 16 à 19
et Rd de 12 à 15.
Traduire « addressing mode ».
Comment s’appelle la table
regroupant l’ensemble des
adresses (ou instructions
suivant le microprocesseur)
pour chercher le sousprogramme spécifique à
exécuter en fonction des
différentes exceptions ?
Réponse :
Les modes d’adressage
Réponse :
Rn = R0 et Rd = R1
Donnez un exemple de logiciel
de débogage pour ARM.
Réponse : GNU GDB.
Attention : Eclipse n’est pas
un logiciel de débogage, c’est
un IDE qui s’interface avec
GDB.
Autres exemples : ADU (ARM
Debugger for UNIX), ARM RV
Debugger
Réponse :
La table d’exception ou le
vecteur d’exception
Que peut-on analyser avec
un débogueur + sonde
JTAG ?
Quel est le principal circuit
logique qui constitue les
registres du processeur ?
Réponse : analyser les
registres processeur, les
valeurs des cellules
mémoire (dont variables,
constantes, code machine,
etc…), les registres des
périphériques soit en
cours d’exécution soit au
moment de l’erreur.
Etc.
Réponse :
Les bascules D
Peut-on instancier un
microcontrôleur dans un FPGA
?
Réponse :
Oui !
Cela est couramment utilisé
pour doter un FPGA d’un
cœur exécutant du code. Le
reste du FPGA est alors routé
spécifiquement selon
l’application.
Un ‘0’ logique correspond à un
niveau bas. A quoi
correspond-il physiquement ?
Réponse : Pour un composant
donné, le ‘0’ logique est
associé à une plage de
tension (ou de courant).
Par exemple, le 0 logique est
considéré entre 0 V et 0.8 V
ou entre -3 V et -15 V, etc.
C’est une convention fixée par
le circuit électronique conçu. Il
existe cependant des
standards (TTL, CMOS ,
BiCMOS, etc.).
Qu’est ce qui différencie
l’électronique numérique de
l’électronique analogique ?
Réponse :
électronique numérique :
système électronique fondé
sur des états discontinus (ex :
états logiques) ;
électronique analogique :
fondée sur des signaux
continus.
Que se passe-t-il,
électriquement parlant quand
un transistor bipolaire est
saturé (au niveau du courant
et de la tension) ?
Réponse : Vce ≈ 0 et un
courant circule dans le
transistor suivant les besoins
de la charge
(limité par Isat).
Qu’est ce que permet de
caractériser le Farad ?
Réponse : Exprime une charge
électrique entre deux
armatures. (par exemple
celles d’un condensateur)
A titre d’information, c’est la
capacité d’un condensateur
électrique entre les armatures
duquel apparaît une
différence de potentiel de 1
volt lorsqu’il est chargé d’une
quantité d’électricité d’un
coulomb (1 ampère pendant 1
seconde).
Que se passe-t-il,
électriquement parlant quand
un transistor bipolaire est
bloqué (au niveau du courant
et de la tension) ?
Réponse : I=0 et Vce = E
Un ‘1’ logique correspond à un
niveau haut. A quoi
correspond-il physiquement ?
Réponse :
Pour un composant donné, le
‘1’ logique est associé à une
plage de tension (ou de
courant).
Par exemple, le 1 logique est
considéré entre 2.4 V et 5V ou
entre 2 V et 3,3 V ou -3V et 15V. C’est une convention
fixée par le circuit
électronique conçu. Il existe
cependant des standards (TTL,
CMOS , BiCMOS, etc.).
L’horloge cadence les
instructions lues et exécutées
par le processeur ici un
PIC18f45k20 cadencé à 50 MHz.
Sur un forum, un premier
internaute, explique que son
programme n’a pas pu exécuter
assez vite le code qu’il souhaite.
Un internaute lui propose de
remplacer son quartz de 50 MHz
par un quartz à 1Ghz. Que
pensez-vous de la réponse du
deuxième internaute ?
Réponse :
c’est un aberration ! il faut
tenir compte de la limite de
fréquence donnée par le
constructeur : 1 GHz, c’est
beaucoup trop ! (temps de
propagation des signaux…)
Le circuit logique 54ACT00 a-il
une meilleure tenue en
température que le circuit
74ACT04 ? Justifiez.
Soit le circuit suivant :
Ce circuit peut-il avoir une
utilité ?
Réponse :
Oui la différence se fait entre
le 54 et 74, gamme de
températures normale pour le
74 (0°C à 70°C) ou militaire
pour le 54 (-55°C à +125°C). Le
00 et le 04 indiquent la
fonction logique.
Réponse :
Oui, il y a deux états stables
possibles : 0 à gauche et 1 à
droite ou 0 à droite et 1 à
gauche. C’est un circuit
bistable à la base des
éléments de mémorisation
dans une mémoire volatile
statique.
5V
Pourquoi un processeur qui subit
un overclocking, c'est-à-dire
lorsque l’on augmente la
fréquence du processeur pour
exécuter plus d’instructions par
seconde, chauffe plus ?
Réponse : Le processeur est
conçu avec des millions de
transistors. Le transistor dissipe
beaucoup de puissance quand il
change d’état. Quand il est sur
un état stable, il consomme peu.
Ainsi, plus ces transistors sont
sollicités notamment pour
changer d’état et plus le
processeur a besoin de dissiper
de chaleur.
µC
L
Je souhaite piloter à l’aide d’un
microcontrôleur une lampe qui
consomme 1A sous 5V.
Afin de ne pas faire débiter
l’alimentation 5V par le
microcontrôleur, je réalise le schéma
ci-dessus. (le port est mis à 0 pour
allumer la lampe) Ce montage est-il
judicieux ? Justifiez.
Réponse :
Ce montage ne fonctionne pas (ou
plutôt « pas longtemps »...). La limite
du courant à débiter ou à recevoir est
la même, et inférieure à 1A. Je risque
donc d’endommager la sortie du
microcontrôleur !
Expliquez ce qu’est l’état de
haute impédance ?
Quelle fonction logique réalise
ce circuit :
Réponse :
état d’une pin de sortie d’un
circuit logique qui est
physiquement déconnecté du
lien extérieur.
Info + : Cette déconnection
peut être pilotée par des
registres du microcontrôleur
par exemple.
Réponse :
un inverseur
Je souhaite fabriquer une
horloge (affichage de l’heure sur
des afficheurs 7-segments)
Pour la référence de temps, j’ai
utilisé le quartz suivant :
32 768 Hz / 10 ppm
(ppm = 10 parties par million)
Est-ce qu’un microprocesseur
est un circuit logique ?
Quel peut être la déviation
annuelle approximative de cette
référence ?
-> 10 millisecondes
-> 500 millisecondes
-> 30 secondes
-> 5 minutes
-> 32 minutes
Réponse :
Oui.
Réponse : 5 minutes
(10 ppm / 1 000 000) * 365 * 24
* 60 = 5,25 minutes
Pour alimenter mon
microcontrôleur, j’ai besoin
d’une alimentation 5V.
Cependant, je n’ai à ma
disposition qu’une
alimentation stabilisée de 9V
continue. Comment résoudre
ce problème ?
Réponse :
Il faut insérer après
l’alimentation 9V un
régulateur. Bien évidemment
d’autres solutions existent
mais ne sont pas aussi
optimales A vous de juger de
la pertinence de la solution
(sauf le pont diviseur de
tension qui est à bannir pour
alimenter un circuit) !
Qu’est-ce qu’un relais en
électronique ?
Réponse :
C’est un interrupteur
commandé par un faible
courant.
Info + : Un relais est constitué
d’un électroaimant
permettant d’agir sur un
mécanisme afin d’établir des
contacts électriques. Cela
permet d’avoir un circuit de
commande et un circuit de
puissance séparés
J’utilise le convertisseur
Analogique Numérique pour
mesurer la température
venant de mon capteur. Ce
convertisseur transforme une
tension présente sur son
entrée entre 0 V et 6 V en un
nombre sur 2 bits. Si je lis en
sortie de mon convertisseur la
valeur 0b10. Quelle est la
tension d’entrée ?
Réponse :
4 V. (quantum : (6-0)/2^2 = 2)
puis quantum *0b10, soit 4
Un processeur chauffe car il
est composé de plusieurs
milliards de transistors qui
sont en commutation. La
puissance que doit dissiper le
processeur peut se résumer
ainsi :
P = k*U²*f avec f la fréquence
de fonctionnement, U la
tension d’alimentation et k un
facteur constant.
Sur quelle paramètre vaut-il
mieux jouer pour diminuer la
puissance dissipée par un
processeur ?
Réponse :
En France, quelle est la
tension efficace normalisée
qui arrive sur nos prises de
courant ?
Réponse :
230V
Info + : Nous sommes passés
de 220 V à 230 V efficaces en
1986.
La tension (elle intervient au carré
!!)
Comment réaliser un
optocoupleur (ou
photocoupleur) ?
Réponse :
Il suffit d’une led présente
dans le circuit de commande
et d’une photodiode dans le
circuit de réception. La Led et
la photodiode doivent bien
évidemment travaillés sur la
même longueur d’onde.
L’ensemble est placé dans un
boîtier pour éviter que la
photodiode ne capte la
longueur d’onde d’une autre
source lumineuse.
De quoi parle-t-on quand on
achète une résistance ¼ de
watt ?
Réponse :
On achète une résistance qui
peut supporter 0,25 watt. Audelà, la résistance est
susceptible de se détruire.
Info + : Rappel pour calculer la
puissance : P=U*I tout
simplement !
Qu’est ce qu’une jonction P-N
?
Réponse :
C’est une zone d’un solide
cristallin comme le silicium où
le dopage varie brusquement.
C’est-à-dire que sur une partie
de cette zone, nous rajoutons
des impuretés comme des
électrons (N), et sur l’autre
zone, nous rajoutons des
trous (P)
Question en lien avec l’option EE
Je viens d’acheter un processeur
dont la boîte mentionne la
finesse de gravure ici 32 nm
Qu’est ce que représente la
finesse de gravure d’un
processeur ?
Réponse :
C’est un indicateur
technologique vis-à-vis du
processus de fabrication.
Certains éléments sont plus
grands, d’autres sont plus petits.
Cela représente un cycle
technologique. (Info +) Ce chiffre
multiplie l’ancien par 0.7
(sqrt(½)). Chaque processus de
fabrication double la densité de
composant sur une même
surface.
Question en lien avec l’option
EE
Le concept d’ASIC s’oppose-t-il
à celui de microcontrôleur.
Question en lien avec l’option
NRJ et l’électronique de
commutation
On dit souvent que
l’electronique de puissance,
c’est l’électronique de
commutation. Dans un
microprocesseur, il existe des
milliards de transistor qui
commutent.
Peut-on considérer un
microprocesseur comme un
composant s’intégrant dans le
domaine de l’électronique de
puissance
Réponse :
Non car le microprocesseur ne
change pas la forme de l’énergie
électrique
Lien avec le cours de logique
Un périphérique relié sur un
bus de données doit présenter
une sortie avec quelle
caractéristique ?
Réponse :
Absolument pas. Le
microcontrôleur est un ASIC
voire un SoC (System-onChip).
Réponse :
Une sortie 3 états (ou haute
impédance ou Z).
Quelle est la différence entre
un quartz et un oscillateur ?
Lien avec le cours des
capteurs :
Qu’elle est la différence entre
un « capteur » et un « capteur
intelligent » ?
Réponse :
Le quartz va devoir être excité
par un circuit externe pour
pouvoir osciller, alors que
l’oscillateur doit être
alimenter spécifiquement
pour fonctionner.
info+ : en conséquence,
« souvent mais pas toujours»,
un quartz a 2 pins, un
oscillateur en a 4).
Réponse :
Le capteur intelligent est
capable de communiquer et
de traiter la donnée à l’aide
d’une unité de calcul. En gros
le capteur + un micro
spécifique
Je souhaite faire l’acquisition
d’un signal sur 10 bits à 1 Hz.
Vaut-il mieux utiliser le
convertisseur interne dans
mon processeur ou utiliser un
convertisseur séparé. Justifiez.
Déclinez l’acronyme de FPGA
?
Réponse : Cela dépend
notamment de la proximité
entre le capteur et le
microcontrôleur (parasites). Il
peut être nécessaire de faire
l’acquisition du signal au plus
près du capteur pour limiter
les parasites. Si la carte et le
capteur sont proches, il
vaudra sûrement mieux
utiliser l’ADC interne au
microcontrôleur.
Réponse :
Field Programmable Gate
Array
(Réseau/Champ De Portes
Programmables)
A quoi sert une résistance de
pull-up ?
Réponse :
A amener en un point du circuit
à un potentiel électrique proche
de la tension de l’alimentation
positive.
A l’inverse, on parle de pulldown, quand le signal va vers la
masse.
Sur une capacité chimique, il
est écrit : « 10µF 25V ». Que
signifie ce 25 V ?
Réponse :
La tension maximale
admissible à ses bornes.
Quand on souhaite piloter un
transistor en commutation,
quelle est la particularité de sa
commande quand le transistor
est de type bipolaire par
rapport à un transistor MOS.
Réponse :
Bipolaire : commande en
courant
MOS : commande en tension
Je route un PCB sous Altium.
Mon schéma est correct. Le
DRC valide mon routage.
En conséquence, peut-on
considérer que le routage est
correct ?
Réponse :
Le routage doit répondre aux
contraintes du schéma ET à des
contraintes de placement des
composants ! (mécaniques,
CEM...) Par exemple, les
condensateurs de découplage
doivent être placés au plus
proche des éléments
producteurs et consommateurs.
A quoi sert ce montage ?
Réponse :
C’est un suiveur de tension.
Info+ : Il sert d’étage tampon
en raison de son impédance
d’entrée forte et son
impédance de sortie faible
Que signifie dans une
datasheet la section :
« absolute maximum
ratings ».
Réponse :
C’est l’ensemble des limites
physiques que peut supporter
‘au pire’ le dispositif sans être
endommagé. Par exemple : la
tension max d’alimentation, le
courant max sur l’une des
broches, la température min
ou max de fonctionnement...
Je souhaite repéré la présence
de lumière dans une pièce.
J’utilise une photorésistance
(résistance qui varie en
fonction de l’intensité
lumineuse). Quel schéma
électronique faut-il utiliser
pour mesurer cette variation
de résistance à l’aide de l’ADC
de mon microcontrôleur.
Réponse :
Simplement faire un pont
diviseur, Vcc->Rfixe>Rvariable->masse, le point de
mesure entre Rfixe et
Rvariable
Lorsque l’on relie un signal
susceptible d’être bruité par
l’environnement à une entrée
d’un microcontrôleur, on a pour
habitude de le filtrer :
Calculez l’ordre de grandeur du
temps de réponse lors d’un
changement d’état logique de ce
signal.
Réponse :
R*C = 10k*100n = 1ms
Qu’est-ce qu’une sortie à
collecteur ouvert ?
Qu’est-ce qu’un pont en H ?
Réponse :
Interface électronique servant
à contrôler la polarité aux
bornes d’un dipôle et
d’injecter de la puissance dans
celui-ci via la commande de 4
interrupteurs. Il est
typiquement utilisé pour
commander un moteur.
Traduire en anglais
« collecteur ouvert » dans le
contexte des
microprocesseurs.
Réponse :
Open drain
Réponse :
L’étage de sortie contient un
transistor dont le collecteur
est directement accessible sur
le boitier du composant
comportant une sortie à
collecteur ouvert. La charge
doit alors être rajouté à
l’extérieur du circuit pour
obtenir un niveau logique.
Cette sortie est très utilisée
pour des composants
communicants sur une même
broche (liaison I2C par
exemple) ou réaliser des
fonctions logiques
Donnez deux sigles utilisés
dans les documentations
techniques désignant sur un
schéma électrique la
référence - ?
Réponse :
GND ou VSS
Qu’est-ce qu’une sortie pushpull ?
Qu’est ce qu’une entrée
flottante sur un circuit intégré
?
Réponse :
L’étage de sortie contient
deux transistors
complémentaires permettant
d’imposer le niveau logique ‘0’
ou ‘1’.
Donnez un sigle utilisé dans
les documentations
techniques désignant sur un
schéma électrique la
référence + ?
Réponse :
VDD (parfois VCC)
Réponse :
Une entrée du circuit dont
l’état logique n’est pas été fixé
par un circuit externe.
Citez un logiciel de
simulation électronique et
un logiciel permettant la
réalisation de layout
différent du précédent.
Réponse :
Simulation : psice (ou
cadence ou orcad, c’est la
même chose), Ltspice,
QUCS, proteus
Layout : Altium, orcad,
kicad, Eagle
Je souhaite allumer une led
avec la sortie d’une broche
de mon GPIO (montage
GPIO->Résistance->LED>Masse). Quelle est la
valeur de la résistance de
protection à insérer pour
allumer ma led sachant que
mon GPIO sort du 3,3 V et
que ma LED pour s’allumer
consomme 10 mA sous 1,3
V.
Le choix de cette question
est une brillante idée.
Prenez une LED de
coopération pour
continuer à t’éclairer pour
la suite de votre aventure
puis rejouez !
Sur le schéma ci-dessus,
donnez le nombre de
condensateurs nécessaire
pour filtrer l’alimentation de
ce microcontrôleur
Réponse :
20 (19+1), cela se voit
également sur le nombre de
broche Vdd et Vss
Réponse :
20 ohms = (3.3-1.3)/10m
Avec quoi réalise-t-on un
décodeur d’adresse ?
Réponse :
Avec des circuits logiques
(éventuellement un circuit
logique programmable type
FPGA, CPLD).
Qu’est ce que le pipeline
dans le contexte des
microprocesseurs ?
Qu’est ce que
l’hyperthreading (ou SMT)?
Réponse : circuit
électronique permettant de
traiter les instructions
suivant le principe du travail
à la chaîne pour éviter de
perdre du temps.
Le pipeline permet au
processeur d’anticiper et lui
permet de préparer les
instructions suivantes
pendant l’exécution
courante.
Réponse : création de 2
processeurs logiques dans
un processeur physique, par
exemple en doublant les
registres pour que chaque
processeur logique possède
ses propres registres. Le
reste du cœur micro est
commun. L’objectif est
d’éviter au cœur du
processeur d’attendre
l’information.
Sur le schéma ci-dessus,
donnez le nombre de broches
utilisé pour l’alimentation de
ce microcontrôleur
Réponse :
40 : 20 pour Vdd et 20 pour
Vss
Sur une datasheet, je vois le
signal marqué nRW pour un
signal permettant d’activer
une lecture ou une écriture.
Qu’est-ce que je peux en
déduire concernant la valeur
logique à appliquer pour
effectuer une lecture ?
Réponse :
Il faut un signal au niveau bas.
Le n indique que le signal
Read est actif au niveau bas.
Expliquez l’élément de base
constituant un timer.
Réponse :
C’est un compteur légèrement
plus évolué. (bascules D…)
Info + : On charge une valeur
dans le timer. On peut le
configurer pour qu’il
déclenche une interruption à
l’issue du décompte. On peut
également l’utiliser comme
chronomètre en lisant sa
valeur.
On a relié un bouton poussoir
à notre microcontrôleur et
configuré une interruption
pour qu’elle se déclenche à
chaque appui.
Expliquez comment réaliser
un compteur synchrone 4 bits.
Expliquez ce qu’est un signal
PWM.
Réponse :
4 bascules D, horloges
communes, logique
combinatoire devant chaque
entrée pour préparer avant le
front d’horloge l’état du
compteur suivant sur les
entrées D.
Réponse :
Pulse Width Modulation :
signal à fréquence fixée dont
le temps à l’état haut est
variable (du coup le temps à
l’état bas aussi.) On parle de
variation du rapport cyclique.
J’ai un microcontrôleur 8 bits,
qui possède un convertisseur
analogique numérique 10 bits.
Serais-je limité à 8 bits pour
récupérer la valeur numérisée
par le convertisseur ? Justifiez.
Comment le processeur peut
accéder aux registres d’un
périphérique quand il exécute
notre programme ?
A quelle autre technique
oppose-t-on le mécanisme
d’interruption ?
Réponse :
A la scrutation qui regarde de
manière périodique l’arrivé
d’un évènement.
Réponse :
Non.
Le convertisseur est alors
conçu pour placer les 10 bits
dans deux registres. Si l’on
souhaite récupérer les 10 bits,
la lecture sera faite en deux
temps.
Réponse :
la majorité des registres d’un
périphérique sont accessibles
par une adresse définie dans
l’espace adressable qui est
donnée par la datasheet.
Traduisez en anglais le verbe
scruter (dans le cadre d’une
scrutation d’un évènement) :
Réponse :
to poll
(ou polling pour la scrutation
ou l’action de scruter)
A quoi servent les registres
d’un périphérique ?
Réponse :
les registres d’un
périphériques permettent de
le configurer, de récupérer
des informations ou fournir
des informations.
C’est un moyen permettant de
contrôler un périphérique.
Déclinez l’acronyme GPIO ?
Réponse : General Purpose
Input Output
Entrées / sorties à usage
général...
Quel est le désavantage
d’intégrer un périphérique
dans un microcontrôleur
plutôt que de prendre un
microprocesseur puis de
mettre des périphériques à
côté sur une carte
électronique ?
Réponse : Peu de choix dans le
périphérique car il est imposé
à la construction du
microcontrôleur. Il est parfois
nécessaire d’ajouter un
périphérique spécifique.
Comparez d’un point de vue
électronique les registres du
processeur aux registres d’un
périphérique (par exemple
ceux du GPIO).
Réponse :
D’un point de vue
électronique, c’est la même
chose : un ensemble de
bascules D. Cependant leur
fonction est différente. Pour
un périphérique le registre a
un rôle particulier alors que
dans le processeur il sert à
faire transiter des valeurs.
Que peut-on analyser avec un
débogueur (par ex. PicKIT3) et
la chaine logicielle associée
(par ex. MCC18 + MPLAB) ?
Réponse : on peut analyser les
registres processeur, les
valeurs des cellules mémoire
(dont variables, constantes,
code machine, etc…), les
registres des périphériques
soit en cours d’exécution soit
au moment de l’erreur.
Etc.
µC
5V
Je souhaite relier un bouton
poussoir à un microcontrôleur.
J’ai réalisé le schéma ci-dessus
qui ne fonctionne pas. Que doisje faire ? Justifiez.
Réponse :
Lorsque l’interrupteur est
ouvert, le potentiel de la broche
n’est pas définit. Dans le cas
présenté, il faut ajouter une
résistance de tirage entre la
broche et la masse. (pull-down,
valeurs possibles : 10k ou 100k
par exemple)
Dans un GPIO, il y a trois registres
utilisateur principaux. Donnez le
nom de ces registres sur un
microcontrôleur de votre choix et
la fonction associée à chaque
registre.
Réponse :
Sur le PIC :
PORT : registre qui récupère le
signal sur l’entrée numérique
LAT : registre qui impose le
signal sur la sortie numérique
TRIS : registre qui indique la
direction du GPIO (entrée ou
sortie)
Quel est l’avantage d’intégrer
un périphérique dans un
microcontrôleur plutôt que de
prendre un microprocesseur
puis de mettre des
périphériques à côté sur une
carte électronique ?
Réponse : Meilleure
intégration => optimisation,
de place, des ressources, de la
consomation...
Que puis-je faire en utilisant
un périphérique ADC ?
Réponse : ADC = Analog to
digital converter. Ce
périphérique permet de lire
une valeur analogique et de la
rendre accessible dans un
programme sous la forme
d’une valeur numérique (par
exemple sur 8 ou 10 bits)
Que puis-je faire d’un signal
généré par un périphérique
PWM ?
Réponse : piloter un moteur à
courant continu en faisant sa
vitesse, générer une
sinusoïde, génération d’une
horloge, faire varier l’intensité
moyenne en commandant un
transistor dans une branche
d’un circuit...
Je veux faire des crêpes. Quel
est la quantité de lait et la
quantité de farine pour
réaliser ce mets.
Pour 0,5 litre de lait, la
quantité de farine nécessaire
est :
A- 100 g,
B- 250 g,
C- 500 g,
D- 1 kg
?
Réponse :
B + 3 œufs et un bon coup de
fouet, c’est prêt !
Que génère un périphérique
PWM ?
Réponse : PWM = Pulse Width
Modulation = Modulation de
largeur d’impulsion : c’est un
signal à fréquence choisie,
dont le rapport cyclique est
variable.
(rapport cyclique = durée à
l’état haut / période du signal)
Quelle est/sont la/les
différence(s), s’il y’en a, du
point de vue du processeur,
entre un accès mémoire et un
accès registre de périphérique
?
Réponse :
il n’y en a pas. Le processeur
ne fait pas la différence. Il
accède aux registres des
périphériques comme s’il
s’agissait de simples cellules
mémoires !
Le microcontrôleur que
j’utilise dispose d’une
EEPROM interne. Sachant que
la mémoire programme est
déjà une flash (mémoire non
volatile), quel est l’intérêt
d’une EEPROM ?
Réponse :
Souvent, le programme ne
peut pas modifier lui-même la
flash, il peut alors faire appel à
l’EEPROM pour sauvegarder
des données non volatiles…
dépendantes de l’application
Je suis en cours de
microprocesseurs. Mon
téléphone sonne. Répondre
au téléphone : c’est
A) traiter le téléphone comme
une interruption
B) traiter la sonnerie du
téléphone comme une
interruption
C) traiter l’interlocuteur
comme interruption
D) exécuter un programme
principal
E) une erreur fatale.
Réponse :
B) (et un peu E aussi…)
Question en lien avec
l’électrotechnique
Un moteur brushless est-il vu
comme un capteur ou un
actionneur ?
Réponse :
Un actionneur, puisque c’est
un moteur… Même si bien
souvent, on utilise des
capteurs à effet hall pour bien
le piloter.
Comparez d’un point de vue
fonctionnel les registres du
processeur aux registres d’un
périphérique (par exemple
ceux du GPIO).
Réponse :
Leur fonction est différente.
Pour un périphérique le
registre a un rôle particulier
alors que dans le processeur il
sert à faire transiter des
valeurs.
A quoi sert un périphérique
USART ?
Une led doit-elle être vue
comme un capteur ou comme
un actionneur ?
Félicitation vous venez de
gagner une LED.
Sur une communication série
de 9600 bauds combien de bit
par seconde sont envoyés si le
symbole est un bit dans le cas
présent.
Prenez une LED puis rejouez.
Réponse :
A communiquer en série
suivant un formalisme
synchone ou asynchrone avec
un autre système électronique
Réponse :
Un actionneur.
Qu’est ce que « acquitter
une interruption » ?
Pourquoi les oignons font-il
pleurer ?
Réponse : Lorsqu’une
interruption est levée, le
microprocesseur interrompt
le fonctionnement normal
du programme pour aller
exécuter une routine
d’interruption. Dans cette
routine, il faut acquitter
l’interruption (=baisser le
flag qui a généré
l’interruption).
Sinon, le microprocesseur
retournera en boucle dans
la routine d’interruption !
A) A cause d’une enzyme et du
soufre contenu dans l’oignon
B) Parce que c’est dur à couper
C) A cause de notre glande
lacrymale qui ne supporte pas
l’odeur de l’oignon
D) car la lame du couteau fait
mal à l’oignon et que l’on est
sensible à cela
Réponse A) quand on coupe
l’oignon, une réaction chimique
se forme libérant un gaz irritant
et urticant pour les yeux : le
sulfate d’allyle
Réponse :
9600
Bauds = symbole/seconde soit
ici 9600 bit par seconde
Pour deux systèmes
électroniques qui
communiquent ensemble,
qu’est-ce qui permet aux
deux entités de se
comprendre ?
A quoi sert un périphérique
CAN ?
(ne PAS confondre avec ADC)
Réponse :
Le respect d’un même
protocole de
communication.
Réponse :
à interfacer le microcontrôleur
sur un bus de communication
‘CAN’ (couramment utilisé
dans l’automobile).
A quoi sert un capteur à effet
hall ?
Quel est la traduction anglaise
de « convertisseur numérique
analogique »
Réponse :
Réponse :
A mesurer un champs
magnétique.
DAC : Digital-to-Analog
Converter
J’utilise le convertisseur
analogique numérique de
mon microcontrôleur. Il me
permet d’avoir un quantum
(q) de 10 mV. La
documentation du
constructeur me donne une
valeur convertie à +-0.5q.
Je mesure 105mV avec ma
sonde à oscilloscope. Quelle
est la valeur donnée par mon
convertisseur analogique
numérique ?
Réponse :
Un valeur qui de temps en
temps sera 10 ou 11 (0xA ou
0xB en hexadécimale)
Une liaison série dite nullmodem demande un câble
avec combien de fils au
minimum ?
Réponse :
3 : un signal pour l’émission,
un pour la réception et un
pour la masse.
Deux cartes électroniques
reliées en ZigBee
communiquent-elles de
manière filaire ou non filaire ?
Une souris optique sera
considérée comme un
périphérique interne à un
microcontrôleur ou un
périphérique externe au
microcontrôleur.
Réponse :
Communication non filaire (à
2,45 GHz)
Réponse :
Un périphérique externe
Question en lien avec la
bio :
Un microcontrôleur peut-il
alimenter directement un
périphérique externe en 24V ?
Réponse :
Non, il faut passer par un relai
ou un transistor.
Si vous deviez comparer le
quartz inséré sur une carte
microcontroleur à un
organe du corps humain,
quel serait cet organe.
Réponse :
Le coeur
Comment le processeur
peut accéder au registre
d’un périphérique ?
Sur votre téléphone portable,
citez le nom du processeur
principale (c’est la gamme du
processeur qui est demandé)
A défaut citez le système
d’exploitation de votre
téléphone (mais vous ne
gagnez qu’une led)
Réponse : la majorité des
registres d’un
périphérique sont
accessibles par une
adresse définie dans
l’espace adressable.
Qu’est-ce qu’un « pilote de
périphérique » ?
Si vous n’avez pas de
téléphone portable, changez
de question.
Réponse :
Un passage chez vous dans la
documentation s’impose si vous ne
savez pas… Sinon, regardez
rapidement sur internet
Le pipeline est-t-il un
périphérique du
microprocesseur :
Réponse :
C’est un programme
permettant d’exploiter les
fonctionnalités du
périphérique pour lequel il a
été développé
Réponse :
Non, le pipeline fait parti du
cœur du processeur
Je souhaite accéder à un
registre d’un périphérique 16
bits qui est à l’adresse 0x400.
Je souhaite accéder à un
registre d’un périphérique 32
bits qui est à l’adresse 0x500.
Proposez une déclaration en C
pour déclarer MON_REG qui
donne directement accès à
l’information de ce registre ?
Proposez une déclaration en C
pour déclarer MON_REGISTRE
qui donne directement accès à
l’information de ce registre ?
Réponse :
#define MON_REG (*((short*)
0x400))
Ou : volatile short MON_REG
= (volatile short*) 0x400
Réponse :
#define MON_REGISTRE
(*((int*) 0x500)
Ou : volatile int
MON_REGISTRE = (volatile
int*) 0x500
Un GPU est-il considéré
comme un périphérique ?
Existe-t-il des interruptions
logicielles ?
Réponse :
Réponse :
Oui, il existe des instructions
capables de déclencher le
changement de contexte.
Info+. Ces instructions sont
utiles dans le cadre des
systèmes d’exploitation.
Non, le GPU pour Graphics
Processing Unit est un
processeur spécifique pour le
rendu graphique, rien à voir
avec un périphérique.
Dans mon programme, j’ai
déclaré une variable int i. Par la
suite j’écris :
i=0x30;
i=’0'; //soit 0x30
Suivant la ligne du programme,
comment l’information va-t-elle
être enregistrée en mémoire
pour faire la distinction entre ces
deux lignes?
Réponse : i contient un nombre,
ce nombre est identique entre
les deux lignes. Ce n’est qu’un
formalisme qui fait que l’une ou
l’autre des écritures est
identique. Il n’y a pas de
distinction !
Y’a t’il une différence entre
un accès mémoire en
mémoire volatile et un
accès mémoire en mémoire
non volatile DU POINT DE
VUE du PROCESSEUR ?
Si oui, justifiez.
Réponse :
le processeur ne voit pas la
différence.
Une mémoire ne possède
que des valeurs.
Ces valeurs sont regroupées
par le programmeur suivant
certaines zones.
Donnez deux zones
couramment utilisées.
Réponse :
Zone de variables,
zone de pile,
zone de constantes,
zone de tas,
zone de programme.
Combien de mémoire RAM
y’a t’il dans le PIC18F45k20
?
-> environ 1,5 Kio
-> environ 150 Kio
-> environ 1,5 Mio
-> environ 1,5 Gio
Réponse :
1536 octets… soit environ
1,5Kio
Quelle est la différence entre
bit et Byte ?
Réponse :
1 bit plus petite unité de
mesure en informatique
1 Byte : 1 symbole, souvent
ce symbole est 1 octet
Note : la réponse 1 Byte = 1
octet = 8 bits est acceptée.
J'ai réalisé une carte
électronique avec deux
PIC18F45k20 qui
communiquent ensemble via
leurs entrées/sorties. Un
microcontroleur peut-il
directement accéder à la
mémoire volatile de l'autre
microcontrôleur ?
Réponse : Non !
info + : il faudra établir un
protocole de communication
pour que le premier
microcontrôleur fasse une
demande au deuxième qui est
le seul à accéder à sa mémoire
interne.
void test (char * c)
{
static char init = 0;
if(!init){ init = 1;
*c++;
}
}
Le mot clé static permet d’allouer une
variable de façon permanente en
mémoire. Ainsi, la variable i conserve
sa valeur d’un appel à l’autre de la
fonction.
Quel est l’impact du mot clé static sur
l’exécution des instructions suivant le
if(!init) ?
Pourquoi cette variable est nommée
« init » ?
Réponse :
Sans le mot clé static, if(!init) serait
toujours VRAI. On a choisi le nom init
pour indiquer que ces instructions ne
sont exécutées qu’une seule fois, lors
du premier appel de la fonction !
J’ai une mémoire non
volatile qui commence à
l’adresse 0x0000 0000.
Cette mémoire fait 1 Kio.
Quelle est l’adresse de la
dernière cellule de la
mémoire, écrite en
hexadécimal.
Indice :
2^1 = 0x0002
2^5 = 0x0020
2^10 = 0x0400
Réponse : 1 Kio = 2^10 o,
l’adresse de fin est donc
2^10 -1, soit (0b0100 0000
0000) -1, soit 0x400-1, soit
0x3FF
J’ai une mémoire non volatile
qui commence à l’adresse
0x0000 0000. Cette mémoire fait
4 Kio. Quelle est l’adresse de la
dernière cellule de la mémoire,
écrite en hexadécimal.
Indice :
2^1 = 0x0002
2^6 = 0x0040
2^12 = 0x1000
Réponse :
4 Kio = 2^12 o,
l’adresse de fin est donc :
2^12 -1
= 0b01 0000 0000 0000-1
= 0x1000-1
= 0x0FFF
Est-ce possible de
déterminer, sans avoir ni le
code source, ni d’outils pour
décrypter les instructions, la
localisation (adresses) des
sous-programmes en
mémoire ?
Réponse :
c’est impossible.
Lors de la programmation
d’une carte à microcontrôleur,
que fait la programmateur ?
Quel bus regroupe les
signaux pour que le
processeur signifie à la
mémoire qu’il faut écrire
une donnée ou lire une
donnée ou que la mémoire
indique au processeur
d’attendre l’arrivée de la
donnée.
Réponse :
Réponse :
Il programme la mémoire du
microcontrôleur
Bus de contrôle
Qu’est ce qu’un plan
mémoire (ou mappage
mémoire) ?
Quelle est la différence entre
un plan mémoire et l’espace
adressable ?
Réponse : le plan mémoire
définit l’emplacement des
débuts et fins des différents
boitiers mémoires. Il précise
ainsi l’emplacement des
types de mémoire (volatile,
non volatile).
Réponse :
le plan mémoire contient la
répartition et la disposition
des blocs mémoires alors que
l’espace adressable contient la
répartition et la disposition
des blocs mémoires mais aussi
des périphériques. Les
périphériques possèdent des
registres qui occupent de la
place sur l’ensemble des
cellules qui sont adressables !
Lorsque le processeur réagit
à une interruption, dans
quelle zone mémoire le
processeur va t-il chercher
les nouvelles instructions à
exécuter ?
Réponse :
Dans le vecteur
d’interruption plus
globalement dans le vecteur
d’exception.
Soit la déclaration suivante :
const char tab[19] = {‘j’, ’’’,
’a’, ’i’, ’m’, ’e’, ’ ‘, ’l’, ’e’, ’s’, ’
‘, ’m’, ’i’, ’c’, ’r’, ’o’, ’s’, 0, 1} ;
Après avoir indiqué si cette
ligne était correcte, indiquez
la taille mémoire pris par la
variable tab en mémoire?
Réponse :
Déclaration correcte. Tab
sera en mémoire non
volatile (const) sur 19
octets.
Combien de cellules mémoires
sont utilisées pour coder un
‘int’ sur une architecture
comme le PIC18f45k20 ?
Réponse :
2 o soit 2 cellules.
Info + : la taille du « int » n’est
pas spécifiée par le C :
int >= short >= char
Combien de cellules mémoires
sont utilisées pour coder un
‘char’ sur une architecture
comme le PIC18f45k20 ?
Réponse :
1 o soit 1 cellule.
Info + : la taille du char est
indépendante de
l’architecture. En C,
sizeof(char) renvoie toujours
‘1’, « mais ‘1’ quoi ? » Cela
n’est pas normé. Souvent, c’est
‘1’ octet.
Je développe une application
avec un microcontrôleur qui est
électriquement correctement
connecté à une clé usb.
Puis-je utiliser la clé usb pour :
* enregistrer des mesures et
l’heure (j’ai une RTC) ?
* enregistrer une partie d’un
programme à exécuter par le
processeur ?
Réponse :
Oui dans les deux cas.
void chaine_copier(char * dest, char *
source);
void ma_fonction(void)
{
char chaine1[10] = {‘a’, ‘b’, ‘c’, 0 };
chaine_copier(chaine1 + 2, chaine1);
}
Mon programme ne fonctionne pas.
Pourquoi ?
Réponse :
Oui c’est la même chose.
Prenez une LED puis rejouez.
Réponse :
Il est probable que chaine_copier
écrase le caractère 0 et poursuive sa
boucle sans rencontrer le caractère nul.
Il se peut alors qu’on recopie les
caractères a et b dans toute la
mémoire… !
Question en lien avec l’option
TST :
La notion d’empreinte mémoire d’un
programme est-elle être comparée
avec la notion d’occupation de l’espace
mémoire adressable ?
Félicitation vous venez de
gagner une LED.
Je souhaite enregistrer une
image de 8x8 pixels en niveau
de gris (8 bits). Quel espace va
prendre cette image en
mémoire ?
Réponse :
1 pixel est codé avec 8 bits
d’information, soit 1o.
Ainsi : 8*8 * 8 b = 64*1o = 64 o
Il faut 64 octets ou 512 bits.
Vous venez de lire en mémoire
le mot 0x51E0. Donnez son
équivalent en binaire.
Réponse :
0b1001 0001 1110 0000
La stratégie consiste à
décomposer chaque chiffre
écrit en hexadécimal et de le
convertir en binaire, puis de
mettre les chiffres bout-à-bout
Définissez la notion de
mémoire volatile ?
Définissez la notion de
mémoire non volatile ?
Réponse :
Une mémoire qui perd son
information quand on coupe
l’alimentation.
Réponse :
Une mémoire qui garde son
information quand on coupe
l’alimentation.
J’ai acheté une clé USB de
16 Gio. Mon voisin vient d’en
acheter une de 16 Go, mon
(ma) conjoint(e), une de 16 Gib
et mon colocataire, une de
16 GB.
Qui a la clé USB de plus grande
et de plus petite capacité
mémoire ?
Réponse :
Plus petite : le conjoint
Plus grande : moi
16 Gio = 16*1024*1024*1024 octets
16 Go = 16 GB=16*1000*1000*1000 octets
Souvent 1 Byte (B) = 1 o
16 Gib = 2Gio
Un mot sur une architecture 16
bits prend combien d’octet en
mémoire ?
Réponse :
2 octets (16 bits / 8 bits = 2 o)
Donnez un exemple de
mémoire non volatile.
Réponses possibles :
Mémoire FLASH, EEPROM,
EPROM, PROM, ROM
Le fichier p18f45k20.h contient
les liens vers les définitions des
adresses des différents registres
de périphériques. Je crée un
nouveau projet. Je crée un
nouveau fichier toto.c
Dans ce fichier toto.c je fais appel
à ce fichier. Comment dois-je
écrire l’inclusion de ce fichier
header appartenant au dossier
du compilateur ?
Réponse
#include <p18f45k20.h>
Info + : Les guillemets sont
utilisées pour les fichiers dans le
dossier projet
Donnez un exemple de
mémoire volatile.
Réponses possibles :
DRAM, SRAM
Quelle équipement vous
semble le plus approprié pour
fonctionner avec un PIC18F452
:
-> un routeur Wifi
-> une télécommande ZigBee
-> une ampoule à économie
d’énergie
-> une console de jeu
Réponse :
Une télécommande ZigBee.
L’ampoule nécessite un
microcontrôleur plus léger et
moins cher.
La console de jeu et le routeur
wifi ont besoin d’une plus
grande puissance de calcul.
J’ai une architecture reposant
sur un processeur 8 bits. Le
concept de big endian /
little endian est-t-il toujours
vrai ?
La pile peut-elle contenir des
variables locales d’un sousprogramme ?
Expliquez le codage big
endian. Donnez un exemple
sur le nombre 0x1234ABCD
et rangez-le à partir de
l’adresse 0x100.
Expliquez le codage little
endian. Donnez un exemple
sur le nombre 0x01ABCDEF
et rangez-le à partir de
l’adresse 0x100.
Réponse : l’OCTET de poids
fort d’abord.
Réponse : l’OCTET de poids
faible d’abord (et pas les bits
de poids faibles d’abord) !
Adresse
0x100 : EF,
puis
0x101 : CD,
puis
0x102 : AB,
puis
0x103 : 01
Réponse :
big endian / little endian est
un concept pour ranger
chaque octet. Cependant sur
une architecture 8 bits, il est
possible d’avoir des entiers
codés sur 16 bits. L’ordre de
rangement des données a donc
son importance.
Réponse :
OUI !
Le compilateur GCC choisit
les variables locales qu’il
souhaite mettre dans la pile,
et celle qu’il met dans les
registres...
Sur une architecture ARM
cortex M4, est-ce possible de
lire en mémoire en une
instruction le mot situé à
l’adresse 0x0000 0042 ?
A quoi sert un décodeur
d’adresse ?
Réponse :
Oui c’est possible.
Info+ : Certaines
architectures de processeur
ne peuvent accéder à un mot
dont l’adresse est non
multiple de 4.
Réponse :
A sélectionner précisément
un élément (cellule
mémoire, registre, etc.)
défini dans l’ensemble de
l’espace adressable.
Adresse
puis
puis
puis
0x100 : 12,
0x101 : 34,
0x102 : AB,
0x103 : CD
Combien de cellules mémoires
sont utilisées pour coder un
‘int’ sur une architecture ARM
Cortex M4 ?
Combien de cellules mémoires
sont utilisées pour coder un
‘char’ sur une architecture
ARM Cortex M4 ?
Réponse :
4 o soit 4 cellules soit 1 mot.
Info + : la taille du « int » n’est
pas spécifiée par le C :
int >= short >= char
Réponse :
1 o soit 1 cellule.
Info + : la taille du char est
indépendante de
l’architecture. En C,
sizeof(char) renvoie toujours
‘1’, « mais ‘1’ quoi ? » Cela
n’est pas normé. Souvent, c’est
‘1’ octet.
Pourquoi le pointeur de pile a
une adresse qui évolue de 4
en 4 sur une architecture type
ARM alors que sur une
architecture type 8051, il
évolue de 1 en 1 ?
Réponse :
Car le pointeur de pile permet
d’enregistrer dans la pile des
mots (32 bits). A une adresse est
associé un octet, un mot doit
donc être écrit sur une adresse
multiple de 4.
SP doit varier de 4 en 4 sur une
architecture 32 bits, alors que le
processeur 8051 est une
architecture 8 bits (donc de 1 en
1).
Soit la déclaration suivante :
const char tab[19] = {‘j’, ’’’,
’a’, ’i’, ’m’, ’e’, ’ ‘, ’l’, ’e’, ’s’, ’
‘, ’m’, ’i’, ’c’, ’r’, ’o’, ’s’, 0, 1} ;
Après avoir indiqué si cette
ligne était correcte, indiquez
dans quelle section de la
mémoire doit être rangé ce
tableau ?
Réponse :
Déclaration correcte. Tab
sera en mémoire non
volatile (const).
A quoi sert la MMU (Memory
Management Unit) ?
Réponse :
gestion des adresses mémoires. Ce
composant gère la localisation d’un
programme en mémoire. Ainsi
l’ensemble du programme peut
très bien être localisé à différents
endroits dans la mémoire (adresses
physiques). La MMU donne du
point de vue du processeur, un bloc
contigu d’espace mémoire pour le
programme en exécution (adresses
logiques).
La MMU empêche par exemple une
écriture en mémoire à une adresse
qui n’appartient pas à
l’environnement d’un programme.
Sur une architecture ARM,
détaillez la méthode pour
aller lire le mot à l’adresse
0x5F3C.
Réponse : LDR R0, =#0x5F3C
LDR R1, [R0]
La première pour
enregistrer tout d’abord
l’adresse dans un registre,
puis LDR R1, [R0] pour lire le
mot. Tolérence, MOV R0,
#0x5F3C est accepté même
si dans la réalité, cela ne
marche pas dans la mesure
où l’instruction mov prend
une valeur immédiate de 8
bits + rotation sur 4 bits *2.
Bob Le Ponge, étudiant de
l’ESEO révise sont devoir de
microprocesseurs la vieille. Il
enregistre les informations en
mémoire swap. Sera-t-il
suffisamment paré pour son
devoir sur les
microprocesseurs ? Justifiez
en définissant qu’est ce que
Que fait l’instruction
suivante ?
Réponse :
Non : car c’est une partie du
disque dur qui sert comme
mémoire volatile pour
l’exécution des
programmes.
Réponse :
Elle lit en mémoire le mot
dont l’adresse est donné par
la valeur du registre R5. Ce
mot est ensuite copié dans
le registre R4
LDR R4, [R5]
la mémoire swap ?
typedef struct ma_struct
{
char[10] nom ;
int entier ;
} Tstruct
J’ai une variable « ma_variable »
de type Tstruct qui est déjà
déclarée. J’ai déjà enregistré
dans R0 l’adresse de
ma_variable par LDR R0,
=ma_variable.
Indiquez la ou les instructions
assembleur sur un cortex M4
pour initialiser
ma_variable.entier à 200.
Réponse :
MOV R1, #200
STR R1, [R0, #10]
Quelle est la différence entre
l’instruction MOV et
l’instruction LDR ?
Réponse :
L’instruction MOV travaille
uniquement sur les données
dans les registres (dans le
processeur) alors que LDR
permet d’accéder à
l’information qui est dans la
mémoire, en dehors du
processeur.
Sur une architecture ARM
Cortex M4, j’ai écris un
programme qui contient
exactement 200 instructions
toutes écrites sur 32 bits.
Quelle est la taille de mon
programme ?
Réponse :
32 bits * 200 = 6400 bits
= 800 o
Exprimez : 4 Mio en Kio puis
en octet.
Réponse :
4Mio = 4* 1024 Kio =
4*1024*1024 o
Pourquoi existe-t-il une
mémoire cache sur le
processeur ?
Réponse :
Pour que le processeur puisse
accéder aux données plus
rapidement. (info+ : Bien
souvent la mémoire est bien
plus lente que la capacité du
processeur à exécuter les
instructions. Sans cette
mémoire cache, il passe
beaucoup de temps à
attendre que les informations
soient disponibles.)
A quoi sert un DMA ?
Réponse :
Le DMA (direct memory acces)
permet de faire des transferts
mémoire sans passer par le
processeur (accès direct à la
mémoire).
Qu’est-ce qu’une mémoire
cache ?
Réponse :
Vous avez un trou de
mémoire.
Mémoire temporaire servant
de tampon entre avec une
autre mémoire afin de
diminuer le temps d’accès à la
donnée.
Revenez sur votre dernière
case et effectuez l’action
associée à cette case.
Info+: Elle est souvent réalisée
avec une technologie SRAM
(bascule faite avec 4-6
transistors)
Une mémoire EEPROM
demande 10 µs pour écrire sa
donnée. Sachant que le
processeur ARM Cortex M4
cadencé à 100MHz doit copier
un tableau d’entier en SRAM
de 100 éléments, donnez une
approximation du temps
passer par le processeur pour
faire cette copie ?
Réponse :
En gros, le processeur va
passer son temps à attendre
que l’EEPROM écrive son
information du coup,
~100*10µs soit 1ms
Je souhaite accéder à un
registre d’un périphérique 8
bits qui est à l’adresse 0x1000.
Proposez une déclaration en C
pour déclarer MON_REGISTRE
qui donne directement accès à
l’information de ce registre ?
Réponse :
#define MON_REGISTRE
(*((char*) 0x1000)))
Ou : volatile char
MON_REGISTRE = (volatile
char*) 0x1000
La caractéristique de mon PC
est la suivante :
* Socket LGA1155
* Dual Core
* Fréquence : 2.3 GHz
* Cache L2 : Taille : 2 x 256 KB
* Cache L3 : Taille : 3 MB
Que signifie Cache L2 et Cache
L3 ?
Réponse :
C’est la dénomination de 3
niveaux de mémoire cache. La
troisième a une taille de 3Mo.
Qu’est ce que la cryptographie
asymétrique ou à clé publique
?
Réponse :
Méthode de chiffrement ou
l’expéditeur chiffre son
message avec une clé
publique (diffusée à tous) et le
destinateur le décode avec
une clé privé (confidentielle)
Question spéciale, thématique
option NRJ :
Qu’est ce que la directive
RoHS ?
Réponse : Restriction of the
use of certain hazardous
substance in electrical and
electronic equipment.
Règlementation qui vise à
réduire l’utilisation de
substance dangereuse comme
le plomb, le mercure, le
cadmium, le chrome, etc. et
bientôt le PVC dans les
équipements électriques et
électroniques.
Qu’est-ce qu’une table de
hachage ?
Réponse :
Une structure de données
associant une clé (numéro
avec un élément). L’accès à
l’élément se fait toujours via
sa clé qui est disponible via
une fonction de hachage.
Quelle est l’unité la plus petite
entre l’octet et le bit ?
Réponse :
1octet = 8bits =>le bit est le
plus petit
Qu’est-ce qui différencie le
servomoteur à rotation
continue d’un moteur à
courant continue ?
Réponse :
Le servomoteur peut
s’opposer à une contrainte à
l’état de repos contrairement
au moteur à courant continue.
Info+ : le seromoteur est un
moteur asservi en position. La
commande n’est pas la même
(train d’impulsion contre un
signal PWM variant de 0 à
100% pour un moteur CC)
Comme le montre ces
données, les processeurs
graphiques sont plus puissants
que les processeurs principaux
mis dans les ordinateurs.
Pourquoi ne les retrouvons
nous pas encore comme
processeur principal
d’ordinateur ?
Réponse :
Les processeurs graphiques sont
spécifiques pour certaines tâches.
Un système d’exploitation serait
plus lent à exécuter sur un
processeur graphique
Comment comparer la
puissance de calcul de deux
processeurs différents d’une
même architecture ?
Réponse :
On peut utiliser l’unité
« MIPS » (million
d’instructions par seconde) ou
« FLOPS » (floating point
operations per second).
Pour comparer deux
processeurs de deux
architectures différentes, ces
unités ne suffisent pas.
Sur des processeurs puissants/
complexes, c’est souvent par
la mesure que l’on compare
deux processeurs
(benchmark).
Est-il possible de
reprogrammer un
microcontrôleur par
l’intermédiaire d’une simple
communication série ?
Réponse :
Oui, il faut utiliser un
bootloader qui utilise la liaison
série.
On entend parler des
architectures 8 bits, 16
bits 32 bits et maintenant
64 bits ?
Est-il possible de créer une
architecture 12 bits, 31
bits… (qui n’est pas une
puissance de 2) ?
Pourquoi les fabricants de
processeur ne font-ils pas
tout de suite des
architectures de 1024 bits
(par exemple) ?
Réponse :
Oui, c’est possible. Il existe
d’ailleurs des architectures
12 bits, 24 bits, 31 bits...
Réponse :
problème de coût et de
capacité d’intégration des
éléments sur une puce.
Réponse : ARM (société ARM),
x86 (sociétés Intel, AMD, Via,
etc.), PowerPC (IBM,
Motorola), 68000 (autres
dérivés : coldfire, dragonball)
(Motorola), Z80 (Zilog), Sparc
(Sun), MIPS, DEC Alpha
(Compac et Hewlett Packard),
Itanium (Intel), Crusoe
(Transmeta), Super H
(Hitachi), MCore (Motorola)
Soit deux microprocesseurs 32 bits
identiques. Le premier est cadencé à 1
MHz et le deuxième à 40 MHz. En
considérant ces deux
microprocesseurs dans leur
environnement (avec de la mémoire,
des périphériques, etc.), peut-on dire
que notre programme ira 40 fois plus
vite avec une fréquence de 40 MHz ?
Justifiez.
En mini-projet C j’ai écrit un
super jeu (bataille navale,
etc…). Est-ce que je peux me
servir directement du fichier
généré à la compilation pour
le mettre sur la carte du miniprojet microprocesseurs.
Justifiez.
Réponse : Oui et non. Oui si on
considère que les instructions et les
informations qui sont dans la mémoire
et les périphériques n’ont pas de
temps de latence, c’est-à-dire que
l’information arrive tout de suite. Dans
la réalité, le processeur passe du
temps à attendre l’instruction ou la
donnée provenant de la mémoire ou
du périphérique. Le programme ira
donc plus vite, mais pas 40x plus vite.
Réponse : Non car le
programme écrit lors du miniprojet C est écrit pour que le
programme s’exécute sur une
architecture x86. Or la carte
simtec, c’est une architecture
ARM, différente donc.
http://en.wikipedia.org/wiki/31-bit
Qu’est ce qu’un
FPU (floating point unit) ?
Réponse :
unité qui effectue des
opérations sur des
nombres à virgule
flottante, comme l’UAL le
fait avec des nombres
entiers.
Soit deux
microprocesseurs 32 bits
de deux constructeurs
différents. Ils sont tous les
deux cadencés à 100 MHz.
Les performances serontelles les mêmes ? Justifiez.
Réponse :
Non, cela dépend de
l’architecture de chaque
processeur.
Donnez 3 familles de
microprocesseurs. On ne
demande pas les gammes
dans les familles.
Qu’est ce que
l’overclocking ?
Réponse :
L’overclocking consiste à
augmenter la fréquence
de cadencement d’un
processeur dans le but
d’accélérer le traitement
des instructions.
Mais rappelez vous que le
but n’est pas toujours
d’aller vite…
Qu’est ce que la transmission
de données à flux tendu dans
le cadre d’une communication
RS232 asynchone ?
Réponse :
Dès qu’une trame a transmis
son bit de stop, la ligne
recommence aussitôt une
nouvelle trame sans avoir de
temps pour laisser la ligne à
l’état de repos.
Question en lien avec le cours
d’architecture avancé dans
ASTRE ou EE :
Existe-t-il une différence entre
un SOC (System on Chip) et un
microcontrôleur ?
Réponse :
Un SOC est système complet
pour répondre à une application
(avec plusieurs microcontrôleur
par exemple et d’autres
périphériques), alors que le
microcontrôleur pourra dans
certain cas ne répondre qu’à une
partie de l’application. Il est
donc parfois possible de
considérer le microcontrôleur
comme SOC
Quel est la différence
entre la pile et le tas (stack
vs heap) ?
Quel est le préfixe décimal de
10^21 ? (ex : le préfixe
décimal de 10^3 est ‘kilo’)
Réponse :
La pile contient les
variables locales non
statiques d’une fonction.
Le tas contient les
variables allouées
dynamiquement.
(malloc… !)
Question en lien avec
l’informatique
Réponse :
Le zetta
Une architecture x86 est-elle
une architecture 16 bits, 32
bits, 64 bits ?
Qu’est ce qu’un système
d’exploitation vis-à-vis du
processeur ?
Réponse :
Réponse : C’est un simple
programme
Les trois réponses ! Cette
architecture définie par Intel
ne dépend pas de la largeur
du bus de données.
Qu’est ce qu’une
modulation de type PDM
(Pulse-density
modulation) pour un
signal audio ?
Réponse :
Une modulation qui code
un signal analogique en
signal numérique
Qu’est ce qu’un contrôleur
ethernet ?
Réponse :
C’est un circuit spécifique
utilisé pour la gestion du
protocole ethernet
Qu’est-ce que le bit banding ?
Réponse :
C’est une manière d’accéder à
un bit particulier dans l’espace
adressable grâce à un alias sur
un mot.
Dans le chapitre power de la
documentation de mon
microcontrôleur, il parle de
« Programmable Voltage
Detector (PVD) ».
You can use the PVD to monitor
the VDD power supply by
comparing it to a threshold
selected by the PLS[2:0] bits in
the PWR_CR register.
Réponse :
A alerter le microprocesseur
quand la tension arrive en
dessous d’un certain seuil afin
de prévenir l’éventuel arrêt de
l’alimentation.
Qu’est ce que l’USB on the GO
(USB OTG) ?
L’ARM Cortex M4
mentionnent trois bus en plus
du bus de contrôle et du bus
d’adresse. Ils sont nommés :
I-Bus, D-Bus et un S-Bus. En
mettant le S-Bus (System Bus)
de côté à quoi servent les
deux autres d’après vous :
Réponse :
Norme USB permettant au
périphérique connecté d’agir
comme un maître ou un
esclave. (Host ou Device)
Qu’est-ce qu’un périphérique
DCMI (Digital camera
interface) ?
Réponse :
Un périphérique destiné à
gérer un module caméra
Réponse :
I-bus : bus pour les
instructions,
D-Bus : bus pour les données
Comment s’appelle le
contrôleur d’exception
rattaché à l’ARM Cortex M4 ?
Réponse :
NVIC : nested vector interrupt
controller
N°4
N°3
N°1
N°2
Comment obtenir un nombre
pseudo aléatoire sur un
système simple à processeur ?
Quels sont les termes anglais
désignant le bit de poids fort
et le bit de poids faible sur un
mot.
Dans une communication
série entre deux ordinateurs,
expliquer pourquoi il faut
prendre un câble croisé plutôt
qu’un câble droit.
N°6
N°5
Pourquoi existe-t-il une
convention AAPCS défini par
ARM ?
Dans une communication I2C,
expliquez pourquoi il faut des
résistances de tirage sur les
lignes de communication.
Quelle représentation déclarative
peut-on donner de la pile ?
(Comment faire en C pour déclarer
cette zone de pile ?)
Réponse:
La pile est un tableau de variable.
Info + :
Si l’on voulait déclarer la pile en C :
int stack[1024];
int * stack_pointer = stack+1024;
N°8
N°7
Qu’est ce qu’une contrainte
d’alignement dans le contexte
des microprocesseurs
(Question spéciale,
thématique option ASTRE.)
Quelle est la différence entre
un système rapide et un
système temps réel ?
N° 10
N°09
Que permet de faire un
contrôleur d’interruption ?
Quelle caractéristique
différencie un programme
écrit en java par rapport à un
un programme écrit en C++, C
ou assembleur ?
N°14
N°13
Décrivez, avec les grandes
lignes, deux manières pour
qu’un processeur puisse
exécuter plus d’instructions
par seconde ?
J’ai une mémoire non volatile
qui commence à l’adresse
0x0000 (bus @ sur 16 b).
Cette mémoire fait 1 Kio.
Quelle est l’unique équation
du signal logique CS (chip
select) qui permet de
sélectionner ce bloc mémoire.
Le signal CS est valide sur
niveau haut.
Indice :
2^1 = 0x0002
2^5 = 0x0020
2^10 = 0x0400
N°12
N°11
Combien de cases comporte le
jeu clac ton proc ?
Nom
Citez 8 périphériques d’un
microcontrôleur et 4
grandeurs physiques qui
peuvent être mesurées par
des capteurs analogiques ou
numériques.
Prénom
Points
Position
Prénom
Points
Position
Nom
N°4
N°1
Comment obtenir un
nombre pseudo aléatoire
sur un système simple à
processeur ?
Réponse :
Certains microcontrôleurs
disposent d’un périphérique
pour générer un nombre
aléatoire. Dans le cas contraire,
il faut se débrouiller en lisant la
valeur d’un compteur lorsque
l’utilisateur effectue une action
(appuie bouton par exemple)
N°3
N°2
Quels sont les termes anglais
désignant le bit de poids fort
et le bit de poids faible sur un
mot.
Réponse :
MSB et LSB pour Most/Least
Significant Bit)
N°6
N°5
Pourquoi existe-t-il une
convention AAPCS défini par
ARM ?
Réponse :
Pour assurer l’interopérabilité
des différents programmes
écrits par les programmeurs et
générés par les compilateurs.
(Norme sur l’utilisation des
registres, le passage de
paramètre…)
Dans un communication série
entre deux ordinateurs,
expliquer pourquoi il faut
prendre un câble croisé plutôt
qu’un câble droit.
Réponse :
Comme il faut relier le signal de
transmission du circuit 1 sur le
signal de réception du circuit 2
et inversement et que les deux
circuits sont identiques, il est
nécessaire d’utiliser un câble qui
croise les fils !
N°7
Dans une communication I2C, expliquez
pourquoi il faut des résistances de tirage
sur les lignes de communication.
Qu’est ce qu’une contrainte
d’alignement dans le contexte
des microprocesseurs
Réponse :
Le bus I2C est un protocole de
communication entre
plusieurs circuits
électroniques. Pour éviter les
conflits électriques, les sorties
sont à collecteur ouvert,
(transistor avec le collecteur
relié directement sur la
broche du circuit. Il faut donc
une charge externe
(résistance de pull-up) pour
que le circuit soit polarisé et
rendre le dialogue possible
Réponse :
Contrainte sur l’adresse d’un
élément en mémoire par
rapport à son type et à
l’architecture du processeur.
Par exemple, certains
processeurs 32 bits ne
peuvent accéder à une
variable de type int sur 32 bits
qu’à la condition d’avoir
l’adresse de la variable
multiple de 4
Quelle représentation déclarative
peut-on donner de la pile en C ?
(Comment faire en C pour déclarer
cette zone de pile ?)
Réponse:
La pile est un tableau de variable.
Si l’on voulait déclarer la pile en C :
int stack[1024];
int * stack_pointer = stack+1024;
//stack_pointer évolue en
décrémentant sa valeur lors d’un
empilement => il faut commencer à
l’adresse + taille pour que lors du
premier empilement nous écrivions
correctement dans la pile
N°8
(Question spéciale, thématique
option ASTRE.)
Quelle est la différence entre un
système rapide et un système
temps réel ?
Réponse :
Les deux notions ne sont pas
comparables.
Un système temps réel se
caractérise par la prise en
compte de contraintes
temporelles dont le respect est
aussi important que l'exactitude
du résultat.
Plus qu'aller "vite", il faut
exécuter chaque portion de code
"au bon moment".
N°12
Citez 8 périphériques d’un
microcontrôleur et 4 grandeurs physiques
qui peuvent être mesurées par des
capteurs analogiques ou numériques.
N° 10
N°09
Que permet de faire un
contrôleur d’interruption ?
Réponse :
Il gère l’ensemble des
sources d’interruption qui
arrive à lui.
N°13
Décrivez, avec les grandes
lignes, deux manières pour
qu’un processeur puisse
exécuter plus d’instructions
par seconde ?
Réponse :
Pipeline, finesse de
gravure, optimisation du
programme, cadence
processeur, architecture
superscalaire,
multiprocesseur
Quelle caractéristique
différencie un programme
écrit en java par rapport à un
un programme écrit en C++, C
ou assembleur ?
Réponse :
Un programme en java
s’exécute sur une machine
virtuelle s’affranchissant
théoriquement d’écrire un
programme spécifique pour
un type de processeur et
système d’exploitation.
N°14
J’ai une mémoire non
volatile qui commence à
l’adresse 0x0000 (bus @ sur
16 b). Cette mémoire fait 1
Kio. Quelle est l’unique
équation du signal logique
CS (chip select) qui permet
de sélectionner ce bloc
mémoire. Le signal CS est
valide sur niveau haut.
Réponse :
\A15.\A14.\A13\.A12.\A11.\
A10
N°11
Combien de cases comporte le
jeu clac ton proc ?
Réponses :
95 cases.
Réponse :
ADC, DAC, GPIO, UART, TIMER,
PWM, RTC, SPI, I2S, SDIO, USB,
DMA, contrôleur LCD, contrôleur
caméra, ethernet, I2C, CAN, LIN,
générateur de nombre aléatoire,
comparateur…
Capteurs : contact, angle,
contrainte, courant, champ
magnétique, déplacement,
distance, lumière niveau, pression,
température, force, son...

Documents pareils