Вы находитесь на странице: 1из 24

Qu'est-ce qu'une interruption ?

Puisque le processeur ne peut pas traiter plusieurs informations simultanment (il traite une information la fois, le multitche consiste alterner des morceaux d'instructions de plusieurs tches diffrentes), un programme en cours d'excution peut grce une interruption tre momentanment suspendu, le temps que s'excute une routine d'interruption. Le programme interrompu peut ensuite reprendre son excution. Il existe 256 adresses d'interruption diffrentes. Une interruption devient une interruption matrielle lorsqu'elle est demande par un composant matriel de l'ordinateur. En effet, il existe dans l'ordinateur de nombreux priphriques. Ceux-ci ont gnralement besoin d'utiliser les ressources du systme, ne seraitce que pour communiquer avec lui... Ainsi, lorsque ceux-ci ont besoin d'une ressource, ils envoient parfois au systme une demande d'interruption pour que ce dernier leur prte son attention. Ainsi, les priphriques ont un numro d'interruption, que l'on appelle IRQ (Interruption request, ce qui signifie requte d'interruption). A titre d'image, chaque priphrique tire une ficelle relie une cloche pour signaler l'ordinateur qu'il veut qu'il prte attention lui. Cette "ficelle" est en fait une ligne physique qui relie le slot la carte-mre. Pour un emplacement ISA 8 bits par exemple, il y a 8 lignes IRQ (Interruption Request Line) qui relient le slot ISA 8 bits la carte-mre, c'est--dire IRQ0 IRQ7. Ces IRQ sont contrls par un contrleur d'interruption qui permet de "donner la parole" l'IRQ ayant la plus grande priorit. Pour les slots 16 bits, les IRQ 8 15 ont t ajouts, il a donc fallu ajouter un second contrleur d'interruption, la liaison entre les deux groupes d'interruption se fait par l'intermdiaire de l'IRQ 2 relie l'IRQ 9 (et appele cascade). La cascade vient donc en quelque sorte "insrer" les IRQ 8 15 entre les IRQ 1 et 3 :

La priorit tant donne par ordre d'IRQ croissant, et les IRQ 8 15 tant insres entre les IRQ 1 et 3, l'ordre de priorit est donc le suivant : 0 > 1 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 3 > 4 > 5 > 6 > 7

Qu'appelle-t-on DMA ?
Des priphriques ont rgulirement besoin d'"emprunter de la mmoire" au systme afin de s'en servir comme zone de tampon (en anglais buffer), c'est--dire une zone de stockage temporaire permettant d'enregistrer rapidement des donnes en entre ou en sortie.

Un canal d'accs direct la mmoire, appel DMA (Direct Memory Access soit Accs direct la mmoire), a ainsi t dfini pour y remdier. Le canal DMA dsigne un accs un emplacement de la mmoire vive (RAM) de l'ordinateur, repr par une adresse de dbut (ou RAM Start Address en anglais) et une adresse de fin . Cette mthode permet un priphrique d'emprunter des canaux spciaux qui lui donnent un accs direct la mmoire, sans faire intervenir le microprocesseur, afin de le dcharger de ces tches. Un ordinateur de type PC possde 8 canaux DMA. Les quatre premiers canaux DMA ont une largeur de bande de 8 bits tandis que les DMA 4 7 ont une largeur de bande de 16 bits. Les canaux DMA sont gnralement assigns comme suit :

DMA0 - libre DMA1 - (carte son)/ libre DMA2 - contrleur de disquettes DMA3 - port parallle (port imprimante) DMA4 - contrleur d'accs direct la mmoire

(renvoi vers DMA0)


DMA5 - (carte son)/ libre DMA6 - (SCSI)/ libre DMA7 - disponible

Adresses de base
Les priphriques ont parfois besoin d'changer des informations avec le systme, c'est pourquoi des adresses mmoire leur sont assignes pour l'envoi et la rception de donnes. Ces adresses sont appeles adresses de base (les termes suivants sont galement parfois utiliss : ports d'entre/sortie, ports d'E/S, adresse d'E/S, adresses de ports d'E/S, ports de base</ital>, ou en anglais I/O address qui signifie Input/Output Address, littralement Adresse d'entre - sortie). C'est par l'intermdiaire de cette adresse de base que le priphrique peut communiquer avec le systme d'exploitation. Il ne peut donc exister qu'une adresse de base unique par priphrique. Voici une liste de quelques adresses de base courantes :

060h - clavier 170h/376h - contrleur IDE secondaire 1F0h/3F6h - contrleur IDE primaire 220h - carte son 300h - carte rseau 330h - carte adaptatrice SCSI 3F2h - contrleur de lecteur de disquettes

3F8h - COM1 2F8h - COM2 3E8h - COM3 2E8h - COM4 378h - LPT1 278h - LPT2

Tous ces lments sont toutefois transparents pour l'utilisateur moyen, c'est--dire qu'il n'a pas s'en proccuper.

Pourquoi y a-t-il des conflits matriels ?


Une interruption est donc une ligne reliant un priphrique avec le processeur, l'interruption est matrielle lorsqu'elle est demande par un composant matriel du PC. C'est le cas, par exemple, lorsqu'une touche a t frappe et que le clavier veut attirer l'attention du processeur sur cet vnement. Mais les 256 interruptions ne peuvent pas toutes tre demandes comme des interruptions matrielles. Les diffrents priphriques appellent toujours des interruptions bien prcises. Ainsi, lors de l'installation de cartes d'extension, il faut veiller, au moment de la configuration, ce que la mme interruption ne soit pas utilise par deux priphriques diffrents. En effet, si deux priphriques ont le mme IRQ, le systme ne saura pas quel matriel il doit donner la main ... le systme se bloque ou fonctionne anormalement ... on appelle a un conflit matriel. Un conflit matriel ne se produit pas uniquement pour deux priphriques ayant la mme interruption matrielle, il peut aussi y avoir un conflit lorsque deux priphriques ont la mme adresse d'entres/sorties ou sont assigns aux mmes canaux DMA.

Comment configurer les IRQ des priphriques


L'IRQ d'une carte peut donc tre modifi, car il faut lui allouer un numro d'IRQ non utilis par un autre priphrique.

Sur les anciens priphriques il est fix grce des jumpers (cavaliers) prsents sur la carte. Sur les cartes rcentes (comportant un BIOS Plug & Play), le paramtrage des ressources (IRQ, DMA, Adresses d'entre-sortie) se fait grce un petit utilitaire (souvent sous DOS) fourni avec la carte rseau (il s'appelle gnralement setup.exe, install.exe, ezconf.exe, config.exe, ...) il permet de modifier logiciellement les valeurs de l'IRQ, DMA, ...

Il faut gnralement dsactiver le mode plug & play pour pouvoir modifier les paramtres manuellement.

