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¸Ê
Á¤º¸¸¦ ÀÔ¼öÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

PCI µð¹ÙÀ̽º Á¦¾îÀÇ È帧(ÄÚµå)
Äڵ忡 ÀÇÇÑ PCI µð¹ÙÀ̽º Á¦¾î ÇØ¼³
¿©±â¿¡¼´Â ÀÌÇÏÀÇ °¡»óÀûÀÎ PCI µð¹ÙÀ̽º¸¦ »óÁ¤ÇØ, PCI
µð¹ÙÀ̽ºÀÇ ±¸Á¶¿Í Á¦¾î#pciproc·Î ¼³¸íµÇ°í ÀÖ´Â PCI µð¹ÙÀ̽º Á¦¾îÀÇ È帧À» ÄÚµå ·¹º§·Î ÇØ¼³ÇÕ´Ï´Ù.
°¡»óÀûÀÎ PCI
µð¹ÙÀ̽º´Â ÀÌÇÏ¿Í °°Àº »ç¾çÀÇ °ÍÀ¸·Î ÇÏ´Â:
°¡»ó PCI µð¹ÙÀ̽º(DUMMY_PCI)
-
-
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 ·¹º§À» ÃëµæÇϵµ·Ï ÇØ ÁÖ¼¼¿ä.
IRQ ·¹º§ Ãëµæ
3. PCI µð¹ÙÀ̽º ¾×¼¼½º Çã°¡ ¼³Á¤
Windows°¡ µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ÀνºÅç µÇ¾î ÀÖÁö ¾ÊÀº PCI µð¹ÙÀ̽ºÀÇ Ä¿¸àµå ·¹Áö½ºÅÍ¿¡ ´ëÇØ ¾×¼¼½º
±ÝÁö Ç÷¡±×¸¦ ¼³Á¤ÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.±ÝÁö Ç÷¡±×¸¦ ¼³Á¤µÇ´Â °ÍÀ» »óÁ¤ÇØ, Ä¿¸àµå ·¹Áö½ºÅÍÀÇ °ªÀ» ¹Ì¸® ÃëµæÇØ, ¾×¼¼½º ±ÝÁö
Ç÷¡±×(I/O¾×¼¼½º·¸Þ¸ð¸®¾ÆÅ©¼¼½º)¸¦ ÇØÁ¦ÇÑ °ªÀ» ÀçÂ÷ ¼³Á¤ÇØ ÀÖ½À´Ï´Ù.
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 ÆäÀÌÁöºÐÀ» °í·ÁÇÑ ´ÙÀ½ »çÀÌÁ °áÁ¤ÇÒ Çʿ䰡 ÀÖ±â
¶§¹®¿¡ÀÔ´Ï´Ù.

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