INtime Tech

INtime Top


H5-1. PCI µð¹ÙÀ̽ºÀÇ ±¸Á¶¿Í Á¦¾î


¿©±â¿¡¼­´Â PCI µð¹ÙÀ̽ºÀÇ ±¸Á¶¿Í Á¦¾î¿¡ °üÇÑ Á¤º¸¸¦ °ÔÀçÇÕ´Ï´Ù.

INtime softwareÀÇ µµÀÔ¿¡ ÀÇÇØ PCI µð¹ÙÀ̽º·ÎÀÇ ¾×¼¼½º´Â ¿ëÀÌÇÏ°Ô µË´Ï´Ù.

INtimeÀ» »ç¿ëÇØ¼­ ¾Ö°Ô½ºÇÏ´Â °æ¿ìÀÇ Æ÷ÀÎÆ®¸¦ ¼Ò°³ÇÕ´Ï´Ù.


PCI configuration ·¹Áö½ºÅÍ¿¡ ´ëÇØ

PCI µð¹ÙÀ̽º Á¦¾î¸¦ ÇàÇϱâ À§ÇÑ ÀÌÇØ°¡ ±í¾îÁö±â À§Çؼ­, PCI configuration ·¹Áö½ºÅ͸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. ¸ðµç PCI µð¹ÙÀ̽º°¡ Á¤ÀÇÇÏ´Â ·¹Áö½ºÅÍ¿¡ °üÇÑ Á¤º¸¸¦ °ÔÁ¦Çϰí ÀÖ½À´Ï´Ù.

 

PCI µð¹ÙÀ̽º Á¦¾îÀÇ È帧

