XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004 Doba odezvy na vznik přerušení IRQ v závislosti na výkonu PC a operačním systému MS Windows NT/2000/XP FOJTÍK, David, Ing., Katedra ATŘ-352, VŠB-TU Ostrava, 7. listopadu, Ostrava - Poruba, 708 33 david.fojtik@vsb.cz, http://fs.vsb.cz/~foj74 Abstrakt: Tento příspěvek se zabývá změnou prodlevy zahájení obslužné rutiny ISR od vzniku hardwarového přerušení IRQ v operačních systémech rodiny MS Windows NT a to v závislosti na výkonu PC sestavy. Snahou je tak odhalit vliv volby počítačové sestavy především jejího hrubého výkonu na rozptyl této odezvy, která je v mnoha případech kritická s ohledem na provozování řídicích systémů vyžadující rychlé zpracování v reálném čase. Klíčová slova: PIC, 8259A, MS Windows NT/XP/2000, IRQ, IRQL Cíl měření Počítače platformy PC jsou neustále v permanentním zájmu tvůrců řídicích systémů. Jejich poměrně nízká cena, neustálý růst výkonu, vysoká podpora moderních technologií, nepřeberné množství výrobců jsou vysokými argumenty pro jejich nasazení. Důležitým faktorem je také skutečnost, že dnes je již nezbytnou a mnohdy jedinou platformou podnikových informačních systémů. Nasazení počítačů PC v řízení technologických procesů tak nabízí snadnou možnost integrovat vlastní technologické procesy do celkového informačního systému podniku, což bezesporu přináší mnoho výhod. K tomu, aby se tento požadavek zdařilo zcela naplnit je však potřeba také sjednotit používané operační systémy. V tomto okamžiku nastává zcela legitimní požadavek na nasazení operačních systémů rodiny MS Windows NT k provozu řídicích systémů v reálném čase. Tohoto faktu je si vědom i samotný výrobce systému firma Microsoft, který již nějakou dobu nabízí specializované verze těchto operačních systémů a to MS Windows NT Embedded a MS Windows XP Embedded [MICROSOFT 2003]. Navíc díky velmi úzké spolupráci s firmou VenturCom lze jejich systémy rozšířit velmi kvalitním doplňkem reálného času RTX [O KEEFE 2002]. V určitých případech však není výhodné doplněk RTX nasadit a mnohdy vystačíme s jiným levnějším řešením. Jedno řešení se opírá o možnost realizovat přesnou vzorkovací periodu regulátoru formou vnějších hardwarových časovačů multifunkční měřicí karty opakovaně generující přerušení IRQ [FOJTÍK 2004]. Na obsluhu tohoto přerušení je vykonán vlastní algoritmus na vysoké systémové prioritní úrovni. Také jiné požadavky mohou být provedené ihned v obsluze přerušení, čímž se výrazně zkracuje reakční čas k provedení příslušného úkonu. Z popisu je patrné, že reakční doba potřebná k zahájení obsluhy od vzniku hardwarového přerušení je velmi důležitá a může ovlivnit mnohé. Nejvíce nás zajímá nejdelší doba, do které můžeme s jistotou počítat, že příslušná obsluha bude zahájena. Vlivů, které mohou dobu reakce ovlivnit je hned několik. Především závisí na použitém operačním systému a typu použitého hardwarového řadiče přerušení. Také je možné jistými postupy mechanizmus správy přerušení operačních systémů NT architektury pozitivně ovlivnit [FOJTÍK 2004]. Cílem tohoto příspěvku je objasnit další možný vliv na uvedenou dobu a to je výkon počítačové sestavy.
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004 2 2 Princip měření Princip měření byl již podrobně publikován ve [FOJTÍK 2003A]. Zkráceně, princip měření spočívá ve vynesení požadavku generující přerušení IRQ v měřeném systému vnějším zdrojem, který současně vyhodnocuje dobu, za kterou je měřený systém schopen odeslat odpověď jako důsledek onoho přerušení. Principiální schéma metody měření je vyobrazeno na obrázku. Měřený systém: PC s MS Windows NT/2000/XP Měřící systém: PC + MS DOS/Windows 98 Speciální ovladač paralelního portu IRQ Hardware počítače Paralelní port Karta PCA26 Měřící program Algoritmus odezvy (Rutina ISR) Paralelní port Trig. obv. Časovače A/D Paměť RAM Měřící algoritmus Obrázek Schéma principu měření doby odezvy na vznik přerušení IRQ Po hardwarové stránce se měřicí systém skládá z počítače PC vybaveného měřicí kartou PCA26 a propojovacích kabelů připojených k měřenému systému. Základním prvkem je měřicí karta PCA26, která je vybavena schopností samostatně měřit jeden vstup s frekvencí až MHz maximálně po dobu sekundy. Za tímto účelem je vybavena 2MB pamětí RAM a interními 4MHz čítači, které dokážou opakovaně spouštět A/D převod zvoleného vstupu. Výsledky měření se zapisují do paměti RAM, kterou lze po ukončení měřicí sekvence přečíst. K využití těchto vlastností byl vytvořen jednoduchý program pro MS DOS a MS Windows 98, který opakovaně dle požadavků spouští měřicí sekvenci a po jejím ukončení naměřené hodnoty vyhodnocuje. Současně program také vznáší požadavek generující přerušení v měřeném systému. Tento požadavek je aplikován prostřednictvím paralelního portu měřicího počítače. Pro přesné měření doby od vzniku přerušení do zahájení obsluhy byl opět využit paralelní port, který je po příslušném nastavení schopen přímo generovat přerušení IRQ5 nebo IRQ7 jako důsledek TTL signálu na ACK pin konektoru. Měřený systém tudíž využívá paralelní port jako zdroj přerušení a současně přes něj přijímá i zasílá signál odezvy. Za tímto účelem byly vyhotoveny dva speciální ovladače paralelního portu zvlášť pro MS Windows NT a pro MS Windows 2000/XP. 3 Měřené systémy a jejich zatížení Vlastní měření se provádělo na třech základních typech v současnosti dostupných operačních systémů rodiny NT a to konkrétně na: MS Windows NT 4.0 včetně servisního balíčku SP6a, MS Windows 2000 Proffesional se servisním balíčkem SP3, MS Windows XP Proffesional se servisním balíčkem SP. Jako referenční byly zvoleny čtyři výkonnostně odlišné sestavy výhradně využívající standardní řadič přerušení 8259A (82C59). A. Pentium 90 MHz: CPU Intel Pentium 90 MHz, takt sběrnice 66 MHz, 64 MB RAM, pevný disk o kapacitě 4 GB připojený přes SCSI řadič na sběrnici PCI (IRQ).
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004 3 B. Celeron 400 MHz: CPU Intel Celeron A 400 MHz, takt sběrnice 66 MHz, 28 MB RAM, pevný disk 8 GB připojený na primárním IDE. C. Celeron MHz: CPU Intel Celeron MHz, takt sběrnice MHz, 52 MB RAM, pevný disk o kapacitě 20 GB připojený přes řadič CMD PCI-0648 ultra DMA rozhraní IDE ATA 66 (IRQ9). D. Pentium 4 2000 MHz: CPU Intel Pentium 4 2 GHz, takt sběrnice 400 MHz, 52 MB RAM, pevný disk o kapacitě 60 GB připojený na primárním ID ATA. Pro každou kombinaci hardware a operačního systému bylo měření prováděno na kanálu IR 7 vždy nejprve pro standardní mechanizmus správy přerušení a poté s úpravami. Úpravy se týkají přeprogramování řadiče přerušení 8259A tak, aby zvolený kanál měl nejvyšší prioritu a změny úrovně IRQL zvýšením na hodnotu 3. Detailní popis úprav a jejich význam je uveden ve [FOJTÍK 2003B]. Aby naměřené výsledky odpovídaly situaci intenzivně používaného systému, byly během měření spuštěné dvě úlohy zatěžující systém především na systémové úrovni. Za tímto účelem byly vytvořeny dva programy intenzivně komunikující s pevným diskem a sériovými porty čímž se neustále generují požadavky na přerušení IRQ4 a IRQ. Programy byly vytvořeny s možností volit zatížení v čase čímž se eliminují případné rozdíly v zatížení mezi výkonnostně rozdílnými systémy (viz obrázek 2). Podrobnější popis těchto programů je uveden ve [FOJTÍK 2003A]. Obrázek 2 Nastavení zatěžujících programů během měření Každé měření bylo vždy prováděno opakovaně pokaždé s téměř shodnými výsledky. Případné rozdíly ve sledovaných parametrech se týkaly výhradně doby nejpozději přijaté odezvy a vždy maximálně v řádu jednotek mikrosekund. Níže prezentované hodnoty tak odpovídají skupinám měření, jejíž doba nejpozději přijaté odezvy byla ze všech měření nejdelší. 4 Pentium: 90 MHz Na výkonově nejslabší sestavě nebyl vyhodnocován MS Windows XP především z důvodu malého výkonu stanice. Z grafů je patrný pozitivní vliv navržených úprav u obou měřených operačních systémů. Pokud porovnáme mezi sebou oba operační systémy zjistíme
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004 4 mírné prodloužení odezvy u MS Windows 2000 vůči MS Windows NT 4.0. Tento fakt odráží odlišnou správu přerušení s vyšší režií v neprospěch systému MS Windows 2000. 000 000 7 806 Pentium 90 MHz, IRQ7 - paralelní port 7 623 Pentium 90 MHz, IRQ7 - paralelní port Všechny úpravy: IRQL3, max IR7, mask INTR V odezva přijata do 36 μs Všechny odezvy přijaty do 64 μs V odezva přijata do 6 μs Všechny odezvy přijaty do 37 μs 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek 3 Reakční doby na IRQ sestavy Pentium 90 MHz s MS Windows NT 4.0 000 000 5 97 Pentium 90 MHz, IRQ7 - paralelní port 6 695 Pentium 90 MHz, IRQ7 - paralelní port Všechny úpravy: IRQL 3, nejvyšší priorita IR7 V odezva přijata do 40 μs Všechny odezvy přijaty do 77 μs V odezva přijata do 2 μs Všechny odezvy přijaty do 40 μs 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek 4 Reakční doby na IRQ sestavy Pentium 90 MHz s MS Windows 2000 5 Celeron: 400 MHz Na této stanici byly již testovány všechny tři operační systémy. I zde navržené úpravy zkrátily oba sledované parametry. Mírné odlišnosti mezi operačními systémy MS Windows 2000 a MS Windows XP dávají tušit, že i přes shodný mechanizmus správy přerušení se jádra systémů vůči sobě liší. 000 000 67 728 95 054 Všechny úpravy: IRQL 3, max IR7, mask INTR V odezva přijata do 27 μs Všechny odezvy přijaty do 4209 μs V odezva přijata do 6 μs Všechny odezvy přijaty do 29 μs 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek 5 Reakční doby na IRQ sestavy Celeron 400 MHz s MS Windows NT 4.0
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004 5 000 000 3 020 8 863 Všechny úpravy: IRQL3, nejvyšší priorita IR7 V odezva přijata do 4 μs Všechny odezvy přijaty do 64 μs V odezva přijata do 32 μs Všechny odezvy přijaty do 55 μs 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek 6 Reakční doby na IRQ sestavy Celeron 400 MHz s MS Windows 2000 000 000 57 528 58 857 Všechny úpravy: IRQL3, nejvyšší priorita IR7 V odezva přijata do 44 μs Všechny odezvy přijaty do 66 μs V odezva přijata do 34 μs Všechny odezvy přijaty do 58 μs 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek 7 Reakční doby na IRQ sestavy Celeron 400 MHz s MS Windows XP Velice zajímavě se zvýšení výkonu procesoru a tím intenzivnější zatížení podepsalo na neupravené správě přerušení v MS Windows NT, kde nejpozději přijaté odezvy sahaly až do 4,2 ms. Použitím úprav se parametr zkrátil na neuvěřitelný 29 μs. Z grafů je také možné vysledovat oproti předchozí sestavě prodloužení doby nejdříve přijaté odezvy. Zvýšené prodloužení je patrně zapříčiněno špatným odladěním a nižším výkonem použité čipové sady. Doba je také vyšší u operačních systémů MS Windows 2000/XP nežli u MS Windows NT a to z důvodu časově náročnější správy přerušení. 6 Celeron: MHz Také na sestavě s procesorem Intel Celeron MHz se projevily rozdíly mezi testovanými operačními systémy a použitými úpravami. Opět největší rozdíl mezi upraveným a standardním mechanizmem je patrný u operačního systému MS Windows NT. Oproti předchozí sestavě je však výrazně kratší doba první přijaté odezvy, to svědčí o kvalitě čipové sady (BX) a vyšší frekvenci sběrnice.
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004 6 000 000 63 363 Celeron MHz, IRQ7 - paralelní port 79 3 Celeron MHz, IRQ7 - paralelní port Všechny úpravy: IRQL 3, max IR7, mask INTR V odezva přijata do 20 μs Všechny odezvy přijaty do 94 μs V odezva přijata do 4 μs Všechny odezvy přijaty do 2 μs 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek 8 Reakční doby na IRQ sestavy Celeron MHz s MS Windows NT 4.0 000 000 53 42 Celeron MHz, IRQ7 - paralelní port 46 533 Celeron MHz, IRQ7 - paralelní port Všechny úpravy: IRQL3, nejvyšší priorita IR7 V odezva přijata do 23 μs Všechny odezvy přijaty do 42 μs V odezva přijata do 6 μs Všechny odezvy přijaty do 34 μs 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek 9 Reakční doby na IRQ sestavy Celeron MHz s MS Windows 2000 000 000 56 63 Celeron MHz, IRQ7 - paralelní port 66 060 Celeron MHz, IRQ7 - paralelní port Všechny úpravy: IRQL3, nejvyšší priorita IR7 V odezva přijata do 26 μs Všechny odezvy přijaty do 43 μs V odezva přijata do 9 μs Všechny odezvy přijaty do 38 μs 3 5 7 9 3579223252729333353739443454749553555759663656769 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek Reakční doby na IRQ sestavy Celeron MHz s MS Windows XP 7 Pentium 4: 2000 MHz Tato nejvýkonnější měřená stanice se od ostatních liší především použitou čipovou sadou Intel 82845 MCH a Intel 8280 DB ICH4 [INTEL CORPORATION 2002], která má standardně integrovaný řadič IOAPIC. Oproti předchozím sestavám tak implicitně používá ke správě přerušení technologii APIC. Z důvodu kompatibility je v čipové sadě samozřejmě také integrována dvojice řadičů 8259A, jejíž použití je možné volbou v BIOSu počítače (PIC/APIC) vynutit. Této skutečnosti bylo pochopitelně pro následující měření využito.
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004 7 Získané hodnoty se opět výrazně neliší od předchozích stanic. I zde se podepsaly rozdíly mezi testovanými operačními systémy a navržené úpravy opět (především ve Windows NT) citelně zkvalitnily determinovatelnost odezvy. 000 000 35 700 32 64 Všechny úpravy: IRQL3, max IR7, mask INTR V odezva přijata do 20 μs Všechny odezvy přijaty do 2 673 μs V odezva přijata do 2 μs Všechny odezvy přijaty do 6 μs 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek Reakční doby na IRQ sestavy Pentium 4 2000 MHz s MS Windows NT 4.0 000 000 56 499 59 456 Všechny úpravy: IRQL3, nejvyšší priorita IR7 V odezva přijata do 28 μs Všechny odezvy přijaty do 42 μs V odezva přijata do 20 μs Všechny odezvy přijaty do 38 μs 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek 2 Reakční doby na IRQ sestavy Pentium 4 2000 MHz s MS Windows 2000 000 000 30 008 296 397 Všechny úpravy: IRQL3, nejvyšší priorita IR7 V odezva přijata do 30 μs Všechny odezvy přijaty do 44 μs V odezva přijata do 2 μs Všechny odezvy přijaty do 38 μs 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 3 5 7 9 3 5 7 9 2 23 25 27 29 3 33 35 37 39 4 43 45 47 49 5 53 55 57 59 Obrázek 3 Reakční doby na IRQ sestavy Pentium 4 2000 s MS Windows XP Zajímavým, ale zcela zdůvodnitelným zjištěním je poměrně vysoký nárůst doby prvně přijaté odezvy. Prakticky žádný vzorek nebyl přijat dříve nežli v deváté mikrosekundě. Tento
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004 8 stav je zapříčiněn mechanizmem doručování požadavků na přerušení. Zatímco v předchozích systémech byl výstup dvojice obvodů 8259A přímo propojen se vstupem INTR procesoru, v systémech APIC je výstup vyveden na předurčený vstup jednotky I/O APIC. V kompatibilním módu jsou tedy požadavky na přerušení nejprve zpracovány obvody 82C59 a následně předány jednotce I/O APIC. Odtud jsou po interní sběrnici odesílány jednotce Local APIC, která teprve přerušení realizuje. 8 Závěr Ze srovnání hodnot napříč měřených sestav vyplývá, že na době odezvy nemá samotný výkon procesoru významný vliv. Mezi sestavou s procesorem Celeron MHz a Pentiem 4 2000 MHz jsou jen nepatrné rozdíly. Srovnáním s nejslabší sestavou s procesorem Pentium 90 MHz kde je rozptyl odezvy mírně vyšší lze usoudit, že vzhledem k rozdílu ve výkonu procesoru je rozdíl v době odezvy zanedbatelný. Zajímavým zjištěním je, že na dobu odezvy se také podepisuje použitá čipová sada a celá vyladěnost hardwaru. Rozdíly, mnohdy významné, lze však spatřit mezi různými typy operačních systémů především v neupravené standardní verzi. Nejvíce je patrný odlišný mechanizmus správy přerušení mezi operačním systémem MS Windows NT 4.0 a systémy MS Windows 2000/XP. Zcela pozitivním zjištěním je jednoznačný vliv realizovaných úprav na sledované parametry, které se vždy (mnohdy velmi výrazně) projevily zkrácením nejpozději přijaté odezvy. 9 Použitá literatura FOJTÍK, D. 2003A Měření latence odpovědi na vznik přerušení v operačním systémech MS Windows NT/2000. In Workshop 2003 Fakulty strojní. Ostrava : VŠB-TU Ostrava, 7.. 2003, s. 9-2. ISBN 80-248-0233-3. FOJTÍK, D. 2003B Návrh a realizace úprav zvyšující determinovatelnost zpracování zvoleného požadavku IRQ v MS Windows NT/2000/XP využívající obvody PIC-8259A. In Proceedings of XXVIII Seminary ASR 2003 Instruments and Control. Ostrava : VŠB- TU Ostrava, 6. 5. 2003, pp. 69-8. ISBN 80-248-0326-7. FOJTÍK, D. 2004 Tvorba systémových modulů pro podporu řízení v operačním systému MS Windows NT. Vědecké spisy Fakulty strojní, Edice: Autoreferáty disertačních prací. Ostrava : VŠB-TU Ostrava, Katedra ATŘ, 2004. ISBN 80-248-0568-5. INTEL CORPORATION 2002. Intel 8280DB I/O Controller Hub 4 (ICH4) [online]. Intel Corporation May 2002. PDF format. Available from WWW: <URL: http://www.intel.com/design/chipsets/datashts/290744.htm>. Order Number 290744-00. MICROSOFT 2000. Microsoft Windows 2000 DDK. Redmond: Microsoft Corporation Redmond USA, June 28, 2000. MICROSOFT 2003. Microsoft Development Network - April. Redmond : Microsoft Corporation Redmond USA, 2003. O KEEFE J, A. 2002. Venturcom RTX Enabling Microsoft Windows Windows XP and Windows XP Embedded for Hard Real-Time. [online]. Venturcom, Inc. 2002. PDF format. Available from WWW: <URL: http://www.vci.com/products/windows_embedded/rtx.asp>.
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004 9 Informace pro zpracovatele příspěvku (nepublikují se): Použitý formát souboru s příspěvkem: (např. Microsoft Word 2000) Údaje jednotlivých autorů pro zpracování autorského rejstříku: Pořadí Příjmení Jméno Název organizace a stát Email David Fojtík Technical University of david.fojtik@vsb.cz Ostrava, Czech Republic 2 3 Příklad: FARANA Radim Technical University of Ostrava, radim.farana@vsb.cz Czech Republic