Vous êtes sur la page 1sur 22

Syst` emes temps r eel

Elements darchitecture des ordinateurs

Bibliographie
Support de cours de Jacques Gangloff et de Loc Cuvillon
Bibliographie Architecture, Syst` eme dexploitation : dition, Andrew Tanenbaum, Pearson Architecture de lordinateur, 5` eme e education, 2005. par le cr eateur de lOS minix dition, Andrew Tanenbaum, Pearson educa Syst` emes dexploitation, 2` eme e tion, 2003. Larchitecture intel x86 : Intel Architecture Software Developers Manuel, document disponible sur le site web dintel. http ://en.wikipedia.org

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

1
1.1

La base mat erielle dun syst` eme dexploitation


le CPU (dont lintel x86)

Architecture Von Neumann

programmes et donn ees dans la m eme m emoire instruction et donn ees de m eme taille (8-16-32-64 bits) instructions manipulables comme des donn ees programme peut cr eer/modier du code (compilateur,virus) Inconv enients : temps acc` es m emoire = limitation des performances vuln erabilit e (virus, buffer overow) Le CPU : Unit e centrale dex ecution Vue fonctionnelle un registre du CPU pointe sur ladresse de linstruction en cours : Instruction pointer (IP ou PC, CO) Instructions restreintes : arithmetique (ADD), copie (MOV), saut (JMP), comparaion (COMP)
CPU
IP: 0x08F04F76

Mmoire

Recherche

de linstruction + Dcodage

Instructions Adresse + Donnes

Recherche des oprandes + Chargement Mot (Inst.,donne) Excution

(Oprandes) + Pile

Rangement des rsultats + Incrmentation de IP

Le CPU : Unit e centrale dex ecution


CPU
Registres IP: SP: CS: : Instruc. Pointer Stack pointer code segment pointer registre usage gnral Adresse Instructions + Donnes (Oprandes) Unit logique et artihmtique (ALU) Mot (Inst.,donne) + FPU (Floating Point Unit) + Pile (Stack)

Mmoire

Unit de contrle (chemin de donnes)

taille des instructions : xe ou variable (ix86) les op erandes : un registre, une valeur, un mot en m emoire taille des registres = architecture 8/16/32/64bits. IP : sur ix86=registre EIP, sur ARM=r15.

Le CPU : lintel 8086 le 8086 processeur 16 bits registres de 16 bits = 64Ko de m emoire (216 adresses) 20 mais bus dadresse de 2 bits = 1Mo (220 addresses) acc` es complexe au 1Mo adressables : un registre segment de 16bits offset : ladresse m emoire sur 16bits adresse nale= segment x16 + offset

8086 (1978 - 320$) Le CPU : architecture intel : ix86 Historique

CPU 8086 Intel 286 Intel386TM Intel486TM Pentium


R

Date 1978 1982 1985 1989 1993 1995

MIPS 0.8 2.7 6.0 20 100 440

Freq. 8 MHz 12.5 MHz 20 MHz 25 MHz 60 MHz 200 MHz

Transistor 29 K 134 K 275 K 1.2 M 3.1 M 5.5 M

Registre 16 16 32 32 32 32

Data bus size 16 16 32 32 64 64

M emoire adress. 1 MB 16 MB 4 GB 4 GB 4 GB 64 GB

cache None --8KB L1 16KB L1 16KB L1 256KB L2

Pentium Pro

Le CPU : Unit e centrale dex ecution ix86 : 286, 386, 486, Pentium (586) Mode r eel : mulation du 8086 au d e emarrage (compatibilit e) 1 Mo accessible Mode prot eg e (activ e par le bit Protection Enable dans le registre CR0) : offre des m ecanisme mat eriel avanc es pour les OS pagination, segmentation de toute la m emoire m ecanisme pour le multit ache niveau de privil` eges dex ecution (4)

80286 (i286) Le CPU : Unit e centrale dexecution le pentium II (P6) Architecture 32 bits mais : bus de donn ees de 64 bits bus dadresses de 33 bits mais m emoire align ee sur 8 octets ( 3 bits faibles de ladresse toujours = 000) 233+3 adresses = 64 Go accessibles

1.2

la carte m` ere

