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 (maximum30MHz)
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 linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !