IRQ, DMA, Base Address¿¡ ´ëÇÑ ÀÌÇØ

Copyright (c) 1999, Eugene Blanchard
Published in Issue 38 of Linux Gazette, March 1999

¹ø¿ª : ¹è ö¼ö [¸®´ª½º ¿ùµå ¹ßÇàÀÎ]

 

 

    À̱â»ç´Â IBM ȣȯ ±âÁ¾ Çǽÿ¡¼­ IRQ, DMA, Base Address ÀÇ
    ÇÒ´ç ¹× ±â´É¿¡ °üÇÑ °ÍÀÌ´Ù. IBM ȣȯ Çǽà ¹× ÁÖº¯±â±â¿¡¼­ Á¦°øÇÏ´Â ¹®¼­´Â ±× ÀåÄ¡°¡ »ç¿ëÇÏ´Â À̵é ÀÚ¿ø¿¡ ´ëÇÑ »çÇ×À» ¼³¸íÇØ ÁÖ°í ÀÖÀ¸³ª Ç¥ÁØ ÀÚ¿øÇÒ´ç¿¡ °üÇÑ »çÇ×Àº ¾Ë·ÁÁÖ°í ÀÖÁö ¾Ê´Ù.  
    À̱â»ç°¡ ÀÌ °ñÄ¡¾ÆÇ ºÐ¾ß¿¡ ´ëÇÑ ¾È³»ÀÚ°¡ µÇ±æ ¹Ù¶õ´Ù.

 