Carte m` ere moderne Northbridge contr oleur m emoire (rafra chissement, s election,.) lev bande passante e 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).

Gestion de la m emoire

La m emoire Le van neumann bootlenech : le temps dacc` es m emoire temps dacc` es m emoire : SDRAM (environ 35 ns*) ` 0.1 us (2 a ` 100 cycles) temps dex ecution dune instruction : 2ns a disproportion constante ` venir solution : m emoire cache (co uteuse) et pr ediction des instructions a Les diverses m emoires Les temps dacc` es Les registres les m emoires caches (SRAM sur le CPU : 10 ns ) L1 (instruction/data) et L2 compos ees de bascule RS stockage prospectif des instructions la m emoire principale (DDR2 SDRAM : 30 ns) compos e de micro-condensateurs n ecessite un rafraichissement latence : Column ACcess, Raw to Column Delay and Ras Precharge d ebit max en octets (lectures contig ues) : fr equence du FBS x bus size (bit) /8 la m emoire secondaire (disque dur : 10ms (SSD 150ns))
Rapidit Cot

Registres Mm. cache Mmoire principale Mmoire secondaire Quantit

2.1

la m emoire et les processus

M emoire requise par un processus le processus un processus : un programme en cours dex ecution un seul programme peut avoir plusieurs processus (ex ecutions) le processus ne sex ecute quen m emoire principale les zones m emoires du processus une pour le code (.text) : les instructions une pour les donn ees (.data) : variables initialis ees

une pour les allocations dynamiques : un tas m emoire (heap) une pile dex ecution (stack)
Memory
Stack 0xbfffffff (3Go1)

Donnes

Code 0x

La pile dex ecution (stack) Une zone m emoire espace m emoire accessible par un pointer sur le haut dune pile (SP) usages : 1. pile dop erandes (micro-contr oleur, rare sur PC) 2. pile de stockage des variables locales des proc edures (appel fonction) une pile dop erandes

push A push B ADD


B A SP A SP A+B SP

La pile dex ecution (stack) Pile des variables locales des proc edures solution au probl` eme des fonctions r e-entrantes (appels r ecursifs) : car les instructions de la proc edure sont g ees ` chaque appel r or a ecursif, une nouvelle adresse est n ecessaire pour les variables locales

La pile dex ecution (stack)


main() { ... toto(a); ... } toto(i) { k=i+1; toto2(k);}

0x128: CALL 0x234 (toto) 0x129: ... 0x180: ... (le code de toto2) .....: ... 0x220: RET 0

0x234: 0x235: 0x236: 0x237:

... (le code de toto1) INC R1 PUSH R1 CALL 0x180 (toto2)

Compteur ordinal

call toto

call toto2

Temps

local var. local var. IP ret. : 0x238 k: param k=a+1: local var. IP ret. : 0x129 a: param. SP SP k=a+1 IP ret. : 0x129 a: Param 1

SP

valeur retour k=a+1: local var. IP ret. : 0x129 a: param.

SP

aprs CALL toto

aprs CALL toto2

aprs RET dans toto2

2.2

la m emoire dans un contexte multit ache

Gestion de la m emoire ` un syst` Probl ematiques li ees a eme multi-t ache cohabitation de nombreux programmes dans une m emoire limit ee protection de lint egrit e du code et donn ees de chaque processus (emp echer le programme dun utilisateur daller modier le code du syst` eme ou dun autre utilisateur) Probl ematique de la r eallocation dynamique le compilateur produit un code A sans savoir o` u il sera ex ecut e en m emoire ` une proc ` hypoth` ese : la premi` ere instruction est un appel a edure (fonction) a ladresse absolue 100 dans le chier binaire. ` ladresse 100K, linstruction sautera a ` ladresse absolu si le binaire est charg ea 100 (o` u peut se trouver le code dun autre utilisateur). Ladresse o` u sauter devrait tre 100K+100. en fait e 8

` ladresse 250K, linstruction doit sauter en de m eme, si le binaire est charg ea 250K+100.