Enfin, de nombreuses cartes sont paramtrables loisir (il est possible d'affecter une valeur d'IRQ sous Windows). C'est notamment le cas de la plupart des cartes sons.

Il n'est pas toujours vident d'arriver trouver des ressources pour tous les priphriques, voici donc les ressources dj utilises et qui ne peuvent donc pas tre assignes vos cartes d'extension :

IRQ 0 1 2 3 4 5 6 7 8 9

Priphrique Horloge interne clavier contrleur d'interruptions programmable Renvoi vers les IRQ 8 15 port de communication COM2/COM4 port de communication COM1/COM3 libre contrleur de disquettes port imprimante LPT1 CMOS (Horloge temps rel) libre

10 libre 11 libre 12 port souris PS2/libre 13 processeur numrique de donnes (Coprocesseur mathmatique)

14 contrleur de disques durs primaire (IDE) 15 contrleur de disques durs secondaire (IDE)

Comme on peut le remarquer, les ports COM1 et COM4 ainsi que les ports COM2 et COM3 utilisent les mmes interruptions. Cela peut paratre illogique dans la mesure o une mme

interruption ne peut pas tre utilise par deux priphriques. En ralit il est possible d'utiliser le port COM1 ainsi que le port COM4 (ainsi que le port COM2 et le port COM3) condition que ceux-ci ne soient pas actifs simultanment. Dans le cas contraire l'ordinateur peut se bloquer ou avoir un comportement anormal.

Rsoudre les conflits matriels


Lorsque vous vous trouvez face un problme que vous pensez relatif la configuration matrielle de votre machine, la premire chose faire est de tenter de l'isoler. Cela signifie tenter d'liminer toutes les variables possibles, gnralement en ouvrant la machine, et, en tant petit petit tous les lments susceptibles de provoquer un conflit, ou bien de les isoler par voie logicielle (dans votre systme d'exploitation), jusqu' la dcouverte de l'lment responsable.

Description vulgarise
De nombreux ensembles de circuits lectroniques spcialiss placs dans les ordinateurs assurent chacun une fonction bien prcise, par exemple grer l'affichage l'cran ou bien l'activit d'un disque ou d'une interface rseau. Ils sont dits spcialiss car ils sont incapables de raliser d'autres fonctions que celles pour lesquelles ils sont conus, tandis que le processeur principal (UCT) reste leur chef d'orchestre et le carrefour des communications. Les composants de chaque ensemble se trouvent d'ordinaire rassembls sur une carte d'extension ou sur une zone de la carte-mre. La plupart de ces ensembles spcialiss ne peuvent assurer seuls toutes les fonctions ncessaires leurs missions. Donc ils sollicitent parfois l'assistance du processeur principal, ne serait-ce que pour fournir ou obtenir des informations issues d'autres lments de la machine. Pour ce faire, le processeur peut intervalles rguliers interroger chacun d'eux afin de dterminer s'il a besoin d'aide, par exemple afin de fournir ou bien d'obtenir des informations. Ces interrogations rptes et souvent inutiles le distraient de sa mission qui consiste excuter les programmes de l'utilisateur. De surcrot la fraction des ressources du processeur principal constamment mobilise par ces interrogations augmente avec le nombre et la puissance des ensembles spcialiss. Divers moyens techniques pargnent au processeur ces interrogations priodiques en fournissant aux ensembles spcialiss un moyen d'attirer son attention n'importe quel moment afin qu'il les assiste, donc en ne le distrayant de l'excution des programmes de l'utilisateur qu'au besoin. Pour cela certaines pattes (contacts physiques) du processeur se trouvent relies des pistes lectriques le reliant aux ensembles spcialiss. Chacun de ces derniers peut s'y manifester en modifiant le niveau logique de la ligne afin de requrir de l'aide, donc d'inviter le processeur prendre les dispositions ncessaires. Pour rpondre une requte le processeur devra :

prserver le contexte d'excution du programme en cours afin de pouvoir, terme, en reprendre l'excution ; lire en mmoire l'emplacement du programme destin grer l'vnement particulier (appel gestionnaire d'interruption ou routine de gestion d'interruption (interrupt handler en anglais)), pr-tabli lors de la prise en charge, par l'ordinateur, de l'ensemble spcialis (souvent lors de l'amorage) ; excuter la routine, court programme grce auquel le processeur interagira avec l'ensemble spcialis qui le sollicite afin de satisfaire ses attentes ; restaurer le contexte d'excution du programme interrompu ; et enfin continuer excuter ce dernier.

Notes :

cette squence d'vnements peut survenir trs frquemment (plusieurs dizaines de milliers de fois par seconde) ; des composants auxiliaires (en particulier un circuit gestionnaire d'interruptions) assistent le processeur lors de ces traitements ; lorsque plusieurs interruptions surviennent simultanment, le processeur (voire le systme d'exploitation, lorsqu'il fournit la routine de gestion) dispose de moyens de dterminer leurs priorits respectives donc l'ordre de prise en compte.

Les pistes lectriques dlivrant ces informations au CPU sont appeles lignes d'interruption ou lignes d'IRQ. Dans un lointain pass chacune se trouvait associe, un moment donn, un seul ensemble spcialis mais des astuces permettent prsent de laisser plusieurs ensembles solliciter le CPU par le biais de la mme ligne d'IRQ, mme de faon simultane. Le sigle IRQ dsigne tout la fois le concept mme d'interruption de l'excution sur requte tierce ainsi que l'une de ces requtes.

Les IRQ sur les architectures compatibles IBM PC


Les micro-ordinateurs compatibles avec l'IBM PC utilisent un microprocesseur compatible avec l'Intel 8088, lequel dispose d'un tableau de 256 interruptions programmables. Parmi celles-ci, 16 sont directement dclenches par des vnements d'entre-sortie externes. Cellesci sont nommes IRQn, n allant de 0 15. Les interruptions restantes sont des interruptions logicielles. Les priphriques (clavier, souris, imprimante) doivent pouvoir fonctionner en mme temps, or le microprocesseur n'est capable d'excuter qu'une interruption un moment donn. Le contrleur d'interruption ou contrleur d'IRQ a donc pour tche de srialiser les appels d'interruption vers le microprocesseur. Certains priphriques tant plus critiques que d'autres, la srialisation des appels d'interruption est influence par le numro d'IRQ qui fixe une priorit. Ainsi l'IRQn est prioritaire sur l'IRQn+1. Dans le cas des premiers micro-ordinateurs Compatibles PC, les circuits intgrs 8259A et 8259B grent ces requtes.

IRQ et bus ISA historique

chaque IRQ est associe un priphrique fix par la conception de l'architecture ; 4 d'entre elles restant disponibles pour des priphriques supplmentaires. La mise en place d'un priphrique (par exemple, d'une carte d'extension) non prvu par ce schma ncessite deux tapes : configurer le matriel (souvent en positionnant des cavaliers sur la carte), afin de lui indiquer quelle ligne utiliser, et configurer le logiciel afin de lui indiquer quelle ligne est utilise par la carte. Une inadquation entre la configuration du logiciel et du matriel, ou un conflit matriel entre deux priphriques configurs tous deux pour utiliser la mme ligne, est souvent cause de dysfonctionnement. Les IRQs sur les premiers IBM PC/XT taient dfinies comme suit (par ordre de priorit dcroissante) :

IRQ 0 : Horloge systme IRQ 1 : Clavier IRQ 2 : Second contrleur d'interruption (PC/AT) IRQ 3 : Port srie (COM2/COM4) IRQ 4 : Port srie (COM1/COM3) IRQ 5 : Disque dur IRQ 6 : Lecteur de disquettes IRQ 7 : Port parallle (LPT1)

On remarque que les COM1 et COM3 ainsi que les ports COM2 et COM4 utilisent les mmes interruptions. Cela semble illogique. Il est en fait possible d'utiliser le port COM1 et le port COM3 (idem pour COM2 et COM4) condition qu'ils ne soient pas actifs simultanment. Lors du passage du PC/XT au PC/AT, un second contrleur d'interruption fut ajout en cascade du premier. Les IRQs sur les premiers IBM PC/AT taient donc dfinies comme suit (la priorit 0 tant la plus forte) :

IRQ 0 : Horloge Systme IRQ 1 : Clavier IRQ 2 : N/A (cascade du second contrleur) IRQ 3 : Port srie (COM2/COM4) IRQ 4 : Port srie (COM1/COM3) IRQ 5 : LPT2 (carte de son) IRQ 6 : Lecteur de disquettes IRQ 7 : Port parallle (LPT1) IRQ 8 : Horloge temps rel IRQ 9 : N/A (PCI) IRQ 10 : N/A IRQ 11 : N/A (USB) IRQ 12 : N/A (PS/2) IRQ 13 : Coprocesseur math. IRQ 14 : Disque dur primaire IRQ 15 : Disque dur secondaire

Les IRQ 9, 10, 11 ne sont pas utilises, et sont disponibles pour des priphriques supplmentaires.

Les interruptions hardware (IRQ) Daniel Millet

Les IRQ font partie des figures de proue parmi les cauchemards des utilisateurs de PC qui font de la vido, dbutants ou moins dbutants. Daniel nous explique de quoi il s'agit au juste.

A. Introduction
Dj, il faut savoir qu'il existe 3 sortes d'interruption : 1) Les interruptions processeur (celles gnres par une erreur de calcul interne du genre "Divide by zero" par exemple). 2) Les interruptions "hardware" ou matrielle, et que nous allons dtailler ci-aprs.