1.  IRQ - Interrupt Request

    IRQ´Â Interrupt ReQuest¸¦ ¸»ÇÑ´Ù. ÀÌ´Â ISA ½½·Ô(EISA ¹× MCA¿¡¼­µµ °°´Ù)¿¡ ²ÅÈù ÁÖº¯±â±â Ä«µå°¡ CPU¿¡°Ô ¹º°¡ ÇÒ ¸»ÀÌ ÀÖ´Ù¸ç ¾î±ú¸¦ ÅöÅö Ä¡´Â ÇൿÀÌ´Ù. ÈçÇÑ ÁÖº¯±â±â Ä«µå´Â ³»Àå¸ðµ©, ·£Ä«µå(NIC : network interface cards), »ç¿îµåÄ«µå, SCSI ¾îµªÅÍ, HDD ÄÜÆ®·Ñ·¯, FDD ÄÜÆ®·Ñ·¯, COM Æ÷Æ® ¹× ÇÁ¸°ÅÍ Æ÷Æ® µîÀÌ´Ù.

    IRQ´Â Çϵå¿þ¾î ÀÎÅÍ·´Æ®ÀÌ´Ù. ÀÌ´Â ¸¶´õº¸µåÀÇ ISA ½½·ÔÀ¸·Î ¹°¸®ÀûÀÎ ¶óÀÎÀÌ ¿¬°áµÈ´Ù´Â ÀǹÌÀÌ´Ù.  ISA ½½·Ô¿¡´Â µÎ°¡Áö ÇüÅ°¡ ÀÖ´Ù. 8ºñÆ®¿Í 16ºñÆ®ÀÌ´Ù. 16ºñÆ®´Â 8ºñÆ® ½½·Ô¿¡ 16ºñÆ® ÀͽºÅÙ¼Ç ½½·ÔÀÌ Ãß°¡µÈ ÇüÅÂÀÌ´Ù.

    8ºñÆ® ISA ½½·ÔÀ¸·Î´Â 8°³ÀÇ(IRQ 0~7) IRQ ¶óÀÎÀÌ ¿¬°áµÈ´Ù. 16ºñÆ® ÀͽºÅÙ¼Ç ½½·ÔÀ¸·Î´Â Ãß°¡·Î 8°³ÀÇ(IRQ 8~15) IRQ ¶óÀÎÀÌ ´õ ¿¬°áµÈ´Ù. ÀϹÝÀûÀÎ ISA ¹ö½º¿¡´Â ÃÑ 16°³ÀÇ IRQ°¡ ÀÖ´Ù.  IRQ 0°¡ ¿ì¼± ¼øÀ§°¡ °¡Àå ³ô°í IRQ7ÀÌ °¡Àå ³·´Ù. IRQ8-15´Â ³ªÁß¿¡ ¼³¸íÇÏ´Â °Í ó·³ Ưº°ÇÑ ¿ì¼±±ÇÀ» °®´Â´Ù.

    IBMÀÌ AT Çǽø¦ ¼Ò°³ÇßÀ» ¶§ IRQ8-15¸¦ Ãß°¡Çß´Ù. ±×·¯³ª AT Çǽø¦ 8ºñÆ® XT¿Í ÈĹæ ȣȯ¼ºÀ» °®µµ·Ï ÇϱâÀ§ÇØ, ±×¸®°í »õ·Î¿î IRQ¶óÀÎÀÇ ¿ì¼±¼øÀ§¸¦ ¿Ã¸®±â À§ÇØ, µÎ ÀÎÅÍ·´Æ® ÄÜÆ®·Ñ·¯¸¦ ¿¬°áÇß´Ù. °á°ú·Î IRQ8-15´Â IRQ2¿Í °°Àº ¿ì¼±±ÇÀ» °®´Â´Ù. ¿ì¼±±ÇÀ̶õ µÎ IRQ ¶óÀÎÀÌ µ¿½Ã¿¡ ¼­ºñ½º¸¦ ¿äû½Ã ³ôÀº ¿ì¼±±ÇÀ» °®´ÂÂÊÀÌ ¿ì¼± ¼­ºñ½º¸¦ ¹Þ´Â´Ù´Â ¶æÀÌ´Ù.

    ¡á Áß¿ä
    IRQ´Â ¾î´À ÇÑ ¼ø°£¿¡ ÇÑ °³ÀÇ È°¼ºÈ­µÈ ÀåÄ¡¿¡ ´ëÇؼ­¸¸ ÇÒ´çµÈ´Ù. ¸¸¾à 2°³ÀÇÀåÄ¡°¡ °°Àº IRQ¸¦ °¡Áö¸é À̸¦ Ãæµ¹À̶ó ºÎ¸¥´Ù. ÀÌ °æ¿ì´Â IRQ ¶óÀÎÀÌ È°¼ºÈ­µÉ ¶§ CPU´Â ¾î´À ÀåÄ¡¿Í Á¢ÃËÇØ¾ß µÇ´ÂÁö¸¦ ¾Ë ¼ö ¾ø´Ù. ¿¹¸¦µé¾î ¸ðµ©°ú ·£Ä«µå°¡ µ¿½Ã¿¡ IRQ5¸¦ ¾´´Ù°í ÇÏÀÚ. ¸ðµ©ÀÌ CPU¿¡°Ô º¸³¾ µ¥ÀÌÅÍ°¡ ÀÖ´Ù¸é IRQ5¸¦ È°¼ºÈ­ÇÒ °ÍÀÌ´Ù. ±×·¯³ª CPU´Â ¸ðµ©°ú ´ëÈ­¸¦ ÇؾßÇÒÁö ·£Ä«µå¿Í ´ëÈ­¸¦ ÇؾßÇÒÁö ¾Ë ¼ö°¡ ¾ø´Ù. ÄÄÇ»ÅÍ´Â ¸ÔÅëÀÌ µÇ°Å³ª ¾Æ¹« Àϵµ ÀϾÁö ¾Ê°Å³ª ÀÌ´Ù.