2.3

Segmentation
000

Gestion de la m emoire : la r eallocation dynamique

Code A

900K Systme dexploitation 1M

OS mono-t ache : pas de probl` eme ` ladresse 0 et de taille maximale limit un seul processus toujours charg ea ee (900K, ici) pas de n ecessit e de r eallocation (translation dadresses) car charg e en 0. cras quand le processus est ni, il est e e par le code du suivant Gestion de la m emoire : la r eallocation dynamique
000 Processus H (libre) Processus A 280K Processus B 900K Systme dexploitation 1M Mmoire aprs un temps de fonctionnement Systme dexploitation 1M Retassement par rallocation dynamique (libre) 900K 10K 000 Processus H Processus A 100K Processus B 580K 270K 70K

OS multi-t ache plusieurs t aches charg ees en m emoire aux adresses o` u il y a de la place n ecessite un m ecanisme de r eallocation pour d eplacer les programmes tout en permettant leur ex ecution correcte (nouvelles adresses des proc edures dans le code) le retassement permet de supprimer la fragmentation et lib erer un bloc m emoire contigu e 9

R eallocation dynamique et segmentation M ecanisme de translation dadresses lors du chargement en m emoire dun processus, ladresse de d epart, o` u il est charg e, est stock ee dans le registre base ` toute adresse a ` laquelle fait r a ef erence le processus (offset), on ajoute la valeur du registre de base : adresse effective = base + adresse relative au d ebut du processus (offset) ainsi, lors du d eplacement dun processus en m emoire : le code binaire est d eplac e sans aucune modication ` jour avec la nouvelle valeur le registre base est mis a on utilise l equation pr ec edente pour le calcul des adresses effectives R eallocation dynamique et segmentation M ecanisme de translation dadresses ` ladresse 100 dans le binaire illustration avec lappel dune proc edure stock ee a
Mmoire

(1)

100K Code appel procdure 1 CALL 100

CALL 100

base

Table de segment Processus A

base 100K

100,1K

procdure 1

Excution procdure 1 adresse effective 100,1K

CALL 100,1K

R eallocation dynamique et segmentation M ecanisme de protection m emoire risque de d ebordement (involontaire ou mal intentionn e) dun processus dans la zone m emoire dun autre processus taille du segment m emoire du processus stock ee dans un registre limite pour chaque adresse effective, on teste si : adresse effective < base + limite en cas de tentative de d epassement : interruption SIGSEGV
Mmoire

100K Code appel procdure 1 CALL 100

Processus A

CALL 100

base

Table de segment Processus A

limite 130K

base 100K

100,1K

procdure 1

Excution procdure 1 adresse effective 100,1K Test scurit adresse < base+limite

CALL 100,1K

230K Ok

Processus A

limite

10

Gestion de la m emoire : Segmentation m ecanisme pr esent e pr ec edemment de r eallocation et protection m emoire : la segmentation (cas 1 seul segment) `: la segmentation, plus g en eralement consiste a d enir un ou plusieurs segments pour un programme (code, donn ees, pile,..) ` chaque segment associer des droits (lecture/ ecriture) a viter la duplication de code en m partager des segments communs pour e emoire (ex : 2 ex ecution de l editeur ed (ED1 et ED2) )
Mmoire physique Processus A ED1 Table de segment 1200 Code

limite Code 2465 2432 Donnes A

base 1200 3620 3620

Donnes A

Processus B ED2 limite Code 24650 5230 Donnes B base 1200 7430 Donnes B 7430

2.4

Pagination