3) Les interruptions "software" ou logicielle (lorsqu'une application a besoin d'avoir accs un morceau de code commun contenu et contrl par un autre morceau de code et situ dans une location mmoire trs diffrente et qui peut varier, comme le BIOS par exemple).

B. Les IRQ
Tout d'abord, IRQ veut dire "Interrupt ReQuest", tout simplement, c'est--dire ReQute d'Interruption, et cette appellation est exclusivement rserve aux interruptions matrielles. Elles sont gnres, comme leur nom l'indique, par des composants extrieurs au processeur, mais pas forcment extrieurs au PC lui-mme. Le "System Timer" interne, par exemple, interrompt le processeur en utilisant l'IRQ 0 ; c'est un composant de la carte mre. A chaque fois que vous pressez une touche du clavier vous interrompez le processeur par l'intermdiaire de l'IRQ 1. En fait, tout priphrique connect d'une manire ou d'une autre au processeur et ayant besoin de se faire entendre devra interrompre le processeur

C. La table des interruptions


Chaque fois que le processeur est interrompu, il va chercher l'adresse du code excuter dans une table. Par exemple, le pilote logiciel fourni avec une carte d'acquisition vido et utilisant l'IRQ 10 devra aller mettre dans cette table, lors de son installation en mmoire, l'adresse du code qu'il souhaite voir excuter lorsque son priphrique (la carte d'acquisition) dsirera prendre la main. Ceci tait vrai lorsque les IRQ n'taient pas partageables. Maintenant c'est un peu plus compliqu puisqu'un morceau du systme d'exploitation va grer ce processus dynamiquement, mais nous verrons cela un peu plus tard.

D. Le mcanisme des interruptions hardware


a) Le PIC Il y a quelques annes nous pouvions encore physiquement trouver sur nos cartes mres 2 composants qui graient les interruptions : les PICs ("Programmable Interrupt Controler"). Maintenant ils sont intgrs au sein de ce que lon appelle le "Chipset" ("ensemble de composants" en franais, regroups au sein d1 ou 2 botiers en tout), mais le principe reste exactement le mme. Il y a 2 PICs, sachant chacun grer 8 interruptions hardware. Le premier gre les IRQ de 0 7, et le second de 8 15. La sortie du second PIC est cble sur lentre correspondant lIRQ 2, donc sur le premier PIC, et seule la sortie du premier PIC part rellement vers le processeur (voir figure cidessous).

Le plus haut niveau de priorit tant l'IRQ 0, l'ordre des priorits, en tenant compte de l'embotement des 2 PICs, est donc : IRQ 0 = System Timer

IRQ 1 IRQ 8 IRQ 9 IRQ 10 IRQ 11 IRQ 12 IRQ 13 IRQ 14 IRQ 15 IRQ 3 IRQ 4 IRQ 5 Blaster) IRQ 6 IRQ 7