PCI µð¹ÙÀ̽º¸¦ Á¦¾îÇÏ´Â °æ¿ì, ÀϹÝÀûÀ¸·Î ÀÌÇÏ¿Í °°Àº 󸮰¡ ÇÊ¿äÇÕ´Ï´Ù£º

  • 1. Á¦¾îÇÏ´Â PCI µð¹ÙÀ̽ºÀÇ °ËÃâ
    PCI µð¹ÙÀ̽º¿¡ ¾×¼¼½º Çϱâ À§Çؼ­´Â, Á¦¾îÇÏ´Â µð¹ÙÀ̽º¸¦ °ËÃâÇØ, ±× µð¹ÙÀ̽º Á¤º¸¸¦ PCI configuration ·¹Áö½ºÅͷκÎÅÍ ÃëµæÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

  • 2. ÀÎÅÍ·´Æ® ·¹º§(IRQ)ÀÇ Ãëµæ
    PCI µð¹ÙÀ̽ºÀÇ ÀÎÅÍ·´Æ®¸¦ ÀÌ¿ëÇÏ´Â °æ¿ì, Á¦¾îÇÏ´Â PCI µð¹ÙÀ̽º¸¦ ÇÒ´çÇÒ ¼ö ÀÖ´Â ÀÎÅÍ·´Æ® ¶óÀÎÀ¸·ÎºÎÅÍ ÀÎÅÍ·´Æ® ·¹º§À» ÃëµæÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÎÅÍ·´Æ®¸¦ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì, ÀÌ °ªÀ» ÃëµæÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù

  • 3. PCI µð¹ÙÀ̽º ¾×¼¼½º Çã°¡ ¼³Á¤                                                                               

    RTDRM.SYS¸¦ Àû¿ëÇÒ ¼ö ¾ø´Â °æ¿ì, ȤÀº µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ÀνºÅç µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, Windows´Â ÇØ´çÇÏ´Â PCI µð¹ÙÀ̽º¿¡ ´ëÇØ¼­ ¾×¼¼½º ±ÝÁö ¼³Á¤À» ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ »óÅÂÀÇ PCI µð¹ÙÀ̽º¸¦ Á¦¾îÇÏ´Â °æ¿ì, ¾×¼¼½º ±ÝÁö ¼³Á¤À» ÇØÁ¦ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

  • 4. PCI µð¹ÙÀ̽ºÀÇ I/O°ø°£, ¸Þ¸ð¸® °ø°£ ¾×¼¼½º¿ë ÁÖ¼ÒÀÇ Ãëµæ
    Á¦¾îÇÏ´Â µð¹ÙÀ̽ºÀÇ I/O°ø°£ º£À̽º ÁÖ¼Ò, ¶Ç´Â/´õÇØ¼­, ¸Þ¸ð¸® °ø°£ º£À̽º ÁÖ¼Ò¸¦ ÃëµæÇØ, µð¹ÙÀ̽ºÀÇ Á¦¾î ·¹Áö½ºÅÍ¿¡ ¾×¼¼½º ÇÕ´Ï´Ù. ÀÌ º£À̽º ÁÖ¼Ò¸¦ ÃëµæÇÒ ¶§, ÁÖÀÇÇÏ´Â Á¡ÀÌ ÀÖ½À´Ï´Ù.

  • 5. ¸Þ¸ð¸® °ø°£À» °¡»ó ¸Þ¸ð¸®»ó¿¡ ¸Ê
    Á¦¾îÇÏ´Â µð¹ÙÀ̽º¿¡ ´ëÇØ¼­ ¸Þ¸ð¸®¾×¼¼½º ÇÏ´Â °æ¿ì, PCI µð¹ÙÀ̽º°¡ °¡Áö´Â ¸Þ¸ð¸® °ø°£À» ¾îÇø®ÄÉÀ̼ÇÀÇ °¡»ó ¸Þ¸ð¸® °ø°£¿¡ ¸ÅÇÎ ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

  • 6. ÃëµæÇÑ I/O°ø°£, ¸Þ¸ð¸® °ø°£ ¾×¼¼½º¿ë ÁÖ¼Ò¸¦ ÀÌ¿ëÇÑ µð¹ÙÀ̽º Á¦¾î

    ·¹Áö½ºÅÍ¿¡ÀÇ ¾×¼¼½º¿¡ ÀÇÇØ µð¹ÙÀ̽º¸¦ Á¦¾îÇÕ´Ï´Ù. ·¹Áö½ºÅÍ¿¡ÀÇ ¾×¼¼½º ¹æ¹ýÀ̳ª ¾×¼¼½º ÇÏ´Â ·¹Áö½ºÅ͵ ´ëÇØ¼­´Â µð¹ÙÀ̽º¸¦ Á¦°øÇÏ´Â º¥´õº¸´Ù »ó¼¼ÇÑ I/O¸Ê Á¤º¸¸¦ ÀÔ¼öÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.


code00.png

PCI µð¹ÙÀ̽º Á¦¾îÀÇ È帧(ÄÚµå)

 

Äڵ忡 ÀÇÇÑ PCI µð¹ÙÀ̽º Á¦¾î ÇØ¼³

¿©±â¿¡¼­´Â ÀÌÇÏÀÇ °¡»óÀûÀÎ PCI µð¹ÙÀ̽º¸¦ »óÁ¤ÇØ, PCI µð¹ÙÀ̽ºÀÇ ±¸Á¶¿Í Á¦¾î#pciproc·Î ¼³¸íµÇ°í ÀÖ´Â PCI µð¹ÙÀ̽º Á¦¾îÀÇ È帧À» ÄÚµå ·¹º§·Î ÇØ¼³ÇÕ´Ï´Ù.
°¡»óÀûÀÎ PCI µð¹ÙÀ̽º´Â ÀÌÇÏ¿Í °°Àº »ç¾çÀÇ °ÍÀ¸·Î ÇÏ´Â:

  • °¡»ó PCI µð¹ÙÀ̽º(DUMMY_PCI)

    • º¥´õ ID: 0x1234

    • µð¹ÙÀ̽º ID: 0x5678

    • I/Oº£À̽º ÁÖ¼Ò¿¡ ÀÇÇÑ I/O¾×¼¼½º°¡´É

    • I/Oº£À̽º ÁÖ¼Ò´Â dwBaseAddress[0-5]ÀÇ 0¿¡ °Ý³³µÇ°í ÀÖ´Â

    • ¸Þ¸ð¸®º£À̽º¾Æµå·¹½º¿¡ ÀÇÇÑ ¸Þ¸ð¸®¾ÆÅ©¼¼½º°¡´É

    • ¸Þ¸ð¸®º£À̽º¾Æµå·¹½º´Â dwBaseAddress[0-5]ÀÇ 2¿¡ °Ý³³µÇ°í ÀÖ´Â

    • µð¹ÙÀ̽º°¡ °¡Áö´Â ¸Þ¸ð ¸®»çÀÌÁî´Â 1MB

 

