ÀÚÀ¯·Ó°Ô °Ô½Ã¹°À» ¿Ã¸±¼öÀÖ´Â °Ô½ÃÆÇÀÔ´Ï´Ù.
  • À¯³âÃß¾ï
  • Çб³»ýÈ°
  • ÀÔ½ÃÁغñ
  • ´ëÇлýÈ°
  • ±º»ýÈ°
  • ¾Ë¹Ù»ýÈ°
  • Ãë¾÷Áغñ
  • Á÷Àå»ýÈ°
  • ¿ø·ë»ýÈ°
  • ¿¬¾ÖÁß
  • °áÈ¥Áغñ
  • Áý¾È»ì¸²
  • Àڳ౳À°
  • â¾÷Áغñ
  • À̹ÎÀ¯ÇÐ
  • ³ëÈÄ»ýÈ°
  • Àüüº¸±â


Arx¿¡¼­ÀÇ »ç¿ëÀÚ ¼öÁØ ÀÔÃâ·Â

 


»ç¿ëÀÚ ¼öÁØ ÀÔÃâ·ÂÀº À̸¦ ÅëÇØ ÇÁ·Î±×·¡¸Ó°¡ ÁÖº¯ ±â±â¿¡ ´ëÇÏ¿© À¯¿¬ÇÏ°í È¿À²ÀûÀÎ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖµµ·Ï ÇØÁֱ⠶§¹®¿¡ ³»ÀåÇü ½Ç½Ã°£ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ Á¡Â÷ ±× Á߿伺ÀÌ ´õÇØÁö°í ÀÖ´Ù. ³»ÀåÇü ½Ã½ºÅÛ¿¡¼­ »ç¿ëÀÚ ¼öÁØ ÀÔÃâ·ÂÀ» Áö¿øÇϱâ À§Çؼ­´Â ¿î¿µÃ¼Á¦°¡ ÀÔÃâ·Â µð¹ÙÀ̽º·Î ºÎÅÍ ÇÁ·Î¼¼½º·Î ¿¹Ãø °¡´ÉÇÏ°í È¿À²ÀûÀÎ ¹æ¹ýÀ¸·Î ¿ÜºÎ ÀÎÅÍ·´Æ®¸¦ Àü´ÞÇÏ´Â ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇØ¾ß ÇÑ´Ù. Arx¿¡¼­´Â È¿À²ÀûÀÎ »õ·Ó°Ô ¼³°èµÈ »ç¿ëÀÚ ¼öÁØ ½Ã±×³¯ ¸ÞÄ¿´ÏÁò¿¡ ±â¹ÝÀ» µÐ »ç¿ëÀÚ ¼öÁØ ÀÔÃâ·Â ½ºÅ´À» Á¦°øÇÑ´Ù. °¡»ó ¾²·¹µå³ª ½ºÄÉÁ층 À̺¥Æ® ¾÷ÄÝ°ú °°Àº Ä¿³ÎÀÇ ´ÙÁß ¾²·¹µå ¾ÆÅ°ÅØÃĸ¦ Àß È°¿ëÇÑ ÀÌ·¯ÇÑ ½ºÅ´Àº ±âÁ¸ÀÇ ÀüÅëÀûÀÎ ½Ã±×³¯ ±¸ÇöÀÇ ¹®Á¦Á¡µéÀ» ±Øº¹ÇÒ ¼ö ÀÖ´Ù.

»ç¿ëÀÚ ¼öÁØ ÀÔÃâ·ÂÀ» Áö¿øÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ÀÎÅÍÆäÀ̽º(API)°¡ ¾Æ·¡¿Í °°´Ù.