= Clavier = Real Time Clock (horloge temps rel) = "disponible" = "disponible" = "disponible" = Souris PS/2 = Coprocesseur arithmtique = Canal IDE primaire (pour les disques durs - 2 maximum) = Canal IDE secondaire (pour les CD-ROM et graveurs - 2 maximum) = COM2 (second port srie) = COM1 (premier port srie) = "disponible" (souvent utilise pour la carte son en compatibilit Sound

= Lecteur de disquettes (2 maximum) = LPT1 (le port parallle)

Et c'est tout ! Sur un PC de base seule 4 IRQs restent disponibles, et encore, le son tant maintenant une composante obligatoire des PCs, 3 IRQs seulement sont utilisables pour tous les autres priphriques et autres accessoires. Au cas o 2 IRQs viendraient arriver en mme temps, le contrleur d'interruptions (PIC) ira servir la plus prioritaire en premier, et gardera la seconde sous le coude pour la servir aprs que la premire aura fini son travail. C'est pour cela que le clavier est branch sur l'IRQ 1, de manire ce que l'utilisateur puisse reprendre la main de faon prioritaire. Il ne faut tout de mme pas oublier que tout morceau de software peut, quand il le dsire et en l'occurrence avant l'excution d'une partie critique ou "temps rel" de code, mettre un masque d'interruption, c'est--dire interdire au processeur de se laisser interrompre. C'est d'ailleurs dans ces moments l, et quand quelque chose se passe mal, que l'on en arrive un PC "plant" : un morceau de code ayant interdit les interruptions est en attente d'un vnement qui n'arrive pas.
On accuse souvent le partage des interruptions, processus dcrit un peu plus bas, d'tre la cause de lenteur dans la capture et/ou dans la restitution de la vido, et donc de gnrer des saccades. Mais en fait, qu'il y ait beaucoup plus de lignes d'IRQ ou pas, en d'autres termes que l'on ait besoin de les partager ou pas, le problme rel vient simplement du fait qu'il faut servir plus de choses que le PC

n'est capable d'en absorber. Le partage lui-mme n'y est gnralement pas pour grand chose. b) L'APIC Depuis peu de temps, le hardware de nos PC a volu. Les chipsets intgrent maintenant, en plus du PIC standard, un APIC ("Advanced Programmable Interrupt Controler"). Nous reparlerons un peu plus tard des intrts qu'apporte l'APIC en terme de gestion des interruptions. D'un pur point de vue matriel, il est prsent sur toutes les machines multiprocesseurs et sur les nouvelles gnrations de PC compatibles Windows XP. L'APIC permet de traiter jusqu' 256 requtes d'interruption diffrentes - les 16 premires tant quivalentes aux 16 IRQ que nous venons de dcrire. En ralit l'APIC est prsent dans le chipset de nombreux PC modernes, au mme titre que le simple PIC, par contre, il n'est pas forcement utilisable. Pour qu'il le soit, il faut que le BIOS d'un tel PC ait t crit pour cela, c'est--dire qu'il ait configur cet APIC, en plus du PIC, pour tre prt travailler. Jusqu' prsent seuls les PC multiprocesseur taient dans ce cas, car il s'agit alors d'une obligation pour pouvoir le faire fonctionner en multiprocesseur justement. On parle alors de BIOS "I/O APIC" ou mme plus directement "IOAPIC" (I/O pour "Input" "Output" - entre sortie). Depuis peu, Microsoft impose aux fabricants de PC de systmatiser l'utilisation de l'APIC, mme sur les PCs monoprocesseur. C'est une des conditions l'obtention du logo Microsoft "Designed for Windows XP" que les constructeurs collent firement sur la face avant de chaque machine. Ceci sera visible, bien-sr sous Windows XP, mais galement sous Windows 2000 (voir chapitre H). Nous parlerons alors du fonctionnement de Windows 2000 en "mode PIC" ou en "mode APIC". Par contre Windows 98 ne saura pas utiliser ce nouveau contrleur d'interruptions et se contentera, mme sur ces nouvelles machines pourtant configures pour le support de l'APIC, travailler avec le PIC standard.

E. Les attributions d'IRQ


Avant mme de parler de partage d'interruption, il faut d'abord parler d'attribution. Dans l'exemple ci-dessus nous avons donc 4 IRQs disponibles. Mais en fait, seulement 4 (9, 10, 11 et 5) restent disponibles parce que les autres ont t attribues. Cette tape a t ralise par le BIOS tout simplement parce que le cblage physique des composants avec le PIC est fait sur la carte mre, et que le BIOS le sait ou le voit (le composant grant le port parallle LPT1 est physiquement connect l'entre 7 du PIC par exemple, ou travers une sorte de commutateur lectronique pilot par le BIOS qui pourra alors le connecter ou non, donc lui assigner l'IRQ 7, ou la laisser libre). Ajoutons maintenant une carte son dans notre PC. Il y a 3 cas possible : 1) Une vieille carte ISA, avec des cavaliers de configuration.

Comme nous savons que l'IRQ 5 est disponible et que beaucoup d'anciennes applications DOS s'attendent ce que cette carte parle travers l'IRQ 5 (compatibilit Sound Blaster), configurons la donc en IRQ 5 avec le bon choix de cavalier. 2) Une carte plus rcente, mais toujours ISA, sans cavalier de configuration.

Il s'agit de la version PnP (raccourci pour "Plug-and-Play" c'est--dire "on branche et a marche") de cette carte. La seule diffrence est que cette carte ira se configurer toute seule lors du premier dmarrage du PC, et comme par hasard sur l'IRQ 5 puisqu'elle verra que cette

IRQ est justement disponible. A ce niveau l, il faut savoir que les lignes d'interruptions correspondant aux IRQ disponibles sont physiquement prsentes sur le bus ISA, et donc que la carte va rellement tre connecte l'IRQ 5. 3) Une carte PCI.

A propos, "PCI" sont les initiales de "Peripheral Component Interconnect" ; il s'agit d'une norme rgie par un groupe d'intrt (voir http://www.pcisig.com/ pour plus de dtails). Revenons-en notre carte PCI : n'y cherchez pas de cavalier, toutes les cartes PCI sont obligatoirement PnP ; mais c'est une autre sorte de PnP, beaucoup plus subtil. En effet, maintenant les fameuses lignes d'interruption ne sont plus connectes au bus PCI, contrairement aux connecteurs ISA. Elles ont t remplaces par d'autres lignes d'interruptions : les interruptions PCI. C'est finalement le BIOS ou/et l'OS qui iront au moment voulu connecter ces lignes une entre du PIC, donc une vraie IRQ. En conclusion, plus de connexion permanente entre les cartes PCI et les IRQ contrairement aux cartes ISA, donc une totale flexibilit. A ce niveau l, 2 cas de figure se prsentent : soit nous allons charger un OS PnP ou non. Et oui, a se complique ! 1) Un OS (raccourci pour "Operating System", systme d'exploitation en franais) dit "PnP" est un OS qui, comme une carte, se dbrouille tout seul pour attribuer ses ressources disponibles. Les OS PnP sont : Windows 95 (Win95) Windows 98 (Win98) Windows 2000 (W2K). 2) Les OS non PnP sont

DOS Windows NT (NT4). Seulement pour qu'un OS PnP puisse se dbrouiller tout seul, encore faut-il pouvoir dire au BIOS de ne pas attribuer les ressources lui-mme. A l'inverse, dans le cas d'un OS non-PnP, il faut imprativement dire au BIOS d'attribuer les ressources lui-mme sinon elles ne pourront tout simplement pas marcher une fois l'OS charg. Pour cela, il y a un champ dans le SETUP des BIOS s'intitulant gnralement "PnP OS" o l'on rpond par oui ou par non, ou "Operating System running" o l'on rpond par DOS/NT ou par Windows95/.

F. Le partage des interruptions

Tout composant dit "legacy", terme technique anglo-saxon faisant rfrence l'ancienne norme PC AT et que l'on pourrait avantageusement traduire par "l'hritage", ne peut en aucun cas accepter le partage des interruptions. La raison est trs simple : ces composants sont physiquement connects aux entres du PIC comme nous l'avons dj vu, alors que pour pouvoir partager une interruption il faut bien sr pouvoir grer une connexion de plusieurs lignes d'interruption intermdiaires avant d'en brancher physiquement une sur le PIC. Pour cela, seule la flexibilit qu'offre le bus PCI le permet. De fait, dans le tableau des IRQs cidessus, seules les IRQs 9, 10 et 11 peuvent encore tre considres comme partageables. En effet, toutes les autres IRQs sont utilises par des composants dits "legacy", et ce, en considrant que le PC est quip d'une carte son connecte sur le bus ISA du PC. Les BIOS des PCs modernes autorisent maintenant aussi le partage d'interruption sur les IRQs de 3 7, partir du moment o aucun composant "legacy" n'est connect dessus. Par exemple, si vous n'utilisez aucun de vos ports srie, vous pouvez alors, depuis le SETUP de certains BIOS, les dclarer comme inactifs. Ceci correspondra une relle dconnexion physique des ports qui seront alors rendus invisibles, mme si l'OS charg derrire est PnP, et le bnfice direct sera la libration des IRQs 3 et 4 dans cet exemple prcis. Les priphriques PCI peuvent partager les mmes IRQs parce qu'au dmarrage du PC le BIOS construit une table appele "PCI IRQ routing table". Cette table contient les entres de chaque priphrique PCI qui se verra attribuer un numro d'IRQ ISA (rappelez-vous, les numros de 0 15 que l'on a dcrit plus haut). Ces assignations d'IRQ ISA sont aussi lies, par construction matrielle cette fois, aux lignes physiques d'interruptions PCI associes aux diffrents connecteurs PCI d'un PC donn. L'ensemble des 2 se combine en ce qui s'appelle un "Link Value". Un Link Value est utilis chaque fois qu'une communication s'tablie avec un priphrique, et bien que des priphriques puissent partager une mme IRQ ils auront tous un Link Value unique: il n'y a donc pas d'erreur possible !