1. Á¦¾îÇÏ´Â PCI µð¹ÙÀ̽ºÀÇ °ËÃâ

PCI µð¹ÙÀ̽º¸¦ °ËÃâÇϱâ À§Çؼ­´Â PCIDEV ±¸Á¶Ã¼ÀÇ Á¤ÀÇ¿Í °ËÃâÇÏ´Â µð¹ÙÀ̽ºÀÇ º¥´õ ID, µð¹ÙÀ̽º ID°¡ ÇÊ¿äÇÕ´Ï´Ù.º¥´õ ID, µð¹ÙÀ̽º ID¸¦ PCIDEV ±¸Á¶Ã¼·Î ¼³Á¤ÇØ, PciFindDevice() ÇÔ¼ö¸¦ ÄÝ ÇÏ´Â °ÍÀ¸·Î½á, °ËÃâÇÑ µð¹ÙÀ̽º Á¤º¸¸¦ °Ý³³ÇÑ PCIDEV ±¸Á¶Ã¼ º¯¼ö¸¦ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. DUMMY_PCIÀÇ º¥´õ ID°¡ 0x1234, µð¹ÙÀ̽º ID°¡ 0x5678À̱⠶§¹®¿¡ °¢ °¢À» PCIDEV ±¸Á¶Ã¼ º¯¼öÀÎ dev¿¡ °Ý³³ÇØ, PciFindDevice¸¦ ÄÝ ÇÕ´Ï´Ù. PciFindDevice´Â ½ÇÆÐ½Ã¿¡ FALSE¸¦ ¹ÝȯÇÕ´Ï´Ù .PCI µð¹ÙÀ̽º¸¦ °ËÃâÇÒ ¼ö ¾ø´Â ÀÌ»ó, µð¹ÙÀ̽º¿¡ÀÇ ¾×¼¼½º´Â ºÒ°¡´ÉÀ̶ó´Â °ÍÀÌ µÇ±â ¶§¹®¿¡ º»Ã³¸®¸¦ Á¾·áÇÕ´Ï´Ù.


 

PCI µð¹ÙÀ̽º °ËÃâ

 

 

2. ÀÎÅÍ·´Æ® ·¹º§(IRQ)ÀÇ Ãëµæ

PCI µð¹ÙÀ̽º Á¦¾î·Î ÀÎÅÍ·´Æ®¸¦ »ç¿ëÇÏ´Â °æ¿ì, µð¹ÙÀ̽ºÀÇ ÀÎÅÍ·´Æ® ¶óÀÎÀ¸·ÎºÎÅÍ, ÀÎÅÍ·´Æ® ·¹º§À» ÃëµæÇÕ´Ï´Ù. INtime Version2.23À¸·ÎºÎÅÍ, APIC ¸ðµå¸¦ ¼­Æ÷Æ®ÇÏ´Â °ÍÀ¸·Î½á, ÀÎÅÍ·´Æ® ¶óÀÎÀ¸·Î¼­ ÇÒ´çÇÒ ¼ö ÀÖ´Â ¼öÄ¡°¡ Á¾·¡ÀÇ 0¿¡¼­ 15(PIC ¸ðµå)±îÁö·ÎºÎÅÍ, Å©°Ô º¯°æµÇ¾î ³í¸®ÀûÀ¸·Î 16·ÎºÎÅÍ 254±îÁöÀÇ ¼öÄ¡¸¦ Ãë±ÞÇÏ°Ô µÇ¾ú½À´Ï´Ù. °Å±â¿¡ µû¶ó, IRQ ·¹º§ Ãëµæ ³í¸®°¡ º¯°æµÇ¾ú½À´Ï´Ù. ÀÌ ³í¸®´Â Á¾·¡ÀÇ PIC ¸ðµå¿¡µµ ´ëÀÀÇϰí Àֱ⠶§¹®¿¡, ÇâÈÄ, ÀÌ ³í¸®¸¦ »ç¿ëÇØ IRQ ·¹º§À» ÃëµæÇϵµ·Ï ÇØ ÁÖ¼¼¿ä.


