ARM ¸®´ª½º¸¦ ½ÃÀÛÇϱâ Àü¿¡ ARM ÇÁ·Î¼¼¼¿¡ ´ëÇØ ÃæºÐÈ÷ ¾Ë¾Æ¾ß ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª ¸ðµç °ÍÀ» ´Ù·ç±ä Èûµé°í ¿©±â¼± MMU¿¡ ´ëÇØ ´Ù·ç°í °¡»ó ¾îµå·¹½º¸¦ ¾î¶»°Ô ÀÌÇØÇÏ¸é µÇ´ÂÁö Á¤µµ¸¦ ½ÀµæÇÏ¸é µÇ°Ú´Ù.
ÀÌ ÀýÀÇ ±×¸²°ú ±ÛÀº ¸ðµÎ ARM architectural Reference Manual(Dave JaggarÀú)¸¦ ¹ÙÅÁÀ¸·Î ¹ø¿ªÇß´Ù.
ARMÇÁ·Î¼¼¼ÀÇ MMU´Â ´ÙÀ½ÀÇ Å« µÎ°¡Áö ÀÏÀ» ÇÑ´Ù.
°¡»ó ¾îµå·¹½º¸¦ ¹°¸® ¾îµå·¹½º·Î º¯È¯
¸Þ¸ð¸® Á¢±Ù ±ÇÇÑ Á¦¾î
Àû¾îµµ ÇϳªÀÇ TLB(Translation Lookaside Buffer)
Á¢±Ù Á¦¾î ·ÎÁ÷
translation-table-walking ·ÎÁ÷
TLB´Â °¡»ó ¾îµå·¹½º¸¦ ¹°¸® ¾îµå·¹½º·Î º¯È¯ÇÏ´Â °Í°ú Á¢±Ù ±ÇÇÑÀ» ij½ÌÇϰí ÀÖ´Ù. ¸¸¾à TLB°¡ °¡»ó ¾îµå·¹½º¿¡ ´ëÇÑ º¯È¯µÈ ¿£Æ®¸®¸¦ °®°í ÀÖ´Ù¸é Á¢±Ù Á¦¾î ·ÎÁ÷Àº Á¢±ÙÀÌ °¡´ÉÇÑÁö ÆÇº°ÇÑ´Ù. Á¢±ÙÀÌ Çã¿ëµÈ´Ù¸é MMU´Â °¡»ó ¾îµå·¹½º¿¡ ´ëÇÑ ¹°¸® ¾îµå·¹½º¸¦ Ãâ·ÂÇØÁØ´Ù. Á¢±ÙÀÌ Çã¿ëµÇÁö ¾Ê´Â °æ¿ì¿£ MMU°¡ CPU¿¡¼ abort ½Ã±×³ÎÀ» º¸³½´Ù.
TLB°¡ ¾ø´Ù¸é(°¡»ó ¾îµå·¹½º¿¡ ´ëÇÑ º¯È¯µÈ ¿£Æ®¸®¸¦ °®°í ÀÖÁö ¾Ê´Ù) Çϵå¿þ¾î¸¦ ¿òÁ÷ÀÌ´Â º¯È¯ Å×À̺íÀº ¹°¸® ¸Þ¸ð¸® ³»¿¡ ÀÖ´Â º¯È¯ Å×ÀÌºí¿¡¼ Á¤º¸¸¦ Àоî¿Â´Ù. ÀÏ´Ü Àоî¿Â ÈÄ¿£ ±× Á¤º¸°¡ TLB¿¡ ÀúÀåµÈ´Ù. ÀÌ ¶§ ¿ø·¡ ÀÖ´ø ¿£Æ®¸®´Â Áö¿öÁú Áö¿öÁú ¼öµµ ÀÖ´Ù.
MMU´Â µÎ °¡ÁöÀÇ ¸Þ¸ð¸® Á¢±Ù ¹æ½ÄÀ» Áö¿øÇÑ´Ù.
¼½¼Ç
1MB ºí·° ´ÜÀ§·Î ¸Þ¸ð¸® Á¦¾î
ÆäÀÌÁö
ÆäÀÌÁö ¹æ½Ä¿£ ¶Ç µÎ °¡Áö ¹æ½ÄÀÌ ÀÖ´Ù.
small page - 4kB ºí·° ¸Þ¸ð¸®
large page - 64kB ºí·° ¸Þ¸ð¸®
¼½¼Ç°ú Å«ÆäÀÌÁö ¹æ½ÄÀº TLB¿¡ ÇϳªÀÇ ¿£Æ®¸® ¸¸ÀÌ ÀÖÀ» ¶§ Å« ¸Þ¸ð¸® ¿µ¿ªÀ» ¸ÅÇÎÇϴµ¥ »ç¿ëµÈ´Ù. Ãß°¡·Î ÀÛÀº ÆäÀÌÁö ¹æ½ÄÀº 1kB ¼ºê ÆäÀÌÁö·Î È®ÀåµÇ°í Å« ÆäÀÌÁö ¹æ½ÄÀº 16kB·Î È®Àå µÈ´Ù.
ÁÖ ¸Þ¸ð¸® ³»ÀÇ º¯È¯ Å×À̺íÀº µÎ °¡Áö ·¹º§À» °®°í ÀÖ´Ù.
1 ·¹º§ Å×À̺í
¼½¼Ç º¯È¯°ú ¼½¼Ç ·¹º§ Å×ÀÌºí¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ °®°í ÀÖ´Ù.
2 ·¹º§ Å×À̺í
Å«/ÀÛÀº ÆäÀÌÁö º¯È¯À» °®°í ÀÖ´Ù.
MMU´Â µµ¸ÞÀÎÀ̶õ ±â´Éµµ Á¦°øÇÑ´Ù. ÀÌ °ÍÀº °³º°Àû Á¢±Ù ±ÇÇÑÀ» °®µµ·Ï Á¤ÀÇµÈ ¸Þ¸ð¸® ¿µ¿ªÀ» ¸»ÇÑ´Ù. DACR(Domain Access Control Register)¸¦ »ç¿ëÇØ 16°³ ±îÁöÀÇ µµ¸ÞÀÎÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
MMU°¡ off »óÅÂÀÏ ¶§(ÇÁ·Î¼¼¼°¡ ¸®¼ÂµÈ Á÷Èİ¡ ÀÌ·¸´Ù) °¡»ó ¾îµå·¹½ºÀÇ Ãâ·ÂÀº Á÷Á¢ ¹°¸® ¾îµå·¹½º¸¦ °¡¸®Å°°í ¸Þ¸ð¸® Á¢±Ù ±ÇÇÑ °Ë»ç´Â ÇÏÁö ¾Ê´Â´Ù.
µÎ TLB ¿£Æ®¸®°¡ ÁßøµÈ ¸Þ¸ð¸® ¿µ¿ªÀ» °¡¸®´Â °æ¿ì´Â ¿¹ÃøÇÒ ¼ö ¾ø´Â ÀÏÀÌ ¹ß»ýÇÑ´Ù. ÀÌ·± °æ¿ì´Â ´Ù¸¥ Å©±âÀÇ ÆäÀÌÁö·Î Àç ¸ÅÇÎµÈ ÈÄ TLB¸¦ °»½ÅÇÏÁö ¾Ê¾Æ ¹ß»ýÇÒ ¼ö ÀÖ´Ù.
MMU´Â CPU¿¡ÀÇÇØ ¸¸µé¾îÁø °¡»ó ¾îµå·¹½º¸¦ ¿ÜºÎ ¸Þ¸ð¸®¿¡ Á¢±ÙÇϱâ À§ÇÑ ¹°¸® ¾îµå·¹½º·Î º¯È¯ÇÑ´Ù. ±×¸®°í Á¢±Ù ±ÇÇÑ °Ë»çµµ º´ÇàÇÑ´Ù. ¾îµå·¹½º°¡ º¯È¯µÇ´Â ¹æ½ÄÀº ¼½¼Ç ¹æ½ÄÀΰ¡ ÆäÀÌÁö ¹æ½Ä(ÆäÀÌÁö ¹æ½Ä¿£ ¶Ç µÎ °¡Áö Å©±âÀÇ ÆäÀÌÁö°¡ ÀÖ´Ù)Àΰ¡¿¡µû¶ó 3°¡Áö°¡ ÀÖ´Ù.
±×·¯³ª º¯È¯ ÀýÂ÷´Â ¾ðÁ¦³ª °°Àº ½ÄÀ¸·Î 1·¹º§ Àбâ·ÎºÎÅÍ ½ÃÀ۵ȴÙ. ¼½¼Ç ¹æ½ÄÀº 1·¹º§¸¸ ÇÊ¿äÇÏ°í ÆäÀÌÁö ¹æ½ÄÀº 2·¹º§µµ »ç¿ëÇØ¾ßÇÑ´Ù.
º¯È¯ ÀýÂ÷´Â ¿äûµÈ °¡»ó ¾îµå·¹½º¿¡ ´ëÇÑ ¿£Æ®¸®°¡ Ĩ¿¡ ³»ÀåµÈ TLB¿¡ ¾øÀ» ¶§ºÎÅÍ ½ÃÀ۵ȴÙ. TTBR(Translation Table Base Register)´Â 1·¹º§ Å×À̺íÀÇ º£À̽º¸¦ °¡¸®Å°°í TTBRÀÇ 14¿¡¼ 31 ºñÆ®¸¸ÀÌ »ç¿ëµÈ´Ù. ³ª¸ÓÁö´Â 0À̾î¾ßÇÑ´Ù. ±×·¯¹Ç·Î 1·¹º§ ÆäÀÌÁö Å×À̺íÀº ¹Ýµå½Ã 16KB ´ÜÀ§·Î Á¤·ÄµÇ¾ßÇÑ´Ù(214=16384).
TTBRÀÇ ºñÆ® 31:14´Â ±×¸² 4-1¿¡¼ º¸µíÀÌ 30ºñÆ® ¾îµå·¹½º¸¦ ¸¸µé±â À§ÇØ °¡»ó ¾îµå·¹½ºÀÇ 31:20 ºñÆ®¿Í ¿¬°áµÈ´Ù. ÀÌ ¾îµå·¹½º´Â ¼½¼Ç¿ë 1·¹º§ µð½ºÅ©¸³³ª 2·¹º§ ÆäÀÌÁö Å×ÀÌºí Æ÷ÀÎÅÍ¿ë µð½ºÅ©¸³Å͸¦ ³ªÅ¸³»´Â 4¹ÙÀÌÆ® ±æÀÌÀÇ º¯È¯ Å×ÀÌºí ¿£Æ®¸®¸¦ ¼±ÅÃÇÑ´Ù.
1·¹º§ µð½ºÅ©¸³ÅÍ´Â ¼½¼Ç µð½ºÅ©¸³Åͳª 2·¹º§ ÆäÀÌÁö Å×ÀÌºí Æ÷ÀÎÅͰ¡ µÉ ¼ö ÀÖ°í Æ÷¸ËÀ» ±×¿¡ µû¶ó º¯ÇÑ´Ù. ±×¸² 4-2¿¡¼ ºñÆ® 1:0ÀÌ µð½ºÅ©¸³ÅÍ Å¸ÀÔÀ» ³ªÅ¸³½´Ù.
ºñÆ® 1:0ÀÌ 00ÀÎ µð½ºÅ©¸³Å͸¦ »ç¿ëÇÏ¸é º¯È¯ ÆúÆ®¸¦ ¹ß»ýÇÑ´Ù. ºñÆ® 1:0ÀÌ 11ÀÎ µð½ºÅ©¸³ÅÍ´Â ¾î¶»°Ô µ¿ÀÛÇÒÁö ¸ð¸¥´Ù.
±×¸² 4-3Àº ¼½¼Ç º¯È¯ Àüü¸¦ ³ªÅ¸³½´Ù. 1·¹º§ µð½ºÅ©¸³ÅÍ¿¡ Æ÷ÇÔµÈ Á¢±Ù ±ÇÇÑÀº ¹°¸® ¾îµå·¹½º¸¦ ¸¸µé¾î³»±â Àü¿¡ ¸ÕÀú üũµÈ´Ù.
1·¹º§ µð½ºÅ©¸³ÅͰ¡ ¼½¼Ç µð½ºÅ©¸³ÅÍÀÎ °æ¿ì °¢ Çʵå´Â ´ÙÀ½°ú °°Àº Àǹ̸¦ °®´Â´Ù.
Ç¥ 4-1. ¼½¼Ç µð½ºÅ©¸³ÅÍ Çʵå
| ºñÆ® 1:0 | µð½ºÅ©¸³ÅÍÀÇ Å¸ÀÔÀ» ³ªÅ¸³¿(10Àº ¼½¼Ç µð½ºÅ©¸³Å͸¦ ÀǹÌÇÔ) |
| ºñÆ® 3:2 | ij½Ã°¡´É, ¹öÆÛ°¡´É ºñÆ® |
| ºñÆ® 4 | ÀÌ ºñÆ®ÀÇ Àǹ̴ 'IMPLEMENTATION DEPENDENt' |
| ºñÆ® 8:5 | ÀÌ µð½ºÅ©¸³ÅÍ¿¡ ÀÇÇØ Á¶Á¤µÇ´Â ¸ðµç ÆäÀÌÁö¿¡ ´ëÇÑ 16°³ ±îÁöÀÇ µµ¸ÞÀÎ ÁöÁ¤ |
| ºñÆ® 9 | »ç¿ëµÇÁö ¾ÊÀ½. SHOULD BE ZERO |
| ºñÆ® 11:10 | Á¢±Ù ±ÇÇÑ |
| ºñÆ® 19:12 | »ç¿ëµÇÁö ¾ÊÀ½. SHOULD BE ZERO |
| ºñÆ® 31:20 | ¹°¸® ¾îµå·¹½ºÀÇ »óÀ§ 12ºñÆ®¸¦ ±¸¼ºÇÏ´Â ¼½¼Ç º£À̽º ¾îµå·¹½º |
ÆäÀÌÁö Å×ÀÌºí µð½ºÅ©¸³Å͸¦ 1·¹º§¿¡¼ ÀÐ°í³ª¸é 2·¹º§ µð½ºÅ©¸³ÅÍ ÀбⰡ ½ÃÀ۵ȴÙ. ±×¸² 4-4¿¡ ³ªÅ¸³ª ÀÖ´Ù.
1·¹º§ µð½ºÅ©¸³ÅͰ¡ ÆäÀÌÁö Å×ÀÌºí µð½ºÅ©¸³ÅÍÀÎ °æ¿ì °¢ Çʵå´Â ´ÙÀ½°ú °°Àº Àǹ̸¦ °®´Â´Ù.
Ç¥ 4-2. ÆäÀÌÁö µð½ºÅ©¸³ÅÍ Çʵå
| ºñÆ® 1:0 | µð½ºÅ©¸³ÅÍÀÇ Å¸ÀÔÀ» ³ªÅ¸³¿(01Àº ÆäÀÌÁö µð½ºÅ©¸³Å͸¦ ÀǹÌÇÔ) |
| ºñÆ® 4:2 | ÀÌ ºñÆ®ÀÇ Àǹ̴ 'IMPLEMENTATION DEPENDENt' |
| ºñÆ® 8:5 | ÀÌ µð½ºÅ©¸³ÅÍ¿¡ ÀÇÇØ Á¶Á¤µÇ´Â ¸ðµç ÆäÀÌÁö¿¡ ´ëÇÑ 16°³ ±îÁöÀÇ µµ¸ÞÀÎ ÁöÁ¤ |
| ºñÆ® 9 | »ç¿ëµÇÁö ¾ÊÀ½. SHOULD BE ZERO |
| ºñÆ® 31:10 | ÆäÀÌÁö Å×ÀÌºí º£À̽º ¾îµå·¹½º´Â 2·¹º§ ÆäÀÌÁö Å×ÀÌºí Æ÷ÀÎÅÍÀÌ´Ù. 2·¹º§ ÆäÀÌÁö Å×À̺íÀº 1KB·Î Á¤·ÄµÇ¾ßÇÑ´Ù(210=1024) |
2·¹º§ µð½ºÅ©¸³ÅÍ´Â Å«ÆäÀÌÁö ȤÀº ÀÛÀº ÆäÀÌÁö·Î Á¤ÀǵȴÙ.
°¢Çʵå´Â ´ÙÀ½°ú °°Àº Àǹ̸¦ °®´Â´Ù.
Ç¥ 4-3. 2·¹º§ µð½ºÅ©¸³ÅÍ Æ÷¸Ë
| ºñÆ® 1:0 | µð½ºÅ©¸³ÅÍÀÇ Å¸ÀÔÀ» ³ªÅ¸³¿ |
| ºñÆ® 3:2 | ij½Ã°¡´É, ¹öÆÛ °¡´É ºñÆ® |
| ºñÆ® 11:4 | Á¢±Ù ±ÇÇÑ |
| ºñÆ® 15:12 | »ç¿ëµÇÁö ¾ÊÀ½. SHOULD BE ZERO |
| ºñÆ® 31:12 | ÀÛÀº ÆäÀÌÁö ¸ðµå¿¡¼ ¹°¸® ¾îµå·¹½º¸¦ ¸¸µå´Âµ¥ »ç¿ëµÊ |
| ºñÆ® 31:16 | Å« ÆäÀÌÁö ¸ðµå¿¡¼ ¹°¸® ¾îµå·¹½º¸¦ ¸¸µå´Âµ¥ »ç¿ëµÊ |
ºñÆ® 11:4ÀÇ Á¢±Ù ±ÇÇÑÀº ´ÙÀ½°ú °°Àº 4°¡ÁöÀÇ ¼ºê ÆäÀÌÁö·Î ³ª´¶´Ù.
±×¸² 4-6Àº Å« ÆäÀÌÁö º¯È¯À» ³ªÅ¸³½´Ù. ÆäÀÌÁö ÀÎÅØ½ºÀÇ »óÀ§ 4ºñÆ®¿Í 2·¹º§ Å×À̺í À妽ºÀÇ ÇÏÀ§ 4ºñÆ®´Â ¼·Î °ãÄ¡´Âµ¥ Å« ÆäÀÌÁö¿¡ ´ëÇÑ °¢ ÆäÀÌÁö Å×ÀÌºí ¿£Æ®¸®´Â ÆäÀÌÁö Å×ÀÌºí ³»¿¡ 16¹ø º¹»çµÇ¾ßÇÑ´Ù.
ARM ¸Þ¸ð¸® ½Ã½ºÅÛÀº °¢ °¡»ó ÆäÀÌÁö ¸¶´Ù °³º°ÀûÀ¸·Î ¼±Åà °¡´ÉÇÑ µÎ°¡Áö ¼Ó¼º¿¡ ÀÇÇØ Á¦¾îµÈ´Ù.
Ç¥ 4-5. ¸Þ¸ð¸® ½Ã½ºÅÛ ¼Ó¼º
| Cacheable | ÀÌ ¼Ó¼ºÀº ÆäÀÌÁö ³»ÀÇ µ¥ÀÌÅͰ¡ ij½ÃµÉ ¼ö ÀÖÀ½À» ³ªÅ¸³½´Ù. ÀÌ·¸°ÔÇÏ¸é ´ÙÀ½ À̾îÁö´Â µ¿ÀÛÀº ¸ÞÀÎ ¸Þ¸ð¸®¸¦ ÀÐÀ» Çʿ䰡 ¾ø°ÔµÈ´Ù. ¶Ç ÇöÀç ½ÇÇàÁ¡À» ³Ñ¾î ¹Ì¸® ¸í·ÉÀ» ÀÐÀ»¼ö ÀÖÀ½À» ³ªÅ¸³»±âµµ ÇÑ´Ù. ij½Ã´Â write-back ȤÀº write-through·Î ¸¸µé¾îÁú ¼ö ÀÖ´Ù(°¢ °¡»ó ÆäÀÌÁö¸¶´Ù °³º°ÀûÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù). |
| Bufferable | ÆäÀÌÁö ³»ÀÇ µ¥ÀÌÅͰ¡ ¾²±â ¹öÆÛ¿¡ ÀúÀåµÉ ¼ö ÀÖÀ½À» ³ªÅ¸³»°í ÀÌ·¸°ÔÇÏ¸é ¸ÞÀÎ ¸Þ¸ð¸®º¸´Ù ºü¸¥ µ¿ÀÛÀ» ÇÒ¼ö ÀÖ°Ô µÈ´Ù. ¾²±â ¹öÆÛ´Â Á¤È®ÇÑ ¾²±â ¸í·ÉÀ» º¸ÀåÇÏÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î °°Àº À§Ä¡¿¡ ´ëÇÑ ¿©·¯¹øÀÇ ¾²±â µ¿ÀÛÀÌ ¿©·¯ ¹øÀÇ ¿ÜºÎ ¾²±â µ¿ÀÛÀ» ÇÑ´Ù´Â º¸ÀåÀº ¾ø´Ù. |
ij½Ã¿Í ¾²±â ¹öÆÛ ºñÆ® °ªÀº ´ÙÀ½°ú °°Àº Àǹ̸¦ °®´Â´Ù.
Ç¥ 4-6. ij½Ã, ¾²±â ¹öÆÛ ºñÆ®ÀÇ ÀǹÌ
| C | B | ÀÇ¹Ì |
|---|---|---|
| 0 | 0 | ij½Ã ºÒ°¡´É, ¾²±â ¹öÆÛ ºÒ°¡´É |
| 0 | 1 | ij½Ã ºÒ°¡´É, ¾²±â ¹öÆÛ µ¿ÀÛ |
| 1 | 0 | ij½Ã µ¿ÀÛ, ¾²±â ¹öÆÛ ºÒ°¡´É ȤÀº write-through ij½Ã, ¾²±â ¹öÆÛ µ¿ÀÛ |
| 1 | 1 | ij½Ã µ¿ÀÛ, ¾²±â ¹öÆÛ µ¿ÀÛ È¤Àº write-back ij½Ã, ¾²±â ¹öÆÛ µ¿ÀÛ |
µÎ°¡Áö ŸÀÔÀÇ Ä³½Ã¸¦ ¸ðµÎ Áö¿øÇÏ·Á¸é 10À¸·Î write-through, 11À¸·Î writeback ij½Ã¸¦ ÁöÁ¤ÇÑ´Ù. ¾î´À ÇѰ¡Áö ŸÀÔÀÇ Ä³½Ã¸¸À» Áö¿øÇÏ·Á¸é C¿Í B ºñÆ®¸¦ ¾ö°ÝÈ÷ Àû¿ëÇØ ij½Ã °¡´É°ú ¾²±â ¹öÆÛ °¡´ÉÀÌ °¢°¢ µ¿ÀÛÇϵµ·Ï ÇÑ´Ù.
¼½¼Ç°ú ÆäÀÌÁö µð½ºÅ©¸³ÅÍ ³»ÀÇ Á¢±Ù ±ÇÇÑ ºñÆ®´Â ÇØ´ç ¼½¼ÇÀ̳ª ÆäÀÌÁöÀÇÁ¢±ÙÀ» Á¦¾îÇÑ´Ù. Á¢±Ù ±ÇÇÑÀº ½Ã½ºÅÛ(S)°ú ·Ò(R) Á¦¾î ºñÆ®¿¡ ÀÇÇØ º¯°æµÈ´Ù. Å×À̺íÀº S, R ºñÆ®¿Í °áÇÕµÈ Á¢±Ù ±ÇÇÑ ºñÆ®ÀÇ Àǹ̸¦ ³ªÅ¸³½´Ù. ÇÊ¿äÇÑ ±ÇÇÑ ¾øÀÌ ¸Þ¸ð¸®¿¡ Á¢±ÙÇÏ¸é ÆÛ¹Ì¼Ç ÆúÆ®°¡ ¹ß»ýÇÑ´Ù.