Gestion de la m emoire : M emoire virtuelle Apport de la segmentation la segmentation permet ais ement de faire coexister plusieurs programmes en m emoire (r eallocation) avec des protections ad equates tre la segmentation cause une fragmentation externe de la m emoire qui peut e corrig ee p eriodiquement par un processus tr` es co uteux en temps CPU : le retassement de la m emoire Limitation la segmentation napporte pas de solutions efcaces pour ex ecuter un programme (ou plusieurs) n ecessitant plus de RAM que celle disponible ` un instant donn or, a e, seules quelques parties du programme et de ses donn ees tre stock sont n ecessaires en m emoire, le reste pouvant e e en m emoire secondaire (disque dur) la m emoire virtuelle : m ethode permettant dimpl ementer la strat egie ci-dessus avec utilisation de la m emoire secondaire Gestion de la m emoire : M emoire virtuelle Principe le CPU (et lOS) travaille sur une m emoire virtuelle importante un d emon ou une unit e de gestion de la m emoire (MMU) se charge de : ` un instant donn mise en m emoire physique des donn ees n ecessaires a e copie temporaire des donn ees sur le disque pour lib erer de la m emoire physique translation dadresses entre ladresse virtuelle acc ed ee par le CPU et ladresse m emoire r eelle de la donn ee

11

Mmoire virtuelle 4Go (2^32)

Mmoire secondaire Disque dur

Mmoire physique (RAM) 0 MMU Adresse virtuelle (32 bits) Bus donnes 0 32Ko (2^15)

Adresse relle Bus adresse mmoire

CPU

M emoire virtuelle : Pagination Pagination : une technique de m emoire virtuelle d ecoupage dun espace dadressage virtuel de grande dimension (2m adresses) en pages de petite taille (2p bits) galement en pages d ecoupage de la m emoire physique (2n adresses, n m) e une [adresse m emoire] est d ecoup ee en : [num ero de page | position dans la page (offset)] ` une table des pages virtuelles de 2mp entr ees stocke les informations li ees a chaque page virtuelle : un ag indiquant si la page virtuelle est en m emoire physique ou sur le disque si en m emoire, ladresse physique de la page ` un instant donn dans la cas o` unm:a e, il est forc ement impossible davoir toutes les pages virtuelles charg ees en m emoire physique M emoire virtuelle : Pagination Exemple m emoire virtuelle : 4Go (adresses de 32 bits) m emoire physique : 32Ko (adresses de 15 bits) taille de page : 4Ko (12 bits dadresses) donc : 8 pages de m emoire physique disponibles 220 pages de m emoire virtuelle nombres dentr ees table de pages : 220

12

Page

Virtual addresses

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

61440 65535 57344 61439 53248 57343 49152 53247 45056 49151 40960 45055 36864 40959 32768 36863 28672 32767 24576 28671 20480 24575 16384 20479 12288 16383 8192 12287 4096 8191 0 4095 (a) Page frame 7 6 5 4 3 2 1 0 (b) Bottom 32K of main memory Physical addresses 28672 32767 24576 28671 20480 24575 16384 20479 12288 16383 8192 12287 4096 8191 0 4095

M emoire virtuelle : Pagination Exemple (suite) MMU : translation dadresses virtuelles de 32 bits vers 15 bits 12 bits pour loffset dans la page de 4Ko Table des pages : ` me ` la 3e ladresse virtuelle demand ee correspond a page virtuelle ` me dapr` es la table, elle est d ej` a en m emoire (ag=1) et sotck ee dans la 6e /8 page physique
15-bit Virtual page Page table Present/absent bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 110 Memory address Output register 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 20-bit virtual page 32-bit virtual address 12-bit offset

Input register

(source : Tanenbaum)

M emoire virtuelle : Pagination Exemple (n) illustration : utilisation optimale de la m emoire physique toutes les pages de RAM occup ees par divers programmes

13

Unit e de Gestion de la m emoire (MMU) circuit imprim e distinct ou inclus dans le processeur circuit d edi e acc el erant fortement les translations et tests sur les adresses une logique importante (jusqu` a 30% de la surface du processeur) au niveau mat eriel, elle contient : m emoire d edi ee pour les tables de pages et registres (base, limite) logique de conversion des adresses virtuelles en adresses physiques logique de calcul des adresses de type base + offset logique de test de d epassement de limite dun segment