G. La gestion des interruptions sous Win95 (depuis la SR2) et sous Win98


a) Dfinition de l'IRQ "Steering"

Ce terme d'IRQ Steering (direction d'IRQ) dsigne le processus software au sein de l'OS qui assigne dynamiquement les IRQs du bus PCI vers les priphriques en ayant besoin. Comme on a l'a dj vu, seules les IRQ non dj assignes un priphrique ISA (ou legacy) pourront l'tre vers un priphrique PCI, car une IRQ ne peut en aucun cas tre assigne la fois un priphrique ISA et un priphrique PCI. Ce moteur d'assignation des IRQ PCI (PCI bus IRQ Steering) va donc attribuer les IRQs, que le BIOS l'ait ou non dj fait. Il est donc prfrable de ne pas le laisser faire au BIOS pour viter que Windows assigne une IRQ diffrente de celle attribue par le BIOS un priphrique donn (ceci est trs rare, mais peut toutefois se produire).
b) Comment Win95 (depuis la SR2) et Win98 utilisent l'IRQ Steering

Ce "PCI bus IRQ Steering" donne Windows la possibilit de reprogrammer les interruptions PCI tout en rquilibrant les ressources entre les priphriques PCI et ISA PnP versus les ressources non-PnP.

Par exemple, imaginons que vous ayez dj une carte PCI dans votre PC, pour laquelle l'IRQ 10 a t attribue. Maintenant vous ajoutez une vieille carte ISA non-PnP configure par cavalier sur l'IRQ 10 justement. Vous vous trouvez alors dans un cas flagrant de conflit d'IRQ. Mais pas pour longtemps, parce qu'automatiquement Windows va : invalider le priphrique PCI utilisant l'IRQ 10, reprogrammer une IRQ libre pour tre une IRQ PCI (par exemple la 11), assigner un "IRQ Holder" (terme dfini au paragraphe ci-dessous) l'IRQ 11, reprogrammer l'IRQ 10 pour tre une IRQ ISA (legacy), retirer l'IRQ Holder qui existait pour l'IRQ 10. De ce fait, la carte ISA non-PnP pourra cette fois utiliser sans problme l'IRQ 10, et inversement notre carte PCI se verra assigner l'IRQ 11 qui a donc t rserve pour cet usage.
c) Les IRQ Holders

Un "IRQ Holder for PCI Steering" est un indicateur montrant qu'une IRQ a t programme pour servir des priphriques PCI, mme si aucun priphrique ne s'en sert concrtement (une sorte de rservation en quelque sorte). Bien videmment aucun priphrique ISA ne pourra utiliser une IRQ sur laquelle se trouve un IRQ Holder.
d) Comment voir quelles sont les IRQs programmes pour le PCI

Depuis le panneau de configuration, double-cliquer sur l'icne Systme. Cliquer sur l'onglet "Gestionnaire de priphriques". Double-cliquer sur "Ordinateur". S'assurer que la case "Requtes d'interruption" est bien coche. La liste de toutes les interruptions est alors affiche, y compris les IRQ Holders, sous la mention de "IRQ Holder for PCI Steering" pour Win95 partir de la SR2 ainsi que pour Win98 dans le cas de machines n'ayant pas de BIOS ACPI (APM), et sous la mention de "IRQ Holder ACPI pour PCI IRQ Steering" pour Win98 dans le cas de machines ayant un BIOS ACPI. "ACPI" sont les initiales de "Advanced Configuration and Power Interface". Il s'agit d'une volution de l'ancienne spcification "APM" qui sont les initiales de "Advanced Power Management". Il s'agit en fait de la gestion de la mise en route et de la mise en veille progressive jusqu' l'arrt du PC. L'norme avantage de l'ACPI compar l'APM est sa capacit grer la mise en route, l'endormissement et l'arrt des priphriques connects au PC. Pour cela, il faut bien, d'une manire ou d'une autre, que la couche ACPI dans Windows gre les ressources des priphriques, en particulier les IRQs. Pourquoi ? Et bien par exemple, la norme ACPI permet un PC teint ou en veille profonde de se rveiller lorsque le

tlphone sonne pour activer la fonction rpondeur ou fax, et ce, grce l'IRQ assigne au modem. Voil pourquoi la gestion des IRQs est diffrente entre une ancienne machine seulement APM et un PC moderne ACPI.

e)

Comment voir et changer l'tat de l'IRQ Steering

