ÄÚµå ·¹À̾ƿôÀ» º¯°æÇÏ¿© ¾îÇø®ÄÉÀ̼ÇÀÇ ÆÛÆ÷¸Õ½º¸¦ Çâ»ó½ÃŰ´Â ¹æ¹ý
Darryl Gove  

±Ô¸ð°¡ Å« ¾îÇø®ÄÉÀ̼ǵéÀº ¸î°¡Áö ¹®Á¦°¡ ÀÖ½À´Ï´Ù:¼ö¸¹Àº ¸í·É¾îµé·Î ÀÌ·ç¾îÁ® À־ ÇÁ·Î¼¼¼­°¡ Àüü ¾îÇø®ÄÉÀ̼ÇÀ» Ĩ¿¡ ÇѲ¨¹ø¿¡ ´ã¾Æ µÑ ¼ö°¡ ¾ø½À´Ï´Ù. °á°úÀûÀ¸·Î ±Ô¸ð°¡ Å« ¾îÇø®ÄÉÀ̼ÇÀº ÇÁ·Î¼¼¼­°¡ ¸Þ¸ð¸®¿¡¼­ »õ·Î¿î ¸í·É¾î¸¦ ºÒ·¯¿À´Â ½Ã°£ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ ¹®¼­¿¡¼­´Â ÇÁ·Î¼¼¼­°¡ ¸Þ¸ð¸®¿¡¼­ È¿°úÀûÀÎ ¸í·É¾î¸¦ ºÒ·¯ µé¿©¿Í¼­ ½ÇÇà ½Ã°£À» È¿°úÀûÀ¸·Î ´ÜÃàÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.

¸ðµç ¸í·É¾îµéÀÌ µ¿ÀÏÇÏÁö´Â ¾Ê´Ù

¾îÇø®ÄÉÀ̼ÇÀº ¸¹Àº ¸í·É¾îµé·Î ÀÌ·ç¾îÁ® ÀÖ°í ÄÚµåµéÀº ¸ðµç »óȲµé(°¡²û ¹ß»ýÇÏ´Â »óȲµéµµ Æ÷ÇÔÇÏ¿©)À» ´Ù·ê ¼ö ÀÖµµ·Ï ¾²¿©Áý´Ï´Ù. °á°úÀûÀ¸·Î ¸¹Àº ¾îÇø®ÄÉÀ̼Ǿȿ¡ ÀüÇô »ç¿ëµÇÁö ¾Ê´Â ¸í·É¾îµéµµ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ±×¸² 1À» ÂüÁ¶Çغ¾½Ã´Ù. ³ì»ö »ç°¢ÇüÀº ¸¹Àº ·çƾµéÀÌ Æ÷ÇÔµÈ Àüü ¾îÇø®ÄÉÀ̼ÇÀ» ³ªÅ¸³À´Ï´Ù. ·çƾµé Áß¿¡¼­ ÀÚÁÖ »ç¿ëµÇ´Â °ÍµéÀº »¡°£»öÀ¸·Î ³ªÅ¸³ª ÀÖ°í Àß »ç¿ëµÇÁö ¾Ê´Â ºÎºÐÀº ÆÄ¶õ»öÀ¸·Î ³ªÅ¸³ª ÀÖ½À´Ï´Ù.

Frame1