Gestion de la m emoire : Conclusion Pagination et Segmentation 2 m ethodes pour optimiser et automatiser la gestion de la m emoire (protection, occupation m emoire) segmentation et pagination utilis ees simultan ement sous linux (un segment de programme = plusieurs pages en m emoire virtuelle) segmentation et pagination sont temporellement non-d eterministes : ` partir du disque (p d efauts de pages : il faut charger la page a eriph. lent) (solution : appel syst` eme bloquant une page critique en RAM) retassement : liberation dun bloc contigu e de m emoire (process lent.) M emoire lin eaire (at memory) ` la m syst` eme sans MMU : acc` es direct a emoire physique lin eaire ` une avantage : d eterminisme temporelle (programme toujours en m emoire a adresse immuable) inconv enient : d eveloppement difcile pour un syst` eme multi-t ache (pas de protection m emoire, relocation)

Exceptions (et Interruptions)

Exceptions (et Interruptions) 14

D enition dune exception arr et temporaire du ux normal des instructions ex ecut ees par le processeur an ` un e v de r epondre a enement exceptionnel ou externe Exception synchrone (Exception) : r esultat dune instruction ex ecut ee par le processeur g en erant une erreur arithm etique : division par 0, debordement (overow) m emoire : erreur dalignement, m emoire insufsante, erreur manipulation pointeur appel syst` eme (LINUX) : par linstruction INT 0x80, une application requiert un service de lOS. ` un e v Exception asynchrone (Interruption) : associ ee a enement issu dun p eriph erique temps : interruption marquant lexpiration dun timer ou un tick (p eriode) dhorloge op erations du p eriph erique : donn ees pr etes, action effectu ee Interruption Interruption mat erielle signal sur une broche (INT) du CPU d eclenchant lex ecution dune routine notication au CPU d ev enements asynchrones en provenance des p eriph eriques (ex : touche enfonc ee, n dun transfert m emoire) conomie pour le CPU du temps de scrutation des p e eriph eriques
Scrutation priodique par le CPU de ltat du priphrique INT CPU CPU

RAM RAM I/O (1) controleur

PIC INT 1 I/O (1) controleur I/O (2) controleur

I/O (2) controleur

EntreSortie programme avec attente de disponibilit

EntreSortie programme avec interruption

Interruption Exemple : convertisseurs analogique-num erique S eliatec une interruption est utilis ee pour notier au CPU que la conversion de la tension analogique en valeur num erique est achev ee

criture ctive sur le port dun des convertisseurs 1. la conversion d emarre par une e analogique-numeriques de la carte

15

INT 2

2. le CPU est libre pour dautres t aches 3. une interruption est g en er ee par la carte seliatec en n de conversion 4. le CPU noti e, ex ecute lISR correspondant : lecture dun registre de la carte indiquant quel CNA a ni la conversion ; cette lecture d esactive linterruption lecture de la valeur de la tension dans un registre de la carte

3.1

Contr oleur dinterruptions

Contr oleur dinterruptions Gestion des interruptions d enition de priorit es pour arbitrer les concurrences ` la fois au CPU pr esentation dune interruption a n ecessit e de masquer des interruptions et de les m emoriser (buffer) Utilisation dun contr oleur dinterruption (PIC) ` une interruption Note : Temps de r eponse (latence) a minimum : fonction du contr oleur dinterruption et sa conguration maximum : fonction de lOS (taille code critique non-interruptible + priorit e dordre sup erieur qui retarde lex ecution) un OS temps r eel doit garantir un maximum ordre de grandeur de la latence (micro-secondes) cart-type OS moyenne max min e 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 Contr oleur dinterruptions Un contr oleur programmable dinterruptions (PIC) : le 8259 tre mis en cascade (deux 8259 en utilis e par le PC IBM et ses successeurs, peut e cascade = 15 INT) 1 registre de masque, 1 dinterruption activ ee, 1 dinterruption servie programmation/lecture via le bus de donn ees du CPU (DO-D7) priorit e par ordre d ecroissant (0(+prioritaire),2,...,7(-))
INT INTA RD WR A0 CS D0-D7 8259A Interrupt controller IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 Clock Keyboard