¢¹ IRQ Ãæµ¹ÀÌ Çǽà ¿ÀÀÛµ¿ÀÇ °¡Àå ÁÖ¿äÇÑ ¿øõÀÌ´Ù.

    ¿©±â¿¡ Çǽÿ¡¼­ IRQ¸¦ ¼±ÅÃÇÏ´Â ±âÁØÀ» Á¦½ÃÇÑ´Ù. IRQ´Â ¿ì¼± ¼øÀ§¿¡ µû¶ó ³ª¿­Çß´Ù.(À§¿¡¼­ ³ª´Â ¸ðµç IRQ ¶óÀÎÀÌ Ä«µå ½½·ÔÀ¸·Î ¿¬°áµÈ´Ù°í °ÅÁþ¸»À» Çß´Ù.)

     

    IRQ

    ±â´É

    ¹°¸®Àû ¶óÀÎ

    ISA ¹ö½º

    IRQ0

    IRQ1

    IRQ2

    IRQ8

    IRQ9

    IRQ10

    IRQ11

    IRQ12

    IRQ13

    IRQ14

    IRQ15

    IRQ3

    IRQ4

    IRQ5

    IRQ6

    IRQ7

    System Timer

    Keyboard Controller

    Cascaded to IRQ8-15

    Real-time clock

    *-Available(IRQ2)

    ·£Ä«µå

    SCSI adapter

    PS2 ¸¶¿ì½º

    Math coprocessor

    Primary IDE controller

    Secondary IDE controller

    Com2/Com4

    Com1/Com3

    LPT2/ »ç¿îµå Ä«µå

    Floppy drive controller

    Parallel port LPTI

    No

    No

    No

    No

    Yes

    Yes

    Yes

    Yes

    No

    Yes

    Yes

    Yes

    Yes

    Yes

    Yes

    Yes

    -

    -

    -

    -

    8/16 bit

    16 bit

    16 bit

    16 bit

    -

    16 bit

    16 bit

    8 bit

    8 bit

    8 bit

    8 bit

    8 bit

 

    *. IRQ9´Â IRQ2ÀÎ °Íó·³ º¸ÀδÙ. º¸ÅëÀº Àß »ç¿ëµÇÁö ¾Ê´Â´Ù. ¹Ì¹¦ÇÑ ¹®Á¦¸¦ ¾ß±âÇϱ⠶§¹®ÀÌ´Ù.  IRQ9Àΰ¡ ¾Æ´Ï¸é 9¿¡ ¿¬°áµÈ 2Àΰ¡.

    À§´Â IRQ ¼±Åÿ¡ ´ëÇÑ °¡À̵å¶óÀÎÀÌ´Ù. ´ëºÎºÐÀÇ ¿ÀÅäµðÅØÆ® ¼ÒÇÁÆ®¿þ¾î³ª ¸®´ª½º ¿î¿µÃ¼Á¦´Â À§¿Í °°ÀÌ IRQ°¡ ÇÒ´çµÇ´Â °ÍÀ¸·Î ±â´ëÇÑ´Ù.

    ¿ªÀÚ ÁÖ ¢º
    À§ÀÇ IRQ Áß 10¹ø 11¹ø µÎ°³¸¸ ƯÁ¤ ÀåÄ¡¿¡ ÇÒ´çµÇ¾î ÀÖÁö ¾Ê°í ¸ðµç ÀåÄ¡¿¡¼­ »ç¿ëÀÌ °¡´ÉÇϸç, 2, 3, 4, 5, 7, 9, 12¹ø Àº Á¦ÇÑÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±× ¿ÜÀÇ IRQ´Â ÇǽÃÀÇ ±âº» ÀåÄ¡¿¡¼­ »ç¿ëÇϹǷΠÃß°¡ÀûÀÎ ÁÖº¯±â±â Ä«µå¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø´Ù.

    2¹ø°ú 9¹øÀº µÑ Áß Çϳª¸¸ »ç¿ëÀÌ °¡´ÉÇϳª ÀϺΠÇǽÿ¡¼­ ¹®Á¦¸¦ ¾ß±âÇÑ´Ù.

    3,4,5,7,12¹øÀ» ´Ù¸¥ ÀåÄ¡¿¡¼­ »ç¿ëÇÏ·Á¸é CMOS ¼Â¾÷¿¡¼­ ÇØ´ç ÁÖº¯±â±â¸¦ disable ÇØÁÖ¾î¾ßÇÑ´Ù.