Àß »ç¿ëµÇÁö ¾Ê´Â ¸í·É¾îµéÀº ¸Þ¸ð¸®, ij½Ãµî¿¡¼­ °ø°£À» Â÷Áö Çϰí ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ÇÑ Ä³½Ã ¶óÀο¡ ÀÚÁÖ »ç¿ëµÇ´Â ¸í·É¾îµé°ú ÀÚÁÖ »ç¿ëµÇÁö ¾Ê´Â ¸í·É¾îµéÀÌ °°ÀÌ Æ÷ÇԵǾîÁ® ÀÖ´Ù¸é ÀÚÁÖ »ç¿ëµÇÁö ¾Ê´Â ¸í·É¾îµéÀº °ø°£¸¸ Â÷ÁöÇÒ »ÓÀÌ°í °á°úÀûÀ¸·Î Äڵ带 ºÒ·¯¿À±â À§ÇØ ´õ ¸¹Àº ij½Ã¶óÀÎÀÌ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù. ¶ÇÇÑ ¸Þ¸ð¸®¾È¿¡ ÄÚµåÀÇ ·¹À̾ƿô ¶§¹®¿¡ ÀÚÁÖ »ç¿ëµÇ´Â Äڵ尡 ¶Ç ´Ù¸¥ ÀÚÁÖ »ç¿ëµÇ´Â ÄÚµåÀÇ Ä³½Ã¸¦ Â÷ÁöÇÏ·Á°í ÇÏ´Â Àϵµ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ »óȲÀº ij½¬ÀÇ ¾²·¹½Ì(thrashing)À̶ó°í ºÒ¸³´Ï´Ù. °á·ÐÀûÀ¸·Î Á¦ÇÑµÈ ¸í·É¾îÀÇ ¼Âµé¸¸ ó¸® µÉ ¼ö ÀÖ½À´Ï´Ù.

¾îÇø®ÄÉÀ̼ǿ¡¼­ ÀÌ·¯ÇÑ ÄÚµå ·¹À̾ƿôÀÇ ¹®Á¦Á¡Àº ¾öû³­ ij½¬ ¹Ì½º À̺¥Æ®, TLB ¹Ì½º À̺¥Æ®, ¶Ç´Â ºÐ±â ¿¹Ãø ½ÇÆÐ À̺¥Æ® µîÀ» ¹ß»ý½Ãŵ´Ï´Ù. ÀÌ·¯ÇÑ ¹®Á¦µéÀº UltraSPARC-III ÀÇ ÆÛÆ÷¸Õ½º Ä«¿îÅ͸¦ ÅëÇØ¼­ ½Äº° ÇÒ ¼ö ÀÖ½À´Ï´Ù. (Using UltraSPARC-IIICu Performance Counters to Improve Application Performance ¹®¼­ ÂüÁ¶)

ÀÌÁ¦ ¸Þ¸ð¸®¾È¿¡¼­ ÄÚµå ·¹À̾ƿôÀ» Çâ»ó½ÃŰ´Â ±â¼ú¿¡ ´ëÇØ ¾Ë¾Æº¾½Ã´Ù. ÀÏ´Ü ±×Àü¿¡ ¾Ë¾ÆµÑ°ÍÀº ¸í·É¾î ·¹º§¿¡¼­¸¸ ÀÌ·¯ÇÑ ¹®Á¦°¡ ¹ß»ýÇÏ´Â °ÍÀº ¾Æ´Ï¶ó´Â °ÍÀ» ÀνÄÇÏ´Â °ÍÀÔ´Ï´Ù. ¸ðµç ·çƾÀÌ ¸Å¿ì ÀÚÁÖ »ç¿ëµÉ ¼öµµ ÀÖ°í ±×·¸Áö ¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù. ºñ½ÁÇÏ°Ô ¶óÀ̺귯¸®µµ Àüü°¡ ´Ù ÀÚÁÖ »ç¿ë µÉ ¼ö ÀÖ°í ÀÚÁÖ »ç¿ëµÇÁö ¾Ê´Â ÇϳªÀÇ ¶óÀ̺귯¸®Äݸ¸ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÄÄÆÄÀÏ·¯´Â ¸Þ¸ð¸®¾È¿¡¼­ ÄÚµåÀÇ ·¹À̾ƿôÀ» ¹Ù²Ü ¼ö ÀÖ´Â ±â´ÉÀÌ Àֱ⠶§¹®¿¡ ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇØ¼­ ¸Þ¸ð¸®¸¦ È¿°úÀûÀ¸·Î »ç¿ëÇϵµ·Ï ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ÀÏÀ» ÇϱâÀ§Çؼ± ¸î°¡Áö Á¤º¸°¡ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ ±ÛÀÇ ³ª¸ÓÁö ºÎºÐ¿¡¼­´Â ¸Þ¸ð¸®¿¡ ¾îÇø®ÄÉÀÌ¼Ç ·¹À̾ƿôÀ» Çâ»ó½Ãų ¼ö ÀÖ´Â 3°¡ÁöÀÇ ´Ù¸¥ Á¢±Ù¹ý¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.

