´ÙÀ½ ÀÌÀü Â÷·Ê

6. ±× ¹Û¿¡

6.1 MTRR ¼³Á¤Çϱâ

        
                ** Matrox ºñµð¿À Ä«µå¸¦ °®°í ÀÖ´Â »ç¶÷µéÀº º¼ °Í **
                
                matroxfb¸¦ Ä¿³Î¿¡ ÄÄÆÄÀÏÇß´Ù¸é, ¾Æ¸¶µµ MTRRµéÀÌ 
                ÀÌ¹Ì ¼³Ä¡µÇ¾îÀÖÀ» °ÍÀÌ´Ù. ±×·¸´Ù¸é ÀÌ ÀåÀ» 
                °Ç³Ê¶Ù¾îµµ ¹«¹æÇÒ °ÍÀ¸·Î º»´Ù.

MTRRÀ» ¼³Á¤ÇÔÀ¸·Î½á °æ¿ì¿¡ µû¶ó ºñµð¿À ¼º´ÉÀÌ »ó´çÈ÷ ÁÁ¾ÆÁú ¼ö ÀÖ´Ù. µû¶ó¼­ ¼³Á¤ Çϱ⸦ ±Ç°íÇÑ´Ù. ¸ÕÀú, ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» Á༭ ¿©·¯ºÐÀÇ Ä¿³ÎÀÌ MTRR Áö¿øÀ» Æ÷ÇÔÇÏ°í ÀÖ´ÂÁö¸¦ È®ÀÎÇÒ ÇÊ¿ä°¡ ÀÖ´Ù:

           
           # ls /proc/mtrr

¸¸ÀÏ /proc/mtrr°ú °°Àº °ÍÀÌ ¾ø´Ù°í Çϸé, ¿©·¯ºÐÀÇ Ä¿³ÎÀ» MTRR Áö¿ø°ú ÇÔ²² ´Ù½Ã ÄÄÆÄÀÏ ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù(ÀÌ´Â Ä¿³Î ÄÄÆÄÀÏ menuconfig¾ÈÀÇ "Processor type and features"¿¡ ÀÖ´Ù).

ÀÏ´Ü MTRRÀÌ Á¦´ë·Î µ¿ÀÛÇÏ°í ÀÖÀ½À» È®ÀÎÇßÀ¸¸é, ¿©·¯ºÐÀÇ ºñµð¿À Ä«µåÀÇ ±âº» ¸Þ¸ð¸® ÁÖ¼Ò¿Í ºñµð¿À ·¥ÀÇ Å©±â°¡ ¾ó¸¶Àΰ¡¸¦ ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. À̸¦ ¾Ë¾Æº¸´Â °¡Àå ¼Õ½¬¿î ¹æ¹ýÀº X-Window°¡ ½ÇÇàÇÒ ¶§ ÅؽºÆ® È­¸éÀ¸·Î Ãâ·ÂÇÏ´Â Á¤º¸¸¦ º¸´Â °ÍÀÌ´Ù. ÀÌ ÅؽºÆ® È­¸é Ãâ·Â Á¤º¸´Â ´ëºÎºÐ ¸ð´ÏÅÍ È­¸éÀ§·Î ½ºÅ©·ÑµÇ¾î º¸ÀÌÁö ¾Ê°Ô µÇ°Å³ª ´Ù¸¥ tty·Î È­¸é ÀüȯÀÌ ÀϾ¸é¼­ »ç¶óÁ® ¹ö¸®±â ¶§¹®¿¡, ÀÌ X-Window Ãâ·ÂÁ¤º¸¸¦ ÆÄÀÏ(xoutput)·Î ¸®Å¸ÀÌ·º¼ÇÇؼ­ ÀúÀåÇÏ¸é µÈ´Ù. ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» ÁØ´Ù:

    
           # startx 2> xoutput

¿ì¸®°¡ ÇÊ¿äÇÑ Á¤º¸¸¦ ´ã°í ÀÖ´Â ÇàÀº xouput ÆÄÀÏÀÇ Áß°£ Âë¿¡ ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½°ú °°Àº ÇàÀ» ã¾Æ º»´Ù:

     
           (--) SVGA: PCI: NVidia Riva TNT2 rev 17, Memory @ 0xee000000, 0xe2000000

ÀÏ´Ü xouput ÆÄÀÏ¿¡¼­ ÇØ´ç À§Ä¡¸¦ ã¾ÒÀ¸¸é ÇàÀÇ ³¡ ºÎºÐ¿¡ ÀÖ´Â ¸Þ¸ð¸® ÁÖ¼Ò¸¦ Á¾ÀÌ¿¡ Àû¾îµÐ´Ù. ÀÌ ¿¹¿¡¼­´Â 0xe2000000 ÀÌ´Ù. ¿©·¯ºÐÀÇ Çϵå¿þ¾î »ç¾ç¿¡ µû¶ó º¹¼ö°³ÀÇ ¸Þ¸ð¸® ÁÖ¼Ò°¡ ÀÖÀ» ¼öµµ, ¶Ç´Â ¾øÀ» ¼öµµ ÀÖÀ¸´Ï±î, Á» ´Ù¸£°Ô ³ªÅ¸³ª´õ¶óµµ °ÆÁ¤ÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ¸Þ¸ð¸® ÁÖ¼Ò¸¦ Àû¾úÀ¸¸é xoutput ÆÄÀÏÀº Áö¿öµµ µÈ´Ù.

´ÙÀ½À¸·Î »õ MTRR¸¦ ¸¸µéµµ·Ï ÇÑ´Ù. À̸¦ ¸¸µé·Á¸é ¿©·¯ºÐÀÇ ºñµð¿À Ä«µåÀÇ ºñµð¿À ·¥ÀÇ Å©±â¸¦ 16Áø¼ö°ªÀ¸·Î ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½À» ÂüÁ¶ÇÑ´Ù:

        
           4MB  -- 0x400000
           8MB  -- 0x800000
           16MB -- 0x1000000
           32MB -- 0x2000000

´ÙÀ½°ú °°ÀÌ MTRR¸¦ Ãß°¡ÇÑ´Ù:

        
           # echo "base=0xe2000000 size=0x2000000 type=write-combining" >| /proc/mtrr

´Ü, À§ÀÇ "0xe2000000"¿Í "0x2000000" ºÎºÐÀ» ¿©·¯ºÐÀÇ ºñµð¿À Ä«µåÀÇ ±âº» ¸Þ¸ð¸® ÁÖ¼Ò¿Í ºñµð¿À ·¥ÀÇ Å©±âÀÇ °ªÀ¸·Î ¹Ù²ã¼­ Àû¾îÁØ´Ù.

ÀÌÁ¦ MTRRÀÌ ¼³Á¤µÇ¾ú´Ù, ´ÙÀ½°ú °°ÀÌ È®ÀÎÇØ º»´Ù:

        
           # cat /proc/mtrr

±×·¯¸é ´ÙÀ½°ú ºñ½ÁÇÑ °á°ú¸¦ º¸°Ô µÉ °ÍÀÌ´Ù:

        
           reg00: base=0x00000000 (   0MB), size= 128MB: write-back, count=1
           reg01: base=0xe2000000 (3616MB), size=  32MB: write-combining, count=1

Çѹø ´õ, ¼ýÀÚ°ªµéÀÌ ¾Æ¸¶µµ ÀÌ°Í°ú ´Ù¸¦Áöµµ ¸ð¸¥´Ù. °ÆÁ¤ÇÏÁö ¾Ê¾Æµµ µÈ´Ù.


´ÙÀ½ ÀÌÀü Â÷·Ê