CPU

Disk Printer

+5 v

Vecteur dinterruption ` ex adresse m emoire du programme a ecuter (ISR) pour traiter linterruption ` une adresse xe une table des vecteurs dinterruption est stock ee en m emoire a ou variable selon les architectures

16

` un index dans la table des vecteurs les exceptions et interruptions correspondent a dinterruptions Exemple architecture i386 un registre du processeur IDTR (INT Descriptor Table Register) stocke en permanence ladresse en m emoire de la table des vecteurs
O 1 DPL: 0 si Exception ou INT hardware 3 si INT logiciel (INT) Addresse ISR: le vecteur dinterruption Segment Memoire: la zone memoire Type Type DPL DPL Adresse ISR Adresse ISR Segment Memoire Segment Memoire

Vecteur dinterruption : d etermination


RAM

Interruption PIC Table des vecteurs

Programme interrompu

Interruption non masquee Exception Correspondance avec index dans table vecteur ISR Code

Exception et interruption Traitement complet sauvegarde du contexte ( etat actuel du processor) En g en eral, dans la pile dex ecution de la tache en cours chargement du vecteur dinterruption dans le registre PC ex ecution de linstruction du PC (ex ecution de lISR) recharger contexte ant erieur ( etat du processeur avant INT) reprise ex ecution du programme traitement rapide, changement de contexte minimal effectu e par le mat eriel Exception et interruption Interruptions imbriqu ees interruptions prioritis ees tre interrompu par un ISR li ` une INT + prioritaire ISR peut e ea ISR est g en eralement execut e avec son interruption masqu ee pendant lexecution risque de stack overow

17

application utilisateur

Utilisateur

INT 4

INT 1

Noyau

3.2

Partage dinterruptions

Signaux dInterruption : sur front ou niveau Edge sensitive interruption


V periph 1 periph 2

t ligne INT1

actif sur un front du pulse sensible au bruit, pertes par masquage temporaire ou recouvrement de 2 INT requiert : capture par une bascule ip-op norme du bus ISA

Level sensitive interruption


V periph 1 periph 2

t ligne INT2 fin traintement int

actif sur un niveau actif (niveau haut) tant que linterruption nest pas acquitt ee ind ependance au bruit, immanquable norme du bus PCI

Signaux dInterruption : Partage de lignes dinterruption ` 15 interruptions est classique (2x8259 en cascade) conguration a or, plus de p eriph. que dinterruptions partage des lignes dINT Interruption : Partage de lignes dinterruption Conclusion sur le partage dune ligne dinterruption par n p eriph. augmentation du temps de traitement des interruptions en n2 gestion des interruptions plus complexe Nouvelles approches

18

supprimer les lignes dinterruptions partag ees APIC : Advance Programmable Interrupts Controller ` 64 interruptions chaque processeur poss` ede un local APIC (LAPIC) de 24 a jusqu` a 8 I/0 APIC collectent les interruptions et les renvoient vers les LAPIC (8x 24-64 interruptions possibles) permet de partager des interruptions entre multiprocesseurs, exible message-signalled interruptions supprime les lignes physiques dinterruption sur la carte-m` ere requ ete envoy ee par un message court sur un m edium unique (un peu comme Ethernet) le message contient un identiant du p eriph erique qui a g en er e une interuption (Ex : PCI-Express (bus s erie avec des trames)

Le temps : Horloge et Timers

La gestion du temps Planication dactions dans le futur travaux p eriodiques (r eordonnancement des t aches, pooling) `e ch travaux a eances (timer d ecr ement e jusque 0) Timers l mat eriels : composant e ectronique (quartz), g en erateur dINT, s. logiciels : registres d ecr ement es, r eduction charge processeur

4.1

Lhorloge temps r eel