Depuis le panneau de configuration, double-cliquer sur l'icne Systme. Cliquer sur l'onglet "Gestionnaire de priphriques". S'assurer que la case "Afficher les priphriques par type" est bien coche. Double cliquer sur "Priphriques Systme". Double cliquer sur "Bus PCI" Cliquer sur l'onglet "Steering IRQ"
De l, vous pouvez invalider purement et simplement le fonctionnement de l'IRQ Steering, ou, plus lgrement, changer la manire dont Windows va tablir ses priorits pour assigner les IRQs. Et c'est justement partir de l qu'il faut commencer pour tenter de rsoudre les problmes de conflit d'IRQ que vous pourriez avoir sur votre PC, mais seulement si Windows n'arrive pas le faire correctement de lui-mme. C'est par exemple - cas extrme il s'entend - en invalidant l'IRQ Steering que vous pourrez enfin russir ce que les configurations d'IRQ que vous avez entres vous-mme dans le SETUP de votre BIOS soient vraiment celles utilises par Windows ! ATTENTION: en fonction du BIOS de votre PC, mme aprs avoir invalid l'IRQ Steering, il se peut que les "IRQ Holder for PCI Steering" apparaissent encore dans le statut des IRQ. Il faut alors aussi invalider cette fonction depuis le SETUP de votre BIOS, ou plus exactement lui dire de ne pas autoriser cette fonction. f) Exemple de configuration d'IRQ sous Windows 98

Il s'agit ici de la table des IRQ d'un PC rcent dont le BIOS est APIC. Mais hlas, comme nous sommes sous Windows 98 seul le PIC standard est utilis et donc seules 16 IRQ sont disponibles. Il m'a fallu un peu tricher, en passant par MS-Paint, pour russir afficher toutes les IRQ en une seule page (cela se voit par les 2 ascenseurs) Cet exemple est intressant car la configuration est assez charge. Chose curieuse, l'IRQ 2 apparat, ce qui est assez rare, et plutt inutile en fait. Comme nous l'avons vu un peu plus haut, l'IRQ 2 est utilise pour cascader le second PIC sur le premier. Elle est donc liste ici comme rserve pour le contrleur d'interruptions programmable, c'est--dire le PIC. Ouf,

tout va bien ! L'IRQ 5 semble partage. Elle est utilise par le composant audio qui est intgr dans le chipset. C'est son rle principal. Mais elle est galement utilise par le SMBus ("System Management Bus"). C'est ce qui permet au PC de reprogrammer certaines chose en interne (du genre mmoire spciale ou sont stock les numros de srie, par exemple). Cette programmation ne se fait gnralement pas depuis Windows, ou alors depuis certains programmes trs particuliers seuls habilits le faire, et utiliss trs exceptionnellement. On ne parlera donc pas vraiment de partage dans ce cas particulier. Et enfin nous avons un vrai partage de l'IRQ 9 entre le premier contrleur USB (ce PC a 2 contrleurs USB de 2 ports chacun, le second tant sur l'IRQ 11) et le LAN ("Local Area Network" - carte rseau intgre ici dans le chipset). On y voit donc 2 "IRQ Holder ACPI pour PCI IRQ Steering", un pour chacun. L'IRQ SCI ("System Configuration Interrupt"), et aussi connect l'IRQ 9, sert ici la gestion interne de l'ACPI. Je vous encourage maintenant poursuivre votre lecture, puis revenir voir cet exemple aprs avoir lu la section sur Windows 2000 en mode APIC. En effet, j'ai utilis exactement le mme PC, sur lequel j'ai simplement rinstall W2K. Vous verrez ainsi clairement la diffrence !

H. La gestion du partage des interruptions sous Windows 2000


a) Introduction

Windows 2000 (W2K) a t dvelopp avec l'objectif, parmi beaucoup d'autres bien sr, de justement permettre le partage des IRQs pour les priphriques PCI. Tout priphrique PCI, mme s'il se voit attribuer des ressources par le BIOS sera r-analys par W2K qui n'hsitera pas les changer si ncessaire. C'est donc un comportement normal sous W2K que d'avoir ce partage, et ce, tout particulirement pour les PC ACPI, ACPI qui sous Windows 2000 ne fonctionnera correctement qu' cette condition.
b) La configuration des IRQs sous W2K sur des PCs ACPI

Sous Windows 2000 vous trouverez gnralement l'IRQ 9 assigne une grande partie des priphriques PCI, et mme probablement tous ! C'est normal, c'est comme cela que cela doit tre, et on ne peut pas changer les configurations d'IRQ sous W2K. Dans le dtail des IRQs du Gestionnaire de Priphriques vous verrez apparatre la liste des IRQs ISA (de 0 15) avec ventuellement quelques trous pour celles non-utilises, et en particulier en face de l'IRQ ISA 9 la mention "Microsoft ACPI-Compliant System", puis en dessous la liste des IRQ PCI, toutes portant le mme numro (9). En fait seule l'IRQ 9 est utilisable par le bus PCI pour l'IRQ Steering sous W2K. Pour la premire fois dans le mode des PCs un OS gre diffremment les IRQs ISA (donc non-partageables) et les IRQs PCI. Cette caractristique permet en toute scurit d'ajouter d'autres priphriques sans aucun risque de conflit d'IRQs. Grce aux Link Values dfinis par le BIOS et qui permet de savoir avec qui communiquer, une seule IRQ servira l'ensemble des priphriques. Ce processus

permet de simplifier la gestion interne et est indispensable la gestion du Power Management (ACPI).
c) La re-programmation des IRQs sous W2K sur des PCs ACPI

Windows 2000, au contraire de Win98, n'a pas la possibilit de reprogrammer dynamiquement les interruptions PCI pour rquilibrer les ressources entre les priphriques PCI et ISA. Lorsque les ressources PCI sont dfinies, elles ne peuvent tre changes. En d'autres termes, vous ne pouvez en aucun cas ajouter une vieille carte ISA configure sur l'IRQ 9 dans un systme o Windows 2000 a t install. En revanche, vous pouvez tout fait ajouter une carte PCI, qui ira de fait partager avec les autres cette mme IRQ 9. La raison de cette limitation est lie la gestion des cartes multiprocesseurs, de l'IOAPIC (caractristiques des BIOS multiprocesseurs) et des bus PCI multi-branche (donc globalement des cartes mres beaucoup plus complexes) qu'offre W2K au contraire de Win98. Dans ces circonstances complexes la re-programmation dynamique des IRQs serait beaucoup trop risque et cette caractristique n'a donc pas t implmente au sein de W2K. Si vous tes dans ce cas prcis (PC relativement rcent, donc compatible ACPI, et W2K), ne perdez pas votre temps avec les IRQs, n'essayez pas de changer les configurations de votre BIOS pour forcer telle ou telle carte PCI sur telle ou telle IRQ : W2K ne s'en occupera pas, il les laissera toutes sur l'IRQ 9, point-barre ! Mais d'autre part, ne prenez pas peur du fait que toutes vos cartes PCI partagent cette IRQ 9. Cela marchera sans problme, c'est fait pour. Et si vous avez des problmes de performance, de saccades pendant vos captures vido, ne les mettez pas sur le compte du partage de l'IRQ 9, c'est ailleurs qu'il faut chercher la cause de cette mauvaise performance.
d) Exemple de configuration d'IRQ sous W2K en mode PIC