mapfileÀ» ÀÌ¿ëÇÏ¿© ·çƾÀ» ÀçÁ¤·Ä

ÇѰ¡Áö Á¢±Ù ¹æ¹ýÀº mapfileÀ» ÀÌ¿ëÇÏ´Â °Í ÀÔ´Ï´Ù. mapfileÀº ¸µÄ¿°¡ ¸Þ¸ð¸®¿¡ ·çƾµéÀ» ¾î¶»°Ô ¹è¿­ ÇÒÁö¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ °ÍÀ» ÀÌ¿ëÇϱâ À§Çؼ­´Â ·çƾµéÀ» ÀÚÁÖ »ç¿ëÇÏ´Â ¼ø¼­´ë·Î Á¤·ÄÇÏ´Â °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. ±×¸² 2¹øÀº ¸ÊÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© ±×¸²1¹øÀÇ ÇÁ·Î±×·¥À» Àç¹è¿­ ÇÑ °ÍÀÔ´Ï´Ù.

Frame2

mapfileÀ» ¼öµ¿À¸·Î ¸¸µé¾î ÁÙ¼öµµ ÀÖÁö¸¸ ´õ ½¬¿î ¹æ¹ýÀº ÆÛÆ÷¸Õ½º ºÐ¼®±â¸¦ ÀÌ¿ëÇØ Á¢±ÙÇÏ´Â °ÍÀÔ´Ï´Ù:

  • flag -xF ¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥À» ºôµåÇÑ´Ù

  • Run the program with a representative workload under collect

  • er_print -mapfile <app> <mapfilename>¸¦ ÀÌ¿ëÇÏ¿© ¸ÊÆÄÀÏÀ» ¸¸µç´Ù

  • flags -xF -M <mapfile>¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥À» ÀçºôµåÇÑ´Ù.

¾îÇø®ÄÉÀ̼ÇÀÇ ¸ÊÆÄÀÏÀ» »ý¼ºÇÏ°í ³ª¸é ¾îÇø®ÄÉÀ̼ÇÀÇ ÇÁ·ÎÆÄÀÏÀÌ ¹Ù²î°Å³ª ·çƾÀÇ À̸§ÀÌ º¯°æµÇ°Å³ª ·çƾÀÌ Ãß°¡µÇ´õ¶óµµ °è¼Ó »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

$ cc -O -xF -o app *.c
$ collect app < test_data
   Creating experiment test.1.er ...
$ er_print -mapfile app app.map test.1.er
$ cc -O -xF -M app.map -o app *.c

Ç¥ 1 - ÆÛÆ÷¸Õ½º ºÐ¼®±â ÅøÀ» ÀÌ¿ëÇØ ¸ÊÆÄÀÏÀ» ÀÛ¼º

ÇÁ·ÎÆÄÀÏ Çǵå¹éÀ» ÀÌ¿ëÇÏ¿© ¸í·É¾îµéÀÇ ·¹À̾ƿôÀ» Çâ»ó

mapfileÀº ÀÚÁÖ »ç¿ëµÇ´Â ·çƾ°ú »ç¿ëµÇÁö ¾Ê´Â ·çƾÀ» ºÐ¸®Çϴµ¥ ¾ÆÁÖ À¯¿ëÇÕ´Ï´Ù. ±×·¯³ª ¸í·É¾î ·¹º§¿¡¼­ ÇÁ·Î¼¼¼­°¡ ½ÇÇàµÇÁö ¾Ê´Â ÄÚµåµéÀÇ ºí·°À» Á¡ÇÁÇϴµ¥ ¼Ò¿äµÇ´Â ½Ã°£µµ ¾ÆÁÖ ¸¹ÀÌ °É¸³´Ï´Ù. ÇÁ·ÎÆÄÀÏ Çǵå¹éÀº ÀÌ·¯ÇÑ Çö»óÀ» Çâ»ó½ÃŰ´Â ÄÄÆÄÀÏ·¯ ±â¼úÀÔ´Ï´Ù.