Lhorloge 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 lheure et du jour en absence dalimentation inconv enients : consultation lente (I/O) r esolution faible (ms : milliseconde)

Circuit int egr e RTC

19

Puce southbridge (RTC inclus)

4.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 lINT de plus haute priorit e : lINT timer (IRQ 0) ` ladresse I/O : 0x40-43 Ex : puce intel 825x, inclus dans le southbridge a Time Stamp Counter (TSC) compteur (registre) 64 bits interne au CPU ix86 ` chaque signal dhorloge CPU incr ementation de 1 a ` 3GHz, r 190 ans pour le remplir a esolution : nanosecondes (ns) accessible par une instruction processeur (asm) RDTSC

4.3

Les timers
RAM timer INT PIT CPU Timer ISR announce_timer_tick retour de lINT

Utilisation de linterruption timer

ordonnanceur Timers logiciels Taches

Timers Linux : usage des timers variable kernel xtime ` partir de la Real Time Clock initialis ee a fr equence de rafra chissement 1000Hz usage : gettimeofday() 20

variable kernel jifes variable 32 bits ` chaque interruption timer (pour linux, a ` d ` la compilation incr ement ee a eni a 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

Les entr ees-sorties (I/0) : adressage


interaction fondamentale entre CPU et p eriph eriques change entre registres du contr un e oleur dun periph. et le CPU mat eriel impliqu e : bus, chipset, contr oleur de p eriph eriques criture. instructions n ecessaires : adressage, lecture et e 2 strat egies dadressage diff erentes : port d edi e ou mappage en m emoire
Espace memoire et E/S separees 0xFFFF memoire E/S mappees en memoire 0xFFFF memoire Espace dadressage hybride 0xFFFF

Entr ees-sorties

ports d E/S O O

ports d E/S 0xFF

5.1

I/O par port

I/O par port ` un port de la sortie I/O du CPU indique que ladresse sur le bus correspond a ` une adresse m p eriph. et non pas a emoire instructions CPU d edi ees : IN, OUT (asm) ou inb,outb (langage C) Northbridge d eroute la requ ete vers le Southbridge si la sortie I/O du CPU est active (sinon vers la m emoire) adresses de ports d enies par la carte m` ere (Super I/O contr oleur)
CPU Address Bus 0x3F8 NorthBridge IO/M Memory

I/O S I/O controller Serial Port

21

5.2

I/O mapp ees en m emoire

I/O mapping une partie des adresses m emoires (virtuelles) est r eserv ee pour les entr ees-sorties vers les p eriph eriques toutes les lectures/ ecritures sur cette plage dadresses sont redirig ees vers le southbridge (p eriph.) sur chipset Intel : adresses entre TOLUD et 4Go (chipset spec.)
CPU Address Bus 0xFF4A NorthBridge Data Bus 0x0000
TOLUD<0xFF4A<0xFFFF

0xFFFF Memory

PCI device controller South bridge

I/O par ports et mapp ees en m emoire Comparatif I/O port tre utilis +adressage s epar e : toute la plage dadressage peut e ee pour la m emoire +instruction sp ecique : lisibilit e code -n ecessite du hardware suppl ementaire et une broche sur le CPU ` petit bus dadressage int eressant sur architecture a I/O mapp ee en m emmoire +CPU ne requiert pas de logique pour les ports (prix,simplicit e) ` un acc` +instruction identique a es m emoire (RISC) - occupe des adresses m emoires ( eventuellement virtuelles) sur archi 32 bits, peu de probl` emes dadressage limit e Sous Linux/ix86 : cohabitation des 2 modes dadressage (pci) Note : Les canaux DMA DMA : Direct memory Access tre consid les canaux DMA peuvent e er es comme des p eriph eriques chacun de ces p eriph eriques permet de r ealiser des op erations dentr ees-sorties et de d elester ainsi le CPU de ce travail le CPU initialise alors les param` etres du transfert (source, destination, nombre doctets) le DMA lui signale la n du transfert par interruption

22

Vous aimerez peut-être aussi