¢¹ COM Æ÷Æ® Ãæµ¹ 

    com1°ú com3´Â IRQ4¸¦ °øÀ¯ÇÑ´Ù. ¶§¹®¿¡ ÇÑ ¼ø°£¿¡´Â ÇÑ °³ÀÇ ÀåÄ¡¸¸ »ç¿ëÀÌ °¡´ÉÇÏ´Ù. ¸¸¾à com1¿¡ ¸¶¿ì½º¸¦ ¾´´Ù¸é com3¿¡ ¿¬°áµÈ ³»Àå¸ðµ©À» »ç¿ëÇÒ ¼ö ¾ø´Ù. ¸î¸î Åë½ÅÇÁ·Î±×·¥¿¡¼­ ÀÌ°ÍÀ» °¡´ÉÇÏ°Ô Çϱ⵵ Çϳª ÀÌ»óÇÑ °á°ú¸¦ °¡Á®¿Â´Ù. ÈçÇÑ Áõ»óÀº ¸¶¿ì½º¸¦ ¿òÁ÷À̸é Å͹̳ÎÇÁ·Î±×·¥¿¡ ¾²·¹±â ¹®ÀÚ°¡ ³ªÅ¸³­´Ù.

    com2¿Í com4µµ IRQ3À» °øÀ¯ÇÑ´Ù. ±×·¯³ª ´ëºÎºÐÀº com2¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î ³»Àå¸ðµ©À» com4·Î ¼ÂÆÃÇÏ´Â°Ç º° ¹®Á¦°¡ ¾ø´Ù. com2´Â º¸Åë ¿ÜÀåÇü ¸ðµ©À̳ª Ç÷ÎÅÍ¿¡ ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ´Ù.

     

    Port

    IRQ

    ±â´É

    COM1

    COM2

    COM3

    COM4

    4

    3

    4

    3

    ¸¶¿ì½º

    Ç÷ÎÅÍ/¿ÜÀå¸ðµ©

    »ç¿ë¾ÊÀ½(¸¶¿ì½º¿Í Ãæµ¹)

    ³»Àå¸ðµ©(ºñ»ç¿ë)

     

 

2. DMA - Direct Memory Access

    ÀÌ´Â ÁÖº¯±â±â°¡ CPU¸¦ °ÅÄ¡Áö ¾Ê°í Á÷Á¢ ¸Þ¸ð¸®¿Í Àбâ/¾²±â¸¦ ÇÒ ¼ö ÀÖ´Â Åë·Î¸¦ ¿¬°áÇÏ´Â °ÍÀÌ´Ù. ÀÌ´Â CPU°¡ ´Ù¸¥ ÀÛ¾÷À» ÇÒ ¼ö ÀÖµµ·Ï ºÎ´ãÀ» ´ú¾îÁØ´Ù.

    Çǽÿ¡´Â 8°³ÀÇ DMA ä³ÎÀÌ ÀÖ´Ù : DMA0-7
    À̵éÀº 8ºñÆ®¿Í 16ºñÆ® ä³Î·Î ³ª´µ´Âµ¥ 8ºñÆ® ½½·Ô°ú 16ºñÆ® ½½·Ô¿¡ ´ëÀÀÇÑ´Ù.

    ¾Æ·¡´Â DMA ä³ÎÀ» ¼±ÅÃÇÏ´Â ±âÁØÀÌ´Ù.

     

    DMA

    ±â´É

    Physical Line

    ISA Bus

    Channel

    DMA0

    Available

    Yes

    16 bit

    8 bit

    DMA1

    Sound

    Yes

    8 bit

    8 bit

    DMA2

    Floppy Disk controller

    Yes

    8 bit

    8 bit

    DMA3

    ECP Parallel Port

    Yes

    8 bit

    8 bit

    DMA4

    *-Not used

    No

    -

    16 bit

    DMA5

    Sound

    Yes

    16 bit

    16 bit

    DMA6

    SCSI

    Yes

    16 bit

    16 bit

    DMA7

    Available

    Yes

    16 bit

    16 bit

     

    ÁÖ ¢º
    DMA0Àº 16ºñÆ® ISA ¹ö½º¿¡ ÀÖÀ¸³ª 8ºñÆ® ÆøÀ» °®´Â´Ù.
    DMA4´Â ù¹ø° 8ºñÆ® DMA ÄÜÆ®·Ñ·¯¿¡ ¿¬°áµÇ¹Ç·Î »ç¿ëµÇÁö ¾Ê´Â´Ù.