ÇÁ·ÎÆÄÀÏ Çǵå¹éÀº Äڵ尡 ÀüÇüÀûÀ¸·Î ¾î¶»°Ô µ¹¾Æ°¡´ÂÁö¿¡ ´ëÇÑ Á¤º¸¸¦ ÄÄÆÄÀÏ·¯¿¡ Á¦°øÇÏ´Â °ÍÀ¸·Î ´ÙÀ½°ú °°Àº Á¤º¸µéÀ» ÅëÇØ ÄÚµå ÃÖÀûÈ­¸¦ ¼öÇà ÇÒ ¼ö ÀÖ½À´Ï´Ù.:

  • Äڵ带 ÀçÁ¤·ÄÇÏ¿© ·çƾ ¾È¿¡ ÀÚÁÖ »ç¿ëµÇ´Â ÄÚµåµéÀ» ÇÑ ±ºµ¥·Î ¸ðÀº´Ù

  • ÀÚÁÖ ºÒ·ÁÁö´Â ·çƾµéÀº ¾Æ¿¹ Æ÷ÇÔ½ÃÄѼ­ ·çƾÀ» È£ÃâÇϴµ¥ µå´Â ºñ¿ëÀ» ÁÙ¿©ÁÖ°í ¶ÇÇÑ ÀáÀçÀûÀ¸·Î Æ÷ÇÔµÈ ÄÚµåµéÀÇ ÃÖÀûÈ­¸¦ °¡´ÉÇÏ°Ô ÇÑ´Ù

ÇÁ·ÎÆÄÀÏ Çǵå¹éÀº Å©·Î½ºÆÄÀÏ ÃÖÀûÈ­´Â(flag -xipo¿¡ ÀÇÇØ Á¶Á¤µÊ) ¸ðµç ¼Ò½ºÆÄÀÏ °£ÀÇ ÃÖÀûÈ­¸¦ ÀáÀçÀûÀ¸·Î °¡´ÉÇÏ°Ô ÇÏ´Â ÃÖ°íÀÇ ¹æ¹ýÀÔ´Ï´Ù.

±×¸² 3¹øÀº ÇÁ·ÎÆÄÀÏ Çǵå¹éÀÌ ¾î¶»°Ô ÀÚÁÖ ½ÇÇàµÇ´Â ÄÚµåµéÀ» Çѱºµ¥ Á¤·ÄÇÏ´ÂÁö¿¡ ´ëÇÑ ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.

 

Frame3

ÇÁ·ÎÇÁÀÏ Çǵå¹éÀº ¾Æ·¡¿Í °°ÀÌ Á÷°üÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù:

  • -xprofile=collect -xipo¸¦ ÀÌ¿ëÇÏ¿© ¾îÇø®ÄÉÀ̼ÇÀ» ºôµåÇÑ´Ù

  • Run the application with one or more representative workloads

  • -xprofile=use -xipo¸¦ ÀÌ¿ëÇÏ¿© ¾îÇø®ÄÉÀ̼ÇÀ» ÀçºôµåÇÑ´Ù

-xipo flag´Â ÄÄÆÄÀÏ·¯°¡ ¿©·¯ ¼Ò½ºÄÚµåµé¿¡ °ÉÃļ­ ÃÖÀûÈ­¸¦ ¼öÇàÇ϶ó´Â Áö½ÃÀÔ´Ï´Ù.

$ cc -O -xprofile=collect:app.profile -xipo -o app *.c 
$ app < test_data 
$ cc -O -xprofile=use:app.profile -xipo -o app *.c 

Ç¥ 2 - ÇÁ·ÎÇÁÀÏ Çǵå¹éÀ» ÀÌ¿ëÇÏ¿© ¾îÇø®ÄÉÀ̼ÇÀ» ÃÖÀûÈ­

¸µÅ©-ŸÀÓ ÃÖÀûÈ­

mapfileÀº ·çƾ ·¹º§¿¡¼­ ÀÛµ¿Çϰí ÇÁ·ÎÆÄÀÏ Çǵå¹é Àº ·çƾ ¾È¿¡¼­ »ç¿ëµË´Ï´Ù;µÎ °¡Áö¸¦ ÇѲ¨¹ø¿¡ »ç¿ë ÇÒ ¼ö ÀÖ´Ù¸é ´õ °£´ÜÇÒ °ÍÀÔ´Ï´Ù. ¸µÅ©-ŸÀÓ ÃÖÀûÈ­¸¦ ÅëÇØ¼­ À̰ÍÀÌ °¡´ÉÇÕ´Ï´Ù.(post-optimisationÀ̶ó°íµµ ºÒ¸²)