code08.png

IRQ ·¹º§ Ãëµæ

 

3. PCI µð¹ÙÀ̽º ¾×¼¼½º Çã°¡ ¼³Á¤

Windows°¡ µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ÀνºÅç µÇ¾î ÀÖÁö ¾ÊÀº PCI µð¹ÙÀ̽ºÀÇ Ä¿¸àµå ·¹Áö½ºÅÍ¿¡ ´ëÇØ ¾×¼¼½º ±ÝÁö Ç÷¡±×¸¦ ¼³Á¤ÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.±ÝÁö Ç÷¡±×¸¦ ¼³Á¤µÇ´Â °ÍÀ» »óÁ¤ÇØ, Ä¿¸àµå ·¹Áö½ºÅÍÀÇ °ªÀ» ¹Ì¸® ÃëµæÇØ, ¾×¼¼½º ±ÝÁö Ç÷¡±×(I/O¾×¼¼½º·¸Þ¸ð¸®¾ÆÅ©¼¼½º)¸¦ ÇØÁ¦ÇÑ °ªÀ» ÀçÂ÷ ¼³Á¤ÇØ ÀÖ½À´Ï´Ù.


code02.png

I/O¾×¼¼½º·¸Þ¸ð¸®¾×¼¼½º ±ÝÁö Ç÷¡±×ÀÇ ÇØÁ¦

 

4. PCI µð¹ÙÀ̽ºÀÇ I/O°ø°£, ¸Þ¸ð¸® °ø°£ ¾×¼¼½º¿ë ÁÖ¼ÒÀÇ Ãëµæ