Je n'ai pas pu utiliser ici le mme PC que dans l'exemple prcdant puisqu'il s'agissait d'une machine quipe d'un BIOS APIC et que cet exemple traite de W2K en mode PIC. Je parlerai donc de la simplification de l'affichage dans l'exemple suivant (section g de ce mme chapitre), histoire de comparer les systmes d'exploitations entre eux sur un mme matriel. Que voyons-nous donc d'intressant ici ? Dj la sparation entre les IRQ ISA et les IRQ PCI. Ensuite nous voyons l'IRQ ISA 9, qui est rserve pour l'ACPI, et donc, nous voyons de fait l'IRQ PCI 9 (c'est--dire la mme physiquement que l'IRQ ISA 9 prcdemment rserve) qui se retrouve partage entre tous les autres priphriques PCI de ce PC (l'USB, le LAN, l'audio et galement le SMBus avec les mmes remarques que dans l'exemple prcdant ce sujet).
e) La configuration et la re-programmation des IRQ sous W2K sur des PCs non-ACPI Dans le cas o votre PC serait assez ancien, avec un BIOS et un hardware ne supportant pas la norme ACPI, Windows 2000 utilisera lors de son installation une HAL diffrente. La HAL (Hardware Abstraction Layer) est la couche de l'OS qui dialogue directement avec les composants lectroniques sur la carte mre et directement avec le BIOS du PC. Normalement le programme d'installation de W2K installe la HAL ACPI, mais dans ce cas il chargera une HAL "Standard PC" puisque le BIOS lui aura rpondu qu'il n'est pas ACPI.

Ceci aura 2 effets principaux : 1) aucune fonction de gestion de l'alimentation (Power Management) ne sera disponible, 2) la configuration manuelle des IRQ par le BIOS sera partiellement disponible.

Ne rvez pas ! Ce n'est pas une solution vos problmes, rappelez-vous : il n'y a pas de problme d'IRQ ! D'une manire gnrale ce type de configuration se comportera normalement de la mme manire si vous ne faites aucun rglage particulier dans le SETUP de votre BIOS et si vous laissez bien le BIOS configur en "OS PnP". Vous aurez donc l'IRQ 9 pour tous vos priphriques PCI, et tout marchera parfaitement. Mais si vraiment vous y tenez, alors, depuis le BIOS, forcez telle ou telle carte sur l'IRQ que vous voulez lui assigner, configurez votre BIOS en "PnP Operating System = no", et bootez W2K. Puis regardez l'effet que ces modifications auront apportes vos attributions de ressources au sein de W2K. Ne rvez pas non plus, vous n'arriverez jamais faire vraiment ce que vous voulez, en tous cas jamais du premier coup. Mais encore une fois, ce n'est pas par ce biais, sauf cas trs exceptionnel, que vous pourrez rsoudre vos problmes, et en tous cas, si l'ide vous venait de vouloir remplacer la HAL ACPI, normalement charge sur un systme ACPI, par la HAL Standard PC pour gagner en flexibilit sur les attributions d'IRQ, ne dites surtout pas que l'ide vient de moi et ne comptez surtout pas sur mon support : les rsultats sont imprvisibles ! La seule solution peu prs sre pour y arriver sans risque de tout perdre est de rinstaller W2K depuis le dbut en pressant F5 pendant la phase d'inspection du hardware (au tout dbut de l'installation), et en choisissant dans la liste propose la HAL "Standard PC" au lieu de la HAL "Advanced Configuration and Power Interface (ACPI) PC". Pour plus de dtail sur ce sujet si vous tes anglophone : How to Specify a Specific or Third-Party HAL During Windows 2000 Setup Pour les plus fous : How to Troubleshoot Windows 2000 Hardware Abstraction Layer Issues

f) Les IRQ sous W2K sur des PCs ACPI en mode APIC Comme nous en avons parl dans le chapitre D, les PC multiprocesseurs et depuis peu certains PC monoprocesseur (et trs bientt tous les PC) ont t configurs par leur BIOS pour pouvoir utiliser l'APIC. Cet APIC est capable de grer 256 interruptions plutt que seulement 16. Si W2K a t install sur une telle machine il utilisera donc l'APIC plutt que le PIC. Le rsultat sera immdiat et flagrant : plutt que de partager les 16 IRQ existantes entre les diffrents priphriques, W2K va simplement assigner par ordre croissant les 256 numros disponibles. Les 16 premiers (de 0 15) seront gnralement rservs aux priphriques ISA, puis les chiffres au-del de 15 pour les priphriques PCI.

Toutefois, cela ne va pas fondamentalement changer les choses Rappelez-vous : les Link Values dfinis par le BIOS en mode PIC permettaient de retrouver le pilote utiliser lors de l'arrive d'une interruption sur une ligne partage. Le mode APIC permet donc de lgrement simplifier ce processus en attribuant une ligne unique par ressource. Le gain de temps est en

ralit infime, "epsilonesque" mme Par contre, la tranquillit d'esprit qu'apporte cette nouvelle caractristique des PCs d'aujourd'hui devrait clore dfinitivement ce trs controvers dbat sur le partage des interruptions.
g) Exemple de configuration d'IRQ sous W2K en mode APIC

Regarder attentivement cet exemple, et maintenant retourner rapidement faire un tour au chapitre G section f. Il s'agit exactement du mme PC, qui a donc exactement les mme ressources et les mmes besoins en terme d'IRQ ! Seulement voil, nous sommes maintenant sous W2K qui lui, au contraire de Win98 dans le cas prcdant, sait enfin grer l'APIC de cette machine. Nous disposons donc maintenant de 256 IRQ au lieu des seuls 16 d'avant. Les diffrences sont frappantes : Dj l'inutile IRQ 2 disparat. Elle disparat rellement car elle reste rserve pour le PIC qui, bien que non-utilis dans ce cas, est toujours physiquement prsent dans le chipset. L'IRQ 5 utilise par le SMBus est liste plus loin, avec les IRQ PCI. Cela clarifie le fait qu'il s'agisse d'un composant PCI et non d'un composant ISA. L'IRQ ISA 9 est toujours utilise par W2K pour la gestion de l'ACPI, pas de changement puisqu'il s'agit d'un composant de type ISA cette fois (notez la plus grande simplicit et clart des libells).

L'audio intgr au chipset se retrouve maintenant en IRQ17, Le premier contrleur USB en 19, Le LAN en 20, Et enfin le second contrleur USB en 23. Etonnant, non ?

I.

Questions / Rponses entre Claude et Dan