¸µÅ©Å¸ÀÓ ÃÖÀûÈ­ÀÇ ±âº» ¿ø¸®´Â ÀÌ·¸½À´Ï´Ù. ÄÄÆÄÀÏ·¯°¡ ÀÖ°í Äڵ尡 ÀÖ´Ù¸é ´ÜÁö ±×°ÍÀ» ¿Ã¹Ù¸£°Ô ¹è¿­ ÇÏ´Â °Í¸¸ÀÌ ¹®Á¦°¡ µË´Ï´Ù. Äڵ带 ¿Ã¹Ù¸£°Ô ¹è¿­Çϱâ À§Çؼ­´Â ¸µÅ©-ŸÀÓ ¿ÉƼ¸¶ÀÌÁ®°¡ ÀÚÁÖ »ç¿ëµÇ´Â ·çƾÀ» ÇÑ ±ºµ¥·Î ¸ðÀ¸°í(mapfileÀ» »ç¿ëÇϴ°Ͱú ºñ½Á) ·çƾ¾È¿¡ ÀÚÁÖ »ç¿ëµÇ´Â ¸í·É¾îµéÀ» ¶Ç´Ù½Ã ÇÑ ±ºµ¥·Î ¸ðÀ¸´Â °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô ÇÏ¿© ÀÚÁÖ »ç¿ëµÇ´Â ¸í·É¾îµéÀ» ÇÑ ±ºµ¥·Î ¸ðÀ¾´Ï´Ù. ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» ÅëÇØ¼­ ¸µÅ©-ŸÀÓ¿¡ ÃÖÀûÈ­°¡ °¡´ÉÇÕ´Ï´Ù:

  • ÀÚÁÖ »ç¿ëµÇ´Â Äڵ尡 È®ÀÎµÇ¸é ±×°ÍµéÀ» ÇÑ ±ºµ¥·Î ¸ðÀ¸´Â°ÍÀÌ °¡´ÉÇÏ°í ¶ÇÇÑ ÀÚÁÖ »ç¿ëµÇÁö ¾Ê´Â ÄÚµåµéµµ ¸ðÀ¸´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ±×·±ÈÄ¿¡ ´Ù¸¥ ·çƾ¿¡¼­ ÀÚÁÖ »ç¿ëµÇ´Â ÄÚµåµéÀ» ÀÚÁÖ »ç¿ëµÇ´Â ÇÑ Áö¿ªÀÇ ¸Þ¸ð¸®·Î À̵¿½ÃŲ´Ù.

  • º¯¼ö¿Í ·çƾµéÀÇ ÁÖ¼Ò°¡ Á¤È®ÇÏ°Ô °è»êÀÌ °¡´ÉÇÏ´Ù¸é Á» ´õ ÃÖÀûÈ­¸¦ ÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ ¸µÅ©-ŸÀÓ ¿ÉƼ¸¶ÀÌÁ®°¡ º¯¼ö³ª ·çƾÀÇ ÁÖ¼Ò °è»ê Ç¥ÇöÀ» °£´ÜÇÏ°Ô ÇÏ¿© ¸í·É¾î Ä«¿îÆ®¸¦ ÁÙ¿© ÁÙ ¼ö ÀÖ´Ù.

±×¸² 4¹øÀº ¸µÅ©-ŸÀÓ ÃÖÀûÈ­°¡ ¼öÇàµÈ µÚ¿¡ ¾îÇø®ÄÉÀ̼ÇÀÇ ¸ð½ÀÀ» º¸¿©ÁÝ´Ï´Ù. ÀÚÁÖ »ç¿ëµÇ´Â ÄÚµå´Â ¹ÙÀ̳ʸ®ÀÇ ÇÑ ºÎºÐ¿¡ ¸ð¿©Á® ÀÖ°í ÀÚÁÖ »ç¿ëµÇÁö ¾Ê´Â ºÎºÐÀº ³ª¸ÓÁö¿¡ ¹è¿­ µÇÀÖ½À´Ï´Ù.