PCI µð¹ÙÀ̽º¿¡ ¾×¼¼½º Çϱâ À§Çؼ­´Â, PCI configuration °ø°£ÀÇ º£À̽º ¾îµå·¹½º ·¹Áö½ºÅÍ(OFFSET:10H)·Î ¼³Á¤µÇ¾î ÀÖ´Â º£À̽º ÁÖ¼Ò¸¦ ÃëµæÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ º£À̽º ¾îµå·¹½º ·¹Áö½ºÅÍ´Â DWORD[0~5]ÀÇ ±¸¼ºÀÌ µÇ°í ÀÖ½À´Ï´Ù¸¸, ½ÇÁ¦ ¾îµð¿¡ °Ý³³µÇ°í ÀÖ´ÂÁö, ¶ó°í ÇÏ´Â °ÍÀº º¥´õ·ÎºÎÅÍ Á¦°øµÇ´Â I/O¸Ê ÀÚ·á¿¡ ±Ù°ÅÇØ Á¶»çÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.¿©±â¿¡¼­´Â I/OÁÖ¼Ò°¡ 0, ¸Þ¸ð¸®¾Æµå·¹½º°¡ 2¿¡ °Ý³³µÇ°í Àֱ⠶§¹®¿¡ °¢ ·¹Áö½ºÅͺ¸´Ù °¢°¢ ÃëµæÇϰí ÀÖ½À´Ï´Ù.
I/OÁÖ¼ÒÀÇ ÃëµæºÎ¿¡ ÀÖ°í´Â 0 xFFFC ¸¶½ºÅ©¸¦ °Ç °ªÀ» º£À̽º Áּҷμ­ ÃëµæÇϰí ÀÖ½À´Ï´Ù. À̰ÍÀº º£À̽º ¾îµå·¹½º ·¹Áö½ºÅÍÀÇ Æ¯Â¡À¸·Î¼­ ·¹Áö½ºÅÍÀÇ 0ºñÆ®ÀÇ °ªÀº, ÇØ´çÇÏ´Â º£À̽º ¾îµå·¹½º ·¹Áö½ºÅͰ¡ I/O°ø°£ÀÇ °ÍÀΰ¡, ¸Þ¸ð¸® °ø°£ÀÇ °ÍÀÎÁö¸¦ ÆÇ´ÜÇϱâ À§ÇÑ ÀεðÄÉÀÌÅÍ(indicator)·Î¼­ ÀÌ¿ëµÇ°í ÀÖ¾î ¶Ç ºñÆ® 1µµ Àǹ̸¦ °¡Áø´Ù°í ¿©°ÜÁö°í Àֱ⠶§¹®ÀÔ´Ï´Ù. ºñÆ® 0¿¡ ´ëÇØ¼­´Â I/O°ø°£ÀÇ °æ¿ì´Â ºñÆ® 1ÀÌ ¼³Á¤µÇ¾î ¸Þ¸ð¸® °ø°£ÀÇ °æ¿ì´Â ºñÆ®°¡ ¼³Á¤µÇÁö ¾Ê½À´Ï´Ù. ÀÌ ¶§¹®¿¡ °­Á¦ÀûÀ¸·Î, ºñÆ® 0, ºñÆ® 1¿¡ ´ëÇØ¼­ ¼³Á¤µÇ´Â Ç÷¡±×¸¦ ¸¶½ºÅ© ÇØ, ¿Ã¹Ù¸¥ º£À̽º ÁÖ¼Ò¸¦ ÃëµæÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº PCI configuration ·¹Áö½ºÅÍ ¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

I/O°ø°£ ÀεðÄÉÀÌÅÍ(indicator)ÀÇ ÇØÁ¦

 

5. ¸Þ¸ð¸® °ø°£À» °¡»ó ¸Þ¸ð¸®»ó¿¡ ¸Ê