Claude : Si le processeur est en train de travailler une acquisition ou une exportation et qu'une interruption de niveau plus leve arrive, cela ne peut-il perturber le flux de donnes, moins que le logiciel de capture ne masque les interruptions ? Dan : Il faudrait pouvoir analyser le code de chaque driver et de chaque application de capture pour pouvoir rpondre prcisment... A vrai dire le masquage des interruptions ne peut que trs rarement tre utilis pour de nombreuses raisons lies l'OS et plus particulirement aux fonctions multitches de l'OS (trs vaste dbat particulirement complexe). C'est seulement dans certains bouts de code trs critiques que certains drivers utilisent le masquage des interruptions et pendant une priode trs trs courte. Typiquement, on peut toujours interrompre une capture en pressant la touche ESC. Nanmoins cela ne veut pas dire pour autant que les interruptions n'aient pas t masques un moment critique, mais seulement suffisamment peu longtemps pour que l'utilisateur ne s'en rende pas compte. Prenons un exemple concret : imaginons qu'une mmoire tampon ait t allou pour la capture. Elle va donc tre remplie par le driver ou par un morceau de l'application de capture qui gre la communication avec le port IEEE1394. Un autre morceau de cette application de capture va vider ce tampon en remplissant le fichier AVI sur le disque dur. Puisqu'on ne peut arrter ou ralentir le droulement de la bande du camscope, ce tampon risque de dborder s'il n'est pas vid au moins aussi vite qu'il est rempli. Alors, lorsqu'il devient bien plein, disons rempli 80% par exemple, le driver doit agir pour viter le trop plein gnrateur de "lost frame". Pour cela il va alors masquer les interruptions, (et srement faire d'autres choses aussi, du genre "changer sa priorit" par exemple pour que toutes les ressources systme disponibles soient focalises sur le vidage de ce tampon). Quelques fractions de secondes plus tard, lorsque ce buffer sera de nouveau suffisamment vide, disons 20% par exemple, les interruptions seront de nouveau libres... Mais attention ceci n'est qu'une hypothse pour aider la comprhension du mcanisme. Claude : Avec tout ce que tu as crit ma recommandation tout azimut serait, hors Windows 2000, de mettre la carte d'acquisition sur l'IRQ 9 et pour l'obtenir crer un profil matriel retirant le maximum de choses de manire ce que l'OS ne puisse que vouloir utiliser cette IRQ de niveau le plus prioritaire pour les slots PCI. Dan : Je ne suis pas sr que le jeu en vaille la chandelle... Dj, le coup de l'IRQ la plus prioritaire n'a d'importance que lorsque 2 IRQs arrivent en mme temps ou lorsque la seconde arrive alors que la premire n'a pas encore fini d'tre traite. Si une IRQ 10 arrive en plein traitement de la 9, elle attendra que la 9 ait fini, alors que si c'est l'IRQ 1 qui arrive, le processus de traitement de la 9 sera effectivement interrompu. La manipulation que tu

suggres n'a d'intrt que si tu rencontres rellement des problmes de capture ou d'exportation vido, mais autrement, un bon conseil, si ton PC ne marche pas trop mal, en d'autres termes si tes captures et tes exportations vido se droulent correctement, alors, ne touche rien ! Il est bien vident qu'il faut mettre toutes les chances de son cot pour russir une capture et une exportation, en ne faisant rien faire d'autre au PC en mme temps. S'il est assez facile de penser ne pas jouer Doom en mme temps, il peut tre plus difficile de dsactiver la fonction "Rpondeur tlphonique" de son modem juste avant de lancer une capture. Dans ce cas, effectivement Claude, ta solution de crer plusieurs profils utilisateur est trs intressante, car elle permet assez simplement d'invalider tel ou tel priphrique d'un profil, en liminant par exemple le modem pour une utilisation purement "Vido" de son PC. Claude : Et un point dont tu ne parles pas c'est la manire dont la position physique d'un slot influe sur l'attribution de l'IRQ, par exemple o placer une carte modem PCI pour que son IRQ soit d'un rang moins prioritaire. Dan : Cela dpend du HW du PC concern et de la capacit de son BIOS bien grer ce HW. Normalement, un "super PC" devrait avoir la possibilit de connecter n'importe quelle ligne d'interruption PCI sur n'importe quelle IRQ ISA. Hlas, ce n'est pas toujours le cas, et de fait certains connecteurs peuvent ce retrouver limits. Cela n'a plus beaucoup d'importance avec W2K maintenant, il suffit de pouvoir toutes les connecter sur la 9, et ceci est d'ailleurs impos par Microsoft pour avoir le droit au logo W2K. Donc la rponse cette question est dans la documentation technique de chaque PC... Claude : Et comment se passe l'attribution des IRQs pour les slots AGP ? Dan : De la mme manire et en mme temps. Le slot AGP (je dis bien "le", car il est unique dans un PC) est en fait un second bus PCI, juste plus rapide, et ddi pour une seule carte, la carte graphique. Cette carte graphique n'utilise une interruption que dans un mode trs particulier (et trs rare) ou elle doit synchroniser l'application qui la pilote, en fait pour que cette application sache quand le balayage arrive en fin de ligne et en bas de l'image. Ce n'est quasiment plus jamais utilis, sauf pour de trs anciennes applications. Oublie ! Jamais d'interruption de la part de la carte graphique. D'ailleurs, l'interruption utilise par la carte graphique est quasiment la seule que Win98 prend le risque de partager avec une autre (n'oublions pas que W2K est le seul aujourd'hui vraiment bien grer le partage des interruptions). Claude : Si j'ai bien compris, l'OS est capable de grer les demandes d'interruptions de matriels relis la mme IRQ ; la rapidit laquelle il dcide, fait que c'est totalement transparent pour les dlais d'excution, non ? Dan : Dj, les interruptions ne sont relies la mme IRQ que lorsque l'OS dcide de les y relier, et ce presque exclusivement dans le cas de W2K comme nous l'avons vu. Pour ce qui est du dlai d'excution, il s'agit en effet que de quelques lignes de code assembleur excuter, donc un dlai normalement infrieur au millionime de seconde sur une machine actuelle ! Claude : Par exemple si une carte SCSI partage la mme IRQ que la carte d'acquisition IEEE1394, les demandes peut-tre rptes de la carte pour grer les disques durs ne peuventelles crer des soucis de rapidit / continuit d'un travail de rendu / transfert de fichier DV

effectu en simultan ? Dan : Il y a autre chose dont nous n'avons pas parl, c'est le DMA Bus Mastering !!! Certaines cartes comme les cartes SCSI ou les cartes IEEE1394 sont gnralement des cartes dites "Bus Master", c'est--dire qu'elles sont capables de prendre le contrle du bus PCI, et de fait elles ont un accs direct la mmoire et aux autres cartes ! Typiquement, une carte Studio DV est capable d'envoyer son flux vido directement la carte SCSI ou au port IDE (s'il est configur en DMA) sans mme passer par le processeur. Si une IRQ arrive ce moment l, le processeur n'aura rien interrompre rellement puisqu'il ne faisait qu'attendre que quelqu'un daigne vouloir l'occuper. Aucun risque dans ce cas de gner la communication entre le 1394 et le SCSI qui continuera... sauf si le processeur a besoin son tour du bus PCI ou, pire encore, des disques SCSI. Mais le DMA c'est un autre dbat, bien plus complexe encore.

Вам также может понравиться