uio_request(ioa_start, ioa_end, [type]): ÀÌ ÇÔ¼ö´Â »ç¿ëÀÚ ÇÁ·Î¼¼½º°¡ ioa_startºÎÅÍ ioa_end±îÁöÀÇ ÀÔÃâ·Â ÁÖ¼Ò¸¦ Á¢±ÙÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀ» ¾ò°Ô ÇØÁØ´Ù. ÀÌ ¿µ¿ªÀÇ ÁÖ¼Ò°¡ memory-mapped µð¹ÙÀ̽ºµé ¿¡ ÇØ´çÇÑ´Ù¸é ¹Ýµå½Ã page-alignµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­°¡ ÀÔÃâ·Â µð¹ÙÀ̽ºµé¿¡ ´ëÇÏ¿© I/O mapped¿Í memory-mapped ÁÖ¼Ò¸¦ µ¿½Ã¿¡ Áö¿øÇÑ´Ù¸é ÁÖ¼ÒÀÇ Å¸ÀÔÀÌ type ÆÛ¶ó¹ÌÅÍ¿¡ IOMAPÀ̳ª MEMORYMAP ÁßÀÇ Çϳª·Î ¹Ýµå½Ã ¸í½ÃµÇ¾î¾ß ÇÑ´Ù. Ä¿³ÎÀº »ç¿ëÀÚ ÇÁ·Î¼¼½ºµé¿¡°Ô ±ÇÇÑÀ» ºÎ¿©ÇÑ ÁÖ¼Ò ½ÖµéÀÇ ¸®½ºÆ®µéÀ» °ü¸®ÇÑ´Ù. È£ÃâµÇ¾îÁö¸é, ¸®½ºÆ®¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ ¼öÁØ ÀÔÃâ·Â Ãæµ¹À» °Ë»çÇÑ´Ù. Ãæµ¹ÀÌ ¹ß°ßµÇÁö ¾ÊÀ¸¸é ½ÂÀÎµÈ ÁÖ¼Ò¸¦ ³ªÅ¸³»´Â integer handleÀ» ¸®ÅÏÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. Arx Ä¿³ÎÀº ±â¹ÝÀÇ ¸¶Ä¡Å©·Î ÇÁ·Î¼¼¼­ÀÇ ¸Þ¸ð¸® º¸È£ ¸ÞÄ¿´ÏÁòÀ¸·Î ÀÔÃâ·Â ÁÖ¼Ò º¸È£¸¦ ½ÇÇöÇÑ´Ù. ¸¸¾à ÇÑ °³ÀÇ ÆäÀÌÁö°¡ ¸î °³ÀÇ ´Ù¸¥ µð¹ÙÀ̽ºµéÀÇ ¸Þ¸ð¸® ÁÖ¼ÒµéÀ» ó¸®ÇÑ´Ù¸é, ÇÑ°³ÀÇ ÇÁ·Î¼¼½º°¡ ´Ù¸¥ ÇÁ·Î¼¼½ºµé¿¡ ÀÇÇÏ¿© ¼ÒÀ¯µÇ´Â µð¹ÙÀ̽ºµéÀ» Á¢±ÙÇÒ °¡´É¼ºÀÌ ÀÖ´Ù. µû¶ó¼­ uio_request´Â memory-mapped µð¹ÙÀ̽ºµéÀÌ page-alignedÀ̱⸦ ¿ä±¸ÇÑ´Ù.
uio_release(handle): ÀÌ ÇÔ¼ö´Â handle·Î ³ªÅ¸³»¾îÁö´Â µð¹ÙÀ̽ºÀÇ Áּҵ鿡 ´ëÇÑ Á¢±Ù ±ÇÇÑÀ» ÇØÁ¦ÇÑ´Ù.
uio_int_request(irq, handler, type, flag): ÀÌ ÇÔ¼ö´Â »ç¿ëÀÚ ÀÎÅÍ·´Æ® Çڵ鷯¸¦ µî·ÏÇÑ´Ù. type ÀÎÀÚ´Â KERNEL_DISPATCH³ª USER_DISPATCH ÁßÀÇ Çϳª°¡ µÉ ¼ö ÀÖ´Ù. USER_DISPATCH°¡ ¼±ÅõǸé ÀÌ ÇÔ¼ö´Â ÀÎÅÍ·´Æ®¸¦ SIGRTMIN°ú SIFGRTMAX»çÀÌ¿¡¼­ ¼±ÅÃµÈ ºñ¾îÀÖ´Â ½Ã±×³¯ ¹øÈ£¸¦ ÇÒ´çÇÑ´Ù. ¸¸¾à È£ÃâÇÑ ÇÁ·Î¼¼½º°¡ ´ÙÁß ¾²·¹µå ÀÀ¿ë ÇÁ·Î±×·¥À̶ó¸é, ÀÌ ÇÔ¼ö´Â handler ¾²·¹µå¸¦ »ý¼ºÇÑ´Ù. flag ÀÎÀÚ°¡ 0À̶ó¸é ÀÎÅÍ·´Æ®¸¦ ¸·Àº »óÅ¿¡¼­ ¸®ÅÏÇÑ´Ù. ÀÌ ÇÔ¼ö°¡ ¼º°øÀûÀ¸·Î ¼öÇàÀ» ¸¶Ä¡¸é irq ¹øÈ£¿Í ½Ã±×³¯ ¹øÈ£ ¹× ¾²·¹µå ½Äº°ÀÚ¸¦ Æ÷ÇÔÇÏ´Â irq_info ±¸Á¶Ã¼¸¦ ¸®ÅÏÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, error¸¦ ¾Ï½ÃÇϸç, 0À» ¸®ÅÏÇÑ´Ù. ¾²·¹µå ½Äº°ÀÚ´Â ÇÁ·Î¼¼½º°¡ ¿ì¼±¼øÀ§ °°Àº handler ¾²·¹µåÀÇ ¼Ó¼ºÀ» Á¦¾îÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇÏ¿© ÇÊ¿äÇÑ´Ù.
uio_int_release(irq, flag): ÀÌ ÇÔ¼ö´Â »ç¿ëÀÚ ÀÎÅÍ·´Æ® Çڵ鷯ÀÇ µî·ÏÀ» ÇØÁ¦ÇÑ´Ù. flag ÀÎÀÚ°¡ 1À̸é, ¿¬°üµÈ handler ¾²·¹µåµµ Ãë¼Ò½ÃŲ´Ù.
uio_int_enable(irq), uio_int_disable(irq): ÀÌ ÇÔ¼ö´Â ÀÎÅÍ·´Æ®¸¦ °¡´ÉÇÏ°Ô Çϰųª ¸·´Â´Ù. ¸¸¾à µî·ÏµÈ Çڵ鷯°¡ ½Ã±×³¯ ±â¹Ý Çڵ鷯¶ó¸é, ½ÇÁ¦ÀÇ ÀÎÅÍ·´Æ®¸¦ ¸·Áö ¾Ê°í ´ÜÁö °ü·ÃµÈ ½Ã±×³¯À» maskÇϰųª unmaskÇÑ´Ù.
º» ½ÇÇè½Ç¿¡¼­´Â Arx¿¡¼­ÀÇ »ç¿ëÀÚ ¼öÁØ ÀÔÃâ·ÂÀÇ ¼º´ÉÀ» Áõ¸íÇϱâ À§ÇÏ¿© ´Ù¹æ¸é¿¡¼­ ½ÇÇèÀ» ÇØ¿Ô´Ù. ½ÇÇèµéÀº ¸í¹éÇÏ°Ô ArxÀÇ »ç¿ëÀÚ ¼öÁØ ÀÔÃâ·Â ½ºÅ´ÀÌ ÀûÀº ¿À¹öÇìµå·Î ¿ÜºÎ ÀÎÅÍ·´Æ®ÀÇ ¿¹Ãø°¡´ÉÇÑ Àü´ÞÀ» °¡´ÉÇÏ°Ô ÇÔÀ» º¸¿©ÁØ´Ù.

ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ÀÇ ¹®¼­¸¦ Âü°íÇϱ⠹ٶõ´Ù.



Efficient User-Level I/O in the ARX Real-Time Operating System.
1998 ACM Workshop on Languages, Compilers, and Tools for Embedded Systems. pp. 162-171, Monteal, Canada, June 1998.
Y. Seo, J. Park, and S. Hong.


2003-05-08 00:28:23
427 ¹ø ÀÐÀ½
  ÃÑ 1 °³ÀÇ ´ñ±ÛÀÌ ÀÖ½À´Ï´Ù.
  1. 1. Ä®·Î½º '03.5.8 12:58 AM ½Å°í
    :-D*ÇÁ·Î±×·¥ °Ô½ÃÆÇÀ¸·Î À̵¿ÇÕ´Ï´Ù ¡é´ñ±Û¿¡´ñ±Û
¢Ñ ·Î±×ÀÎ ÈÄ ÀÇ°ßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù
 Ä³½Ã¼±¹°





365ch.com 128bit Valid HTML 4.01 Transitional and Valid CSS!
ű×