¾×¼¼½º ÇÏ´Â °ø°£ÀÌ ¸Þ¸ð¸® °ø°£ÀÎ °æ¿ì, ÀÔÃâ·ÂÀº ¸Þ¸ð¸®¾×¼¼½º(READ/WRITE)°¡ µË´Ï´Ù. ¸Þ¸ð¸® ¾×¼¼½º¸¦ ½Ç½ÃÇϱâ À§Çؼ­´Â PCI µð¹ÙÀ̽ºÀÇ ¹°¸® ¸Þ¸ð¸®¸¦ ¾îÇø®ÄÉÀ̼ÇÀÌ °¡Áö´Â °¡»ó address °ø°£¿¡ ¸Ê ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. INtime¿¡ ´ëÇØ º£À̽º ÁÖ¼ÒÀÇ °ªÀÌ ÆäÀÌÁö¹Ù¿î´Ù¸®»ó(4096¹ÙÀÌÆ® ´ÜÀ§ °æ°è)¿¡ ¾ø´Â °æ¿ì, ¹°¸® ÁÖ¼Ò¸¦ ¸Ê ÇÒ ¼ö ¾ø½À´Ï´Ù. °Å±â¼­, ¿©±â¿¡¼­´Â ÃëµæÇÑ º£À̽º ÁÖ¼Ò°¡ ÆäÀÌÁö¹Ù¿î´Ù¸®»ó¿¡ ¿Ã¹Ù¸£°Ô ¹èÄ¡µÇÁö ¾ÊÀº °æ¿ì, ¸ÊÇϱâ À§ÇÑ º£À̽º ÁÖ¼Ò¸¦ Æ÷ÇÔÇÑ ÆäÀÌÁöÀÇ ¹Ù¿î´Ù¸®¸¦ º£À̽º·Î¼­ ¸Ê ÇÕ´Ï´Ù. ÀÌ·¸°Ô µÇ¸é, PCI µð¹ÙÀ̽ºÀÇ ¹°¸® ÁÖ¼Ò¿Í ½ÇÁ¦ÀÇ ¸Ê ÁÖ¼Ò°£¿¡ Â÷À̰¡ »ý°Ü ¿Ã¹Ù¸£°Ô ¾×¼¼½º ÇÒ ¼ö ¾ø½À´Ï´Ù. °Å±â¼­ Ç×»ó ¿ÀÇÁ¼ÂÄ¡¸¦ ´õÇÑ °ªÀ» µð¹ÙÀ̽º¿¡ ¾×¼¼½ºÇϱâ À§ÇÑ º£À̽º Áּҷμ­ ÃëµæÇÏ´Â ¹æ¹ýÀ» ä¿ëÇϰí ÀÖ½À´Ï´Ù. º£À̽º ÁÖ¼Ò°¡ ¹Ù¿î´Ù¸®»ó¿¡ ¹èÄ¡µÇÁö ¾Ê´Â °æ¿ì, È®º¸ÇÏ´Â ¸Þ¸ð¸®ÀÇ »çÀÌÁîµµ ÀüÈÄ 2 ÆäÀÌÁöºÐ Áõ°¡Çϰí ÀÖ½À´Ï´Ù. À̰ÍÀº ¸Ê ÇÏ´Â »çÀÌÁî°¡ ÆäÀÌÁö ´ÜÀ§(4096¹ÙÀÌÆ®)À̱â À§ÇØ, º£À̽º ÁÖ¼Ò°¡ ÆäÀÌÁö¹Ù¿î´Ù¸®»ó¿¡ ¾ø´Â ¹°¸® ¸Þ¸ð¸®¸¦ È®º¸Çϱâ À§Çؼ­´Â ±× ÁÖ¼Ò¸¦ Æ÷ÇÔÇÑ ºÒÇÊ¿äÇÑ 1 ÆäÀÌÁö·Î ³¡¼ö°¡ µÇ´Â ÃÖÁ¾ 1 ÆäÀÌÁöºÐÀ» °í·ÁÇÑ ´ÙÀ½ »çÀÌÁ °áÁ¤ÇÒ Çʿ䰡 Àֱ⠶§¹®¿¡ÀÔ´Ï´Ù.


code04.png

 

º£À̽º ÁּҷκÎÅÍ ¸Þ¸ð¸®¸¦ ¸Ê

 

6. ÃëµæÇÑ I/O°ø°£, ¸Þ¸ð¸® °ø°£ ¾×¼¼½º¿ë ÁÖ¼Ò¸¦ ÀÌ¿ëÇÑ µð¹ÙÀ̽º Á¦¾î

INtime·Î I/OÁÖ¼Ò¿¡ ´ëÇØ¼­ ¾×¼¼½º Çϱâ À§Çؼ­´Â BYTE ¾×¼¼½º(inbyte/outbyte), ¿öµå ¾×¼¼½º(inhword/outhword), DWORD ¾×¼¼½º(inword/outword)°¡ ÁغñµÇ¾î ÀÖ½À´Ï´Ù. ÃëµæÇÑ º£À̽º ÁÖ¼Ò+¿ÀÇÁ¼ÂÀ¸·Î PCI µð¹ÙÀ̽º°¡ °¡Áö´Â ·¹Áö½ºÅÍ¿¡ ´ëÇØ¼­ ¾×¼¼½º ÇÕ´Ï´Ù. ¸Þ¸ð¸®¾×¼¼½º¿¡ °üÇØ¼­´Â Åë»óÀÇ ¸Þ¸ð¸®¿Í °°ÀÌ ÁöÁ¤ Æ÷ÀÎÅÍ Á¶À۵ ÀÇÇØ °ªÀ» ÀÐ°í ¾²±âÇÏ°Ô µË´Ï´Ù.

code0a.png

PCI µð¹ÙÀ̽º¿¡ÀÇ ¾×¼¼½º

 


HOME | INtime