¢¹ DMA Ãæµ¹ÀÌ Çǽà ¿ÀÀÛµ¿ÀÇ 2¹ø° ¿øõÀÌ´Ù.

    IRQ¿Í °°ÀÌ ÇÑ ¼ø°£¿¡ È°¼ºÈ­µÈ ÀåÄ¡¿¡ ÇÑ °³ÀÇ DMA ä³Î¸¸À» ÇÒ´çÇÒ ¼ö ÀÖ´Ù. È°¼ºÈ­¶õ ´Ü¾î¸¦ ÁÖ¸ñÇ϶ó. ÀÌ´Â ±× ÀåÄ¡°¡ ÄÑÀÖ°í ¼ÒÇÁÆ®¿þ¾î¿¡¼­ ±× ÀåÄ¡¸¦ Á¢¼ÓÇÏ°í ÀÖÀ½À» ÀǹÌÇÑ´Ù.

    ÇÑ ¼ø°£¿¡ ÇÑ ÀåÄ¡¸¸ È°¼ºÈ­µÈ´Ù¸é 2°³ÀÇ ÀåÄ¡¿¡ 1°³ÀÇ DMA ä³ÎÀ» ÇÒ´çÇÒ ¼ö ÀÖ´Ù. À§ÇèÇϱâ´Â Çϳª °¡´ÉÇÏ´Ù.

     

3. Base Address

    º£À̽º ¾îµå·¹½º´Â I/O ports, I/O address, base ports¶ó°íµµ ºÒ¸°´Ù. À̵éÀº ¿î¿µÃ¼Á¦¿Í IO ÀåÄ¡»çÀÌÀÇ °¡±³¿ªÇÒÀ» ÇÏ´Â ¸Þ¸ð¸® Àå¼ÒÀÌ´Ù. ÁÖº¯±â±â´Â ¿î¿µÃ¼Á¦¿Í º£À̽º¾îµå·¹½º¸¦ ÅëÇØ ´ëÈ­ÇÑ´Ù. °¢ ÁÖº¯±â±â´Â µ¶ÀÚÀÛÀÎ º£À̽º¾îµå·¹½º¸¦ °®°í ÀÖ¾î¾ß ÇÑ´Ù.

    Ç¥ÁØ º£À̽º ¾îµå·¹½º ÇÒ´ç (16Áø¹ý)

     

    060h + 064h

    Keyboard controller

    170h + 376h

    Secondary IDE Hard-drive controller

    1F0h + 3F6h

    Primary IDE Hard-drive controller

    220h

    »ç¿îµåÄ«µå

    300h

    ·£Ä«µå

    330h

    SCSI adapter

    3F2h

    Floppy Drive Controller

    3F8h

    COM1

    2F8h

    COM2

    3E8h

    COM3

    2E8h

    COM4

    378h

    LPT1

    278h

    LPT2

     

¢¹ º£À̽º ¾îµå·¹½º Ãæµ¹ÀÌ Çǽà ¿ÀÀÛµ¿ÀÇ ¼¼¹ø° ÁÖ¿ä  ¿äÀÎÀÌ´Ù.

    À§´Â º£À̽º ¾îµå·¹½ºÀÇ ÀϺκÐÀÇ »ç¿ë ³»¿ªÀÌ´Ù.
    ±× ¿ÜÀÇ »ç¿ë³»¿ªÀº Çǽÿ¡ ¹«¾ùÀÌ ÀåÂøµÅ ÀÖ´À³Ä¿¡ Á¿ìµÈ´Ù.

     

4. ¸®´ª½º¿¡¼­ÀÇ ÀÚ¿ø¹èºÐ¿¡´ëÇÑ Á¤º¸

    ¸®´ª½º¿¡¼­ À§ÀÇ ÀÚ¿ø¿¡ ´ëÇÑ ±¸¼ºÀ» º¸·Á¸é /proc µð·ºÅ丮¿¡¼­ ¾Æ·¡ ¸í·ÉÀ» ÁÖ¶ó.

    cat  /proc/interrupts     »ç¿ëÁßÀÎ IRQ ¸í¼¼
    cat  /proc/ioports        »ç¿ëÁßÀÎ base addresses  ¸í¼¼
    cat  /proc/dma            »ç¿ëÁßÀÎ DMA ¸í¼¼




¡ã top

homeÀ¸·Î...