Syst`
emes temps r´
eel et syst`
emes embarqu´
es
Elements d’architecture des ordinateurs
Jacques Gangloff, Lo¨
ıc Cuvillon
12 f´
evrier 2008
Bibliographie
Bibliographie
– Livres :
–Architecture et technologie des ordinateurs, P.Zanella et Y.Ligier, Dunod,
1998.
–Architecture de l’ordinateur, 5`
eme ´
edition, Andrew Tanenbaum, Pearson
education, 2005. Une r´
ef´
erence : par le cr´
eateur de l’OS minix, extrˆ
emement
d´
etaill´
e.
–Syst`
emes d’exploitation, 2`
eme ´
edition, Andrew Tanenbaum, Pearson educa-
tion, 2003.
– WEB :
–http ://www.intel.com
–http ://en.wikipedia.org
– Iconographie : wikip´
edia et A. Tanenbaum
Acronymes
Acronymes
– DMA : Direct Memory Access
– FSB : Front Side Bus
– INT : Interruption
– IRQ : Interrupt ReQuest
– ISR : Interrupt Service Routine
– MMU : Memory Management Unit
– OS : Operating System
– PIC : Programmable Interrupt Controleur
– RAM : Random Access Memory
– RTC : Real Time Clock
Note
Le Propos
– quelques ´
el´
ements d’architecture des ordinateurs pertinents pour les syst`
emes
temps r´
eel et embarqu´
es (en particulier `
a base de Linux).
1
Plan
Plan
Table des mati`
eres
1 Le temps : Horloge et Timers 2
1.1 L’horloge temps r´
eel .......................... 2
1.2 Les timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Interruption 4
2.1 Contrˆ
oleur d’interruptions . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Partage d’interruptions . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 M´
emoire 7
3.1 Mode r´
eel et prot´
eg´
e .......................... 7
3.2 Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 Pagination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Les entr´
ees-sorties (I/0) : adressage 14
4.1 I/O par port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2 I/O mapp´
ees en m´
emoire . . . . . . . . . . . . . . . . . . . . . . . . 15
Rappel : Architecture des cartes-m`
eres
Rappel : Architecture des cartes-m`
eres
Northbridge
– contrˆ
oleur m´
emoire (rafraˆ
ıchissement, s´
election,.)
– bande passante ´
elev´
ee
– compatibilit´
e limit´
e avec 1 type de m´
emoire et 1 CPU
– terminologie Intel : Graphics and Memory Controller Hub (GMCH)
Southbridge
– d´
edi´
e aux bus de moindres d´
ebits
– peut inclure : DMA, RTC, PIC
– terminologie Intel : I/O Controller Hub (ICH).
2
1 Le temps : Horloge et Timers
1.1 L’horloge temps r´
eel
L’horloge temps r´
eel ou Real-time Clock (RTC)
– quartz 32.768 kHz (maximum≈30MHz)
– alimentation : batterie lithium ou supercondensateur
– avantages :
– ind´
ependante du reste du syst`
eme (1 utilisation : r´
eveil programm´
e)
– sauvegarde de l’heure et du jour en absence d’alimentation
– inconv´
enients :
– consultation lente (I/O)
– r´
esolution faible (ms : milliseconde)
Circuit int´
egr´
e RTC
Puce southbridge (RTC inclus)
3
1.2 Les timers
Les timers
Programmable Interrupt Timer (PIT)
– compteurs programmables en mode one-shot ou p´
eriodique
– r´
esolution temporelle : µs
– un des compteur est utilis´
e comme ”timer syst`
eme”
– le timer syst`
eme g´
en`
ere l’INT de plus haute priorit´
e : l’INT timer (IRQ 0)
– Ex : puce intel 825x, inclus dans le southbridge `
a l’adresse I/O : 0x40-43
Time Stamp Counter (TSC)
– compteur (registre) 64 bits interne au CPU ix86
– incr´
ementation de 1 `
a chaque signal d’horloge CPU
– 190 ans pour le remplir `
a 3GHz, r´
esolution : nanosecondes (ns)
– accessible par une instruction processeur (asm) ”RDTSC”
Timers
Linux : usage des timers
– variable kernel xtime
– initialis´
ee `
a partir de la Real Time Clock
– fr´
equence de rafraˆ
ıchissement 1000Hz
– usage : gettimeofday()
– variable kernel jiffies
– variable 32 bits
– incr´
ement´
ee `
a chaque interruption timer (100 ou 1000Hz pour linux, d´
efini `
a
la compilation du kernel)
– utilis´
ee par le noyau et pour la fr´
equence de r´
eordonnancement des threads
– usage : void init timer (struct timer list* timer) et scheduler tick()
– registre TSC
– la meilleur r´
esolution (ns)
– usage : rtdsc(low,high), lecture en 2 variable 32 bits du TSC
– utilis´
e par le Linux temps r´
eel Xenomai sur architecture intel386
2 Interruption
Interruption
D´
efinition d’une interruption mat´
erielle
– signal sur une broche (INT) du CPU d´
eclenchant l’ex´
ecution d’une routine
– notification au CPU d’´
ev´
enements asynchrones en provenance des p´
eriph´
eriques
(ex : touche enfonc´
ee, fin d’un transfert m´
emoire)
–´
economie pour le CPU du temps de scrutation des p´
eriph´
eriques
4
CPU
RAM
(controleur)
I/O (1)
(controleur)
I/O (2)
CPU
RAM
(controleur)
I/O (1)
(controleur)
I/O (2)
Entrée−Sortie programmée avec attente de disponibilité Entrée−Sortie programmée avec interruption
INT
INT 1
INT 2
PIC
Scrutation périodique par le CPU
de l’état du périphèrique
Interruption
Exemple : convertisseur analogique-num´
erique S´
eliatec
– une interruption est utilis´
ee pour notifier au CPU que la conversion de la tension
analogique en valeur num´
erique est achev´
ee
1. la conversion d´
emarre par une ´
ecriture fictive sur le port d’un des convertisseurs
analogique-numeriques
2. une interruption est g´
en´
er´
ee par la carte seliatec en fin de conversion
3. le CPU notifi´
e, ex´
ecute l’ISR correspondant :
– lecture d’un registre de la carte indiquant quel CNA a fini la conversion ; cette
lecture d´
esactive l’interruption
– lecture de la valeur de la tension dans un registre de la carte
2.1 Contrˆ
oleur d’interruptions
Contrˆ
oleur d’interruptions
Gestion des interruptions
– d´
efinition de priorit´
es pour arbitrer les concurrences
– pr´
esentation d’une interruption `
a la fois au CPU
– n´
ecessit´
e de masquer des interruptions et de les m´
emoriser (buffer)
→Utilisation d’un contrˆ
oleur d’interruption (PIC)
Note : Temps de r´
eponse (latence) `
a une interruption
– minimum : fonction du contrˆ
oleur d’interruption et sa configuration
– maximum : fonction de l’OS (taille code critique non-interruptible + priorit´
e
d’ordre sup´
erieur qui retarde l’ex´
ecution)
–un OS temps r´
eel doit garantir un maximum
– ordre de grandeur de la latence (micro-secondes)
OS moyenne max min ´
ecart-type
Linux 2.6.12 15.8 179.9 15.2 1.3
Linux temps r´
eel (xenomai) 13.9 53.2 13.2 0.5
5
1 / 16 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!