- PICãšã¯äœã§ããïŒ
- APICãšã¯äœã§ããïŒ LAPICããã³I / O APICã®ç®çã¯äœã§ããïŒ
- APICãxAPICãããã³x2APICã®éãã¯äœã§ããïŒ
- MSIãšã¯äœã§ããïŒ MSIãšMSI-Xã®éãã¯äœã§ããïŒ
- ããŒãã«$ PIRãMPtableãACPIã¯ããã«ã©ã®ããã«é¢é£ããŠããŸããïŒ
ãããã®è³ªåã®ããããã«å¯ŸããåçãåŸãããšã«èå³ãããå ŽåããŸãã¯åã«x86ã·ã¹ãã ã§ã®å²ã蟌ã¿ã³ã³ãããŒã©ãŒã®é²åã«ç²Ÿéãããå Žåã¯ãcatãžããããã
ã¯ããã«
ç§ãã¡ã¯çãäžæãäœã§ããããç¥ã£ãŠããŸãã ããã§ãªã人ã®ããã«ããŠã£ãããã£ã¢ããã®åŒçšïŒ
å²ã蟌ã¿ïŒè±èªã®å²ã蟌ã¿ïŒ-ãœãããŠã§ã¢ãŸãã¯ããŒããŠã§ã¢ããã®ä¿¡å·ã§ãå³æã®æ³šæãå¿ èŠãªã€ãã³ãã®çºçã«ã€ããŠããã»ããµã«éç¥ããŸãã å²ã蟌ã¿ã¯ãããã»ããµã«ãã£ãŠå®è¡ãããçŸåšã®ã³ãŒãã®å²ã蟌ã¿ãå¿ èŠãšããåªå 床ã®é«ãã€ãã³ãã®çºçãããã»ããµã«éç¥ããŸãã ããã»ããµã¯ãçŸåšã®ã¢ã¯ãã£ããã£ãäžæåæ¢ããç¶æ ãç¶æããã€ãã³ãã«å¿çããŠåŠçããå²ã蟌ã¿ãã³ãã©ãŒïŒãŸãã¯å²ã蟌ã¿ãã³ãã©ãŒïŒãšåŒã°ããé¢æ°ãå®è¡ããããšã§å¿çããŸãããã®åŸãå²ã蟌ã¿ã³ãŒãã«å¶åŸ¡ãæ»ããŸãããã®èšäºã§ã¯ãå€éšIRQå²ã蟌ã¿ã«ã€ããŠèª¬æããŸãã
å²ã蟌ã¿ä¿¡å·ã®ãœãŒã¹ã«å¿ããŠããããã¯æ¬¡ã®ããã«åé¡ãããŸãã
- éåæããŸãã¯å€éšããŒããŠã§ã¢ããã€ã¹ïŒåšèŸºæ©åšãªã©ïŒããçºçããä»»æã®ç¬éã«çºçããå¯èœæ§ãããå€éšïŒããŒããŠã§ã¢ïŒã€ãã³ãïŒã¿ã€ããŒããããã¯ãŒã¯ã«ãŒããŸãã¯ãã£ã¹ã¯ãã©ã€ãããã®ä¿¡å·ãããŒã¹ãããŒã¯ãããŠã¹ã®åãã ã·ã¹ãã ã§ãã®ãããªå²ã蟌ã¿ãçºçãããšããäºå®ã¯ãå²ã蟌ã¿èŠæ±ïŒIRQïŒãšããŠè§£éãããŸããããã€ã¹ã¯ãOSããã®æ³šæãå¿ èŠã§ããããšãå ±åããŸãã
- ãã·ã³ã³ãŒãã®å®è¡æã®ç¹å®ã®æ¡ä»¶ã®éåã®çµæãšããŠã®ããã»ããµèªäœã®åæãŸãã¯å éšã€ãã³ãïŒãŒãé€ç®ãŸãã¯ã¹ã¿ãã¯ãªãŒããŒãããŒãç¡å¹ãªã¡ã¢ãªã¢ãã¬ã¹ãŸãã¯ç¡å¹ãªãªãã¬ãŒã·ã§ã³ã³ãŒããžã®ã¢ã¯ã»ã¹ã
ãªãå¿ èŠãªã®ã§ããïŒ ãããã¯ãŒã¯ã«ãŒããå°çãããšãã«ãå ¥åãã±ããã䜿çšããŠäœããã®ã¢ã¯ã·ã§ã³ãå®è¡ãããšããŸãã ãããã¯ãŒã¯ã«ãŒãã«åžžã«ãæ°ãããã±ããããããŸããïŒããšå°ããªãããã«ããããã«ãããã«ããã»ããµãªãœãŒã¹ãç¡é§ã«ããªãããã«ãIRQå²ã蟌ã¿ã䜿çšã§ããŸãã ããã€ã¹ã®å²ã蟌ã¿ã©ã€ã³ã¯ããã»ããµã®INTRã©ã€ã³ã«æ¥ç¶ãããŠããããã±ãããåä¿¡ãããšããããã¯ãŒã¯ã«ãŒãã¯ãã®ã©ã€ã³ãããã«ãããŸãã ããã»ããµã¯ãããã«é¢ããæ å ±ãããããšãç解ãããã±ãããèªã¿åããŸãã
ããããããã€ã¹ãããããããå Žåã¯ã©ãã§ããããïŒ ããã»ããµã¬ãã°ã®ãã¹ãŠã®å€éšããã€ã¹ãååã«å ¥æããããšã¯ã§ããŸããã
ãã®åé¡ã解決ããããã«ã圌ãã¯ããããæãã€ãã-å²ã蟌ã¿ã³ã³ãããŒã©ã
åç
ïŒ wiki / osdev ïŒ
æåã¯Intel 8259 PICãããã§ããã 8ã€ã®å ¥åã©ã€ã³ïŒIRQ0ã7ïŒãããã³1ã€ã®åºåãã³ã³ãããŒã©ãŒãããã»ããµãŒã®INTRã©ã€ã³ã«æ¥ç¶ããŸãã ããã€ã¹ããã®å²ã蟌ã¿ãçºçãããšã8259ã¯INTRã©ã€ã³ããã«ããããã»ããµã¯äžéšã®ããã€ã¹ãå²ã蟌ã¿ãéç¥ããPICãããŒãªã³ã°ããŠã©ã®IRQxã¬ãã°ãå²ã蟌ã¿ãåŒãèµ·ãããããèªèããŸãã ãã®ããŒãªã³ã°ã«ã¯è¿œå ã®é 延ããããŸãããå²ã蟌ã¿ã©ã€ã³ã®æ°ã¯8ã«å¢ããŸãã
ãããã8è¡ã¯ããã«å°ãããªãããã®æ°ãå¢ããããã«ãã«ã¹ã±ãŒãæ¥ç¶ããã2ã€ã®8259ã³ã³ãããŒã©ãŒïŒãã¹ã¿ãŒãšã¹ã¬ãŒãïŒã䜿çšãå§ããŸããïŒãã¥ã¢ã«PICïŒã
IRQ 0ã7ã¯æåã®Intel 8259 PICïŒãã¹ã¿ãŒïŒã«ãã£ãŠåŠçãããIRQ 8ã15ã¯2çªç®ã®8259 PICïŒã¹ã¬ãŒãïŒã«ãã£ãŠåŠçãããŸãã ãã¹ã¿ãŒã®ã¿ãå²ã蟌ã¿ã®çºçãéç¥ããŸãã ã©ã€ã³8ã15ã§å²ã蟌ã¿ãçºçãããšã2çªç®ã®PICïŒã¹ã¬ãŒãïŒãIRQ 2ãä»ããŠãã¹ã¿ãŒã«å²ã蟌ã¿ãéç¥ãããã¹ã¿ãŒãCPUã«éç¥ããŸãã ãã®ã«ã¹ã±ãŒãå²ã蟌ã¿ã¯ã16è¡ã®ãã¡ã®1ã€ã䜿çšããŸãããæçµçã«ã¯ããã€ã¹ã«15ã®äœ¿çšå¯èœãªå²ã蟌ã¿ãæäŸããŸãã
åè·¯ã¯ããèªäœã確ç«ããŸããããããŠãããã¯åœŒããçŸåšPICïŒProgramm Interrupt ControllerïŒã«ã€ããŠè©±ããšãã圌ããæå³ããããšã§ãã ãã®åŸã8259ã³ã³ãããŒã©ãŒã¯ããã€ãã®æ¹åãåãã8259AãšããŠç¥ãããããã«ãªãããã®åè·¯ã¯ãããã»ããã«çµã¿èŸŒãŸããŸããã å€éšããã€ã¹ãæ¥ç¶ããããã®ã¡ã€ã³ãã¹ãISAãã¹ã§ãã£ãæ代ã«ã¯ããã®ãããªã·ã¹ãã å šäœã§ååã§ããã ISAå²ã蟌ã¿ã¯å ±æãããªãããã競åãåé¿ããããã«ãç°ãªãããã€ã¹ãåãIRQã©ã€ã³ã«æ¥ç¶ããªãããã«ããå¿ èŠããããŸããã
éåžžãããã€ã¹ã®å²ã蟌ã¿ã®ã¬ã€ã¢ãŠãã¯å€ããå°ãªããæšæºã§ãã
äŸïŒ ããããåŒçš ïŒïŒ
IRQ 0-ã·ã¹ãã ã¿ã€ããŒ
IRQ 1-ããŒããŒãã³ã³ãããŒã©ãŒ
IRQ 2-ã«ã¹ã±ãŒãïŒã¹ã¬ãŒãã³ã³ãããŒã©ãŒããã®å²ã蟌ã¿ïŒ
IRQ 3-ã·ãªã¢ã«ããŒãCOM2
IRQ 4-ã·ãªã¢ã«ããŒãCOM1
IRQ 5-ãã©ã¬ã«ããŒã2ããã³3ãŸãã¯ãµãŠã³ãã«ãŒã
IRQ 6-ãããããŒã³ã³ãããŒã©
IRQ 7-ãã©ã¬ã«ããŒã1
IRQ 8-RTCã¿ã€ããŒ
IRQ 9-ACPI
IRQ 10-ãªãŒãã³/ SCSI / NIC
IRQ 11-ãªãŒãã³/ SCSI / NIC
IRQ 12-ããŠã¹ã³ã³ãããŒã©ãŒ
IRQ 13-æ°åŠã³ããã»ããµãŒ
IRQ 14-ATAãã£ãã«1
IRQ 15-ATAãã£ãã«2
8259è¶ å°ååè·¯ã®æ§æãšäœæ¥ã¯ãI / OããŒããä»ããŠå®è¡ãããŸãã
ããã | ç»é²ãã | I / OããŒã |
---|---|---|
ãã¹ã¿ãŒåç | ã³ãã³ã | 0x0020 |
ãã¹ã¿ãŒåç | ããŒã¿ | 0x0021 |
ã¹ã¬ãŒãåç | ã³ãã³ã | 0x00A0 |
ã¹ã¬ãŒãåç | ããŒã¿ | 0x00A1 |
â8259Aã®ããã¥ã¡ã³ãã¯ãã¡ãã«ãããŸãã
ISAãã¹ã¯PCIãã¹ã«çœ®ãæããããŸããã ããã€ã¹ã®æ°ã¯æããã«15ãè¶ ãå§ããŸããããŸããéçISAãã¹ãšã¯ç°ãªãããã®å Žåãããã€ã¹ã¯ã·ã¹ãã ã«åçã«è¿œå ã§ããŸãã ããã幞ããªããšã«ããã®ãã¹ã§ã¯å²ã蟌ã¿ãå ±æã§ããŸãïŒã€ãŸããè€æ°ã®ããã€ã¹ã1ã€ã®IRQã©ã€ã³ã«æ¥ç¶ã§ããŸãïŒã ãã®çµæãIRQã©ã€ã³ã®äžè¶³ã®åé¡ã解決ããããã«ã圌ãã¯ãã¹ãŠã®PCIããã€ã¹ããã®å²ã蟌ã¿ãPIRQã©ã€ã³ïŒããã°ã©ã å¯èœãªå²ã蟌ã¿èŠæ±ïŒã«ã°ã«ãŒãåããããšã«ããŸããã
PICã³ã³ãããŒã©ãŒã«4æ¬ã®å²ã蟌ã¿ã©ã€ã³ãš20åã®PCIããã€ã¹ããããšããŸãããã PIRQxã©ã€ã³ããšã«5ã€ã®ããã€ã¹ã®å²ã蟌ã¿ãçµã¿åãããPIRQxã©ã€ã³ãã³ã³ãããŒã©ãŒã«æ¥ç¶ããŸãã PIRQxã©ã€ã³ã§å²ã蟌ã¿ãçºçããå Žåãããã»ããµã¯ãã®ã©ã€ã³ã«æ¥ç¶ãããŠãããã¹ãŠã®ããã€ã¹ã«åãåãããŠãå²ã蟌ã¿ã®åå ãææ¡ããå¿ èŠããããŸãããäžè¬çã«ã¯ããã§åé¡ã解決ããŸãã PIRQã©ã€ã³ã§PCIå²ã蟌ã¿ã©ã€ã³ããã€ã³ãããããã€ã¹ã¯ãå€ãã®å ŽåPIRã«ãŒã¿ãŒãšåŒã°ããŸãã
ãã®æ¹æ³ã§ã¯ãISAå²ã蟌ã¿ãæ¢ã«éå§ãããŠããIRQxã©ã€ã³ã«PIRQxã©ã€ã³ãæ¥ç¶ãããŠããªãããšïŒç«¶åãçºçããããïŒãããã³PIRQxã©ã€ã³ã®ãã©ã³ã¹ãåããŠããããšã確èªããå¿ èŠããããŸãïŒåãPIRQã©ã€ã³ã«æ¥ç¶ããããã€ã¹ãå€ãã»ã©ãå¿ èŠãªããã€ã¹ãå€ãããïŒãããã®ããã€ã¹ã®ã©ããå²ã蟌ã¿ãåŒãèµ·ãããããç解ããããã«ããã»ããµã«åãåãããŸãïŒã
泚 ïŒPCIããã€ã¹-> PIRãããã³ã°ã¯ãå®éã«ã¯ããè€éã§ãããããèŠçŽã§ç€ºãããŠããŸãã å®éã«ã¯ãåPCIããã€ã¹ã«ã¯4ã€ã®å²ã蟌ã¿ã©ã€ã³ïŒINTAãINTBãINTCãINTDïŒããããŸãã åPCIããã€ã¹ã«ã¯æ倧8ã€ã®æ©èœããããåæ©èœã«ã¯ãã§ã«1ã€ã®INTxå²ã蟌ã¿ããããŸãã ããã€ã¹ã®åæ©èœãååŸããINTxã®çš®é¡ã¯ããããã»ããã®æ§æã«ãã£ãŠæ±ºãŸããŸãã
æ¬è³ªçã«ãé¢æ°ã¯ç¬ç«ããè«çãããã¯ã§ãã ããšãã°ã1ã€ã®PCIããã€ã¹ã«ã¯ãSmbusã³ã³ãããŒã©ãŒæ©èœãSATAã³ã³ãããŒã©ãŒæ©èœãLPCããªããžæ©èœããããŸãã OSåŽããèŠããšãåæ©èœã¯ç¬èªã®PCI Configæ§æã¹ããŒã¹ãæã€åå¥ã®ããã€ã¹ã§ãã
BIOSã¯ã$ PIRããŒãã«ã䜿çšããåæ©èœã®PCIæ§æã¹ããŒã¹ã®3ChïŒINT_LNå²ã蟌ã¿ã©ã€ã³ïŒR / WïŒïŒããã³3DhïŒINT_PNå²ã蟌ã¿ãã³ïŒROïŒïŒã¬ãžã¹ã¿ãåããããšã«ãããPICäžã®å²ã蟌ã¿ã«ãŒãã£ã³ã°ã«é¢ããæ å ±ãBIOSã«æž¡ããŸããã $ PIRããŒãã«ã®ä»æ§ã¯ã以åã¯Microsoftã®Webãµã€ãã«ãããŸããããçŸåšã¯ãããŸããã $ PIRããŒãã«ã®è¡ã®å 容ã¯ã PCI BIOSä»æ§ [4.2.2ã PCIå²ã蟌ã¿ã«ãŒãã£ã³ã°ãªãã·ã§ã³ãååŸãã]ãŸãã¯ãã¡ãããèªã¿ãã ãã
ã¢ããã¯
ïŒ wiki ã osdev ïŒ
以åã®æ¹æ³ã¯ããã«ãããã»ããµã·ã¹ãã ãç»å ŽãããŸã§æ©èœããŸããã å®éããã®ããã€ã¹ã§ã¯ãPICã¯1ã€ã®ã¡ã€ã³ããã»ããµã®ã¿ã«å²ã蟌ã¿ãéä¿¡ã§ããŸãã ããããå²ã蟌ã¿åŠçããã®ããã»ããµã®è² è·ã®ãã©ã³ã¹ãåãããã§ãã ãã®åé¡ã®è§£æ±ºçã¯ãæ°ããã€ã³ã¿ãŒãã§ã€ã¹APICïŒã¢ããã³ã¹ãPICïŒã§ããã
åããã»ããµã«å¯ŸããŠãç¹å¥ãªLAPICã³ã³ãããŒã©ãŒïŒããŒã«ã«APICïŒãè¿œå ããã I / O APICã³ã³ãããŒã©ãŒãããã€ã¹ããã®å²ã蟌ã¿ãã«ãŒãã£ã³ã°ããããã«è¿œå ãããŸãã ãããã®ã³ã³ãããŒã©ãŒã¯ãã¹ãŠãAPICãšåŒã°ããå ±éãã¹ã§çµåãããŠããŸãïŒæ°ããã·ã¹ãã ã¯çŸåšãæšæºã·ã¹ãã ãã¹ãä»ããŠæ¥ç¶ãããŠããŸãïŒã
ããã€ã¹ããã®å²ã蟌ã¿ãI / O APICãã³ã«å°çãããšãã³ã³ãããŒã©ãŒã¯å²ã蟌ã¿ãããããã®ããã»ããµã®LAPICã«ã«ãŒãã£ã³ã°ããŸãã I / O APICã®ååšã«ãããããã»ããµéã®å€éšããã€ã¹ããã®å²ã蟌ã¿ã®åæ£ã®ãã©ã³ã¹ããšãããšãã§ããŸãã
æåã®APICãããã¯82489DX㧠ãLAPICãšI / O APICãçµã¿åãããå¥åã®ãããã§ããã 2ã€ã®ããã»ããµã®ã·ã¹ãã ãäœæããã«ã¯ã3ã€ã®ãã®ãããªè¶ å°ååè·¯ãå¿ èŠã§ããã 2ã¯LAPICãšããŠæ©èœãã1ã€ã¯I / O APICãšããŠæ©èœããŸãã ãã®åŸãLAPICæ©èœãããã»ããµã«çŽæ¥çµã¿èŸŒãŸããI / O APICæ©èœã82093AAãããã«çµã¿èŸŒãŸããŸããã
I / O APIC 82093AAã«ã¯24åã®å ¥åãã³ãå«ãŸããŠãããAPICã¢ãŒããã¯ãã£ã¯æ倧16åã®CPUããµããŒãã§ããŸãã å€ãã·ã¹ãã ãšã®äºææ§ãç¶æããããã«ã0ã15ã®å²ã蟌ã¿ãå€ãISAå²ã蟌ã¿ã«å²ãåœãŠãããŸããã ãããŠãPCIããã€ã¹ããã®å²ã蟌ã¿ãIRQè¡16-23ã«è¡šç€ºããå§ããŸããã ããã§ãISAããã³PCIããã€ã¹ããã®å²ã蟌ã¿ã®ç«¶åãèããªãããšãå¯èœã«ãªããŸããã ãŸãã空ãå²ã蟌ã¿ã©ã€ã³ã®æ°ãå¢ããããšã«ãããPIRQxã©ã€ã³ã®æ°ãå¢ããããšãå¯èœã«ãªããŸããã
I / O APICããã³LAPICããã°ã©ãã³ã°ã¯MMIOãä»ããŠè¡ãããŸãã LAPICã¬ãžã¹ã¿ã¯éåžž0xFEE00000ã«ãããI / O APICã¬ãžã¹ã¿ã¯0xFE00000ã«ãããŸãã ååãšããŠããããã®ã¢ãã¬ã¹ã¯ãã¹ãŠåæ§æã§ããŸãã
PICã®å Žåã®ããã«ãæåã¯åã ã®ããããåŸã§ãããã»ããã®äžéšã«ãªããŸããã
å°æ¥ãAPICã¢ãŒããã¯ãã£ã¯è¿ä»£åãããæ°ããããŒãžã§ã³ã¯xAPICïŒx-æ¡åŒµïŒãšåŒã°ããŸããã 以åã®ããŒãžã§ã³ãšã®äžäœäºææ§ãä¿æããŸããã ã·ã¹ãã ã§äœ¿çšå¯èœãªCPUã®æ°ã¯256ã«å¢å ããŸããã
ã¢ãŒããã¯ãã£éçºã®æ¬¡ã®ã©ãŠã³ãã¯x2APICãšåŒã°ããŠããŸãã ã ã·ã¹ãã ã§äœ¿çšå¯èœãªCPUã®æ°ã¯2 ^ 32ã«å¢å ããŸããã ã³ã³ãããŒã©ã¯ãxAPICäºæã¢ãŒãããŸãã¯LAPICããã°ã©ãã³ã°ãMMIOã§ã¯ãªãMSRã¬ãžã¹ã¿ïŒããé«éïŒã§å®è¡ãããæ°ããx2APICã¢ãŒãã§åäœã§ããŸãã ãã®ãªã³ã¯ããå€æãããšããã®ã¢ãŒããæ©èœããã«ã¯IOMMUãµããŒããå¿ èŠã§ãã
ã·ã¹ãã ã«ã¯è€æ°ã®I / O APICã³ã³ãããŒã©ãŒãããå Žåãããããšã«æ³šæããŠãã ããã ããšãã°ã1ã€ã¯ãµãŠã¹ããªããžã®24ã®äžæããã1ã€ã¯åã®32ã®äžæã§ãã I / Oã®ã³ã³ããã¹ãã§ã¯ãAPICå²ã蟌ã¿ã¯ãã°ãã°GSIïŒã°ããŒãã«ã·ã¹ãã å²ã蟌ã¿ïŒãšåŒã°ããŸãã ãã®ããããã®ãããªã·ã¹ãã ã§ã¯GSI 0-55ã«ãªããŸãã
CPUã«çµã¿èŸŒã¿LAPICããããCPUIDã®ããããã©ã°ã§ã©ã®ã¢ãŒããã¯ãã£ãç解ã§ãããã
ã·ã¹ãã ãLAPICããã³I / O APICãæ€åºããããã«ã¯ãBIOSã¯MPtableïŒå€ãæ¹æ³ïŒãŸãã¯ACPIããŒãã«ïŒãã®å Žåã¯MADTïŒã®ãããããä»ããŠã·ã¹ãã ã«é¢ããæ å ±ãæäŸããå¿ èŠããããŸãã äžè¬çãªæ å ±ã«å ããŠãMPtableãšACPIïŒä»åã¯DSDTããŒãã«ã«ãããŸãïŒã®äž¡æ¹ã«ãå²ã蟌ã¿ã«ãŒãã£ã³ã°ã«é¢ããæ å ±ãã€ãŸãã©ã®ããã€ã¹ãã©ã®å²ã蟌ã¿ã©ã€ã³ã«ãããã«é¢ããæ å ±ïŒ$ PIRããŒãã«ã®ã¢ããã°ïŒãå«ããå¿ èŠããããŸãã
å ¬åŒä»æ§ã® MPTableããŒãã«ã«ã€ããŠèªãããšãã§ããŸãã 以åã¯ãä»æ§ã¯ã€ã³ãã«ã®Webãµã€ãã«ãããŸããããçŸåšã¯ã¢ãŒã«ã€ãã§ã®ã¿èŠã€ããããšãã§ããŸãã ACPIä»æ§ã¯ãçŸåšUEFI Webãµã€ãïŒçŸåšã®ããŒãžã§ã³6.2 ïŒã«ãããŸãã ACPIã䜿çšãããšãïŒ$ PIRããŒãã«ã䜿çšãã代ããã«ïŒAPICã䜿çšããªãã·ã¹ãã ã®å²ã蟌ã¿ã«ãŒãã£ã³ã°ãæå®ã§ããããšã«æ³šæããŠãã ããã
Msi
ïŒ wiki ïŒ
APICã䜿çšãã以åã®ããŒãžã§ã³ã¯è¯å¥œã§ãããæ¬ é¥ããªãããã§ã¯ãããŸããã ãããã®ããã€ã¹å²ã蟌ã¿ã©ã€ã³ã¯ãã¹ãŠãåè·¯ãè€éã«ãããšã©ãŒã®å¯èœæ§ãé«ããŸãã PCIãã¹ã¯PCIãšã¯ã¹ãã¬ã¹ã«çœ®ãæããããå²ã蟌ã¿ã©ã€ã³ã¯åã«åé€ãããããšã決å®ãããŸããã äºææ§ãç¶æããããã«ãå²ã蟌ã¿ä¿¡å·ïŒINTxïŒïŒã¯ç¹å®ã®çš®é¡ã®ã¡ãã»ãŒãžã«ãã£ãŠãšãã¥ã¬ãŒããããŸãã ãã®ã¹ããŒã ã§ã¯ã以åã¯ã¯ã€ã€ã®ç©ççãªæ¥ç¶ã«ãã£ãŠè¡ãããŠããå²ã蟌ã¿ã©ã€ã³ã®è«ççãªè¿œå ããPCIããªããžã®è©ã«ããã£ãŠããŸããã ãã ããã¬ã¬ã·ãŒINTxå²ã蟌ã¿ãµããŒãã¯ãPCIãã¹ãšã®äžäœäºææ§ããµããŒãããã ãã§ãã å®éãPCIãšã¯ã¹ãã¬ã¹ã¯ãå²ã蟌ã¿ã¡ãã»ãŒãžãé ä¿¡ããæ°ããæ¹æ³-MSIïŒMessage Signaled InterruptsïŒãææ¡ããŠããŸãã ãã®æ¹æ³ã§ã¯ãããã€ã¹ã¯å²ã蟌ã¿ãéç¥ããããã«ãããã»ããµLAPICçšã«äºçŽãããŠããMMIOãšãªã¢ã«æžã蟌ã¿ãŸãã
以åã¯ã1ã€ã®PCIããã€ã¹ïŒã€ãŸãããã®ãã¹ãŠã®æ©èœïŒã«å²ãåœãŠãããå²ã蟌ã¿ã¯4ã€ã ãã§ããããçŸåšã§ã¯æ倧32ã®å²ã蟌ã¿ã«å¯Ÿå¿ã§ããããã«ãªããŸããã
MSIã®å Žåãåç·ã®å ±æã¯ãªããåå²ã蟌ã¿ã¯ãã®ããã€ã¹ã«å¯Ÿå¿ããŸãã
MSIå²ã蟌ã¿ã¯å¥ã®åé¡ã解決ããŸãã ããã€ã¹ãã¡ã¢ãªæžã蟌ã¿ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããå²ã蟌ã¿ãéããŠãã®å®äºãå ±åããããšããŸãã ãã ãã転éããã»ã¹äžã«ãã¹äžã§æžã蟌ã¿ãã©ã³ã¶ã¯ã·ã§ã³ãé 延ããå¯èœæ§ãããïŒããã€ã¹ã¯ãŸã£ããèªèããŸããïŒãå²ã蟌ã¿ä¿¡å·ã¯ããã»ããµã®åã«æ©ãå°çããŸãã ãããã£ãŠãCPUã¯åŒãç¶ãç¡å¹ãªããŒã¿ãèªã¿åããŸãã MSIã䜿çšãããå ŽåãMSIã«é¢ããæ å ±ã¯ããŒã¿ãšåæ§ã«éä¿¡ãããåã«æ©ãæ¥ãããšãã§ããŸããã
MSIå²ã蟌ã¿ã¯LAPICãªãã§ã¯æ©èœããŸããããMSIã䜿çšãããšI / O APICïŒèšèšã®ç°¡çŽ åïŒã«çœ®ãæããããããšã«æ³šæããŠãã ããã
ãã®åŸããã®ã¡ãœããã¯MSI-Xæ¡åŒµãåãåããŸããã ããã§ãåããã€ã¹ã¯æ倧2048ã®å²ã蟌ã¿ãæã€ããšãã§ããŸãã ãŸããå®è¡ããããã»ããµäžã®å²ã蟌ã¿ããšã«åå¥ã«ç€ºãããšãå¯èœã«ãªããŸããã ããã¯ããããã¯ãŒã¯ã«ãŒããªã©ã®è² è·ã®å€§ããããã€ã¹ã«éåžžã«åœ¹ç«ã¡ãŸãã
MSIããµããŒãããããã«è¿œå ã®BIOSããŒãã«ã¯å¿ èŠãããŸããã ãã ããããã€ã¹ã¯PCI Configã®æ©èœã®1ã€ã§MSIãµããŒããå ±åããå¿ èŠããããããã€ã¹ãã©ã€ããŒã¯MSIã®æäœããµããŒãããå¿ èŠããããŸãã
ãããã«
ãã®èšäºã§ã¯ãå²ã蟌ã¿ã³ã³ãããŒã©ãŒã®é²åã調æ»ããx86ã·ã¹ãã ã®å€éšããã€ã¹ããã®å²ã蟌ã¿ã®é ä¿¡ã«é¢ããäžè¬çãªçè«æ å ±ãåãåããŸããã
次ã®ããŒãã§ã¯ã説æããåã³ã³ãããŒã©ãŒãå®éã«Linuxã§äœ¿çšããæ¹æ³ãèŠãŠãããŸãã