Frame4

¸µÅ©-ŸÀÓ ÃÖÀûÈ­ ´Ü°è´Â ÇÁ·ÎÆÄÀÏ Çǵå¹é µ¥ÀÌÅͰ¡ ÇÊ¿äÇÕ´Ï´Ù. ±×·¡¼­ ´ÙÀ½°ú °°Àº ´Ü°è¸¦ µû¶ó¾ß ÇÕ´Ï´Ù:

  • flags -xprofile=collect -xipo¸¦ ÀÌ¿ëÇÏ¿© ¾îÇø®ÄÉÀ̼ÇÀ» ºôµåÇÑ´Ù

  • Run the application with one or more representative workloads

  • -xprofile=use -xipo -xlinkopt¸¦ ÀÌ¿ëÇÏ¿© ¾îÇø®ÄÉÀ̼ÇÀ» ¸®ºôµåÇÑ´Ù

$ cc -O -xprofile=collect:app.profile -xipo -o app *.c
$ app < test_data
$ cc -O -xprofile=use:app.profile -xipo -o app *.c -xlinkopt

Ç¥ 3 - ¸µÅ©-ŸÀÓ ÃÖÀûÈ­¿Í ÇÁ·ÎÆÄÀÏ Çǵå¹éÀ» Á¶ÇÕ

°á·Ð

Å« ±Ô¸ðÀÇ ¾îÇø®ÄÉÀ̼ǿ¡ ÀÌ·¯ÇÑ ±â¼úÀ» »ç¿ëÇÏ¸é ¾öû³­ ¼º´É Çâ»óÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð ºôµåŸÀÓÀÌ Áõ°¡ÇÏ°í ºôµåÀÇ º¹À⼺ÀÌ Áõ°¡ÇÑ´Ù´Â °ÍÀº ´ç¿¬ÇÕ´Ï´Ù; °á°úÀûÀ¸·Î Ãß°¡ÀûÀÎ ³ë·Â¿¡ ºñÇØ ¼º´ÉÀ» ¾ó¸¶³ª Çâ»ó½Ãų ¼ö ÀÖ´ÂÁö µûÁ® º» ÈÄ¿¡ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ ¸ðµç ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÌ·¯ÇÑ ÄÚµå ·¹À̾ƿô ÃÖÀûÈ­ °úÁ¤À» °ÅÃÄ¾ß ÇÏ´Â °Íµµ ¾Æ´Ï°í °³¹ß°úÁ¤¿¡¼­ÀÇ ºôµå¿¡¼­´Â ÀÌ·¯ÇÑ °úÁ¤ÀÌ ÇÊ¿ä¾øÀ¸¸ç ÃÖÁ¾ Á¦Ç° ºôµåÀ϶§¿¡ »ç¿ëµÇ¾î¾ß ÇÑ´Ù´Â °Íµµ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù.


ÀúÀÚ¿¡ ´ëÇÏ¿©
Darryl Gove´Â ½ã ¸¶ÀÌÅ©·Î½Ã½ºÅÛÁîÀÇ ÄÄÆÄÀÏ·¯ ÆÛÆ÷¸Õ½º ¿£Áö´Ï¾î¸µ ºÎ¼­¿¡¼­ ±Ù¹«Çϸç ÇöÀç ±×¸®°í ¹Ì·¡ÀÇ UltraSPARC ÇÁ·Î·¹¼­ »óÀÇ ¾îÇø®ÄÉÀÌ¼Ç ÆÛÆ÷¸Õ½º ÃÖÀûÈ­¸¦ ´ã´çÇÏ´Â ÀÏÀ» Çϰí ÀÖ´Ù. DarrylÀº ¿µ±¹ÀÇ »ç¿ì½º ÇÜÆ° ´ëÇп¡ ¼®,¹Ú»ç ÇÐÀ§¸¦ °¡Áö°í ÀÖ°í ½ã¿¡¼­ ±Ù¹«Çϱâ Àü¿¡´Â ¿µ±¹¿¡¼­ ´Ù¾çÇÑ ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡ Âü¿©Çß´Ù.