ç§ãã¡ã¯ãœãããŠã§ã¢ãé·ãéä¿¡çšããŠããªãããããã®ç£æ»ãå®è¡ãããªããŒã¹ãšã³ãžãã¢ãªã³ã°ãå®è¡ããã¹ããããã€ã¹ãããã¢ãŒãã§å®è¡ãããµã³ãããã¯ã¹ã§å®è¡ããŸãã ãœãããŠã§ã¢ãå®è¡ãããããã»ããµã¯ã©ãã§ããïŒ -ç§ãã¡ã¯ç²ç®çã«å¿ãããã®å°ããªã·ãªã³ã³çãä¿¡é ŒããŠããŸãã ãã ããææ°ã®ããŒããŠã§ã¢ã«ã¯ãœãããŠã§ã¢ãšåãåé¡ããããŸããææžåãããŠããªãç§å¯ã®æ©èœããã°ãè匱æ§ããã«ãŠã§ã¢ãããã€ã®æšéŠ¬ãã«ãŒãããããããã¯ãã¢ã§ãã

ISAïŒåœä»€ã»ããã¢ãŒããã¯ãã£ïŒx86ã¯ãå²äžæãé·ãå€åãç¶ãããåœä»€ã»ããã¢ãŒããã¯ãã£ãã®1ã€ã§ãã 1976幎ã«éçºããã8086èšèšãããISAã¯ç¶ç¶çãªå€æŽãšæŽæ°ãåããŠããŸãã å
ã®ä»æ§ã®åŸæ¹äºææ§ãšãµããŒããç¶æããªããã ISAã¢ãŒããã¯ãã£ã¯40幎以äžã«ããã£ãŠæé·ããŠããŸããããå€ãã®æ°ããã¢ãŒããšåœä»€ã»ããã§æé·ãç¶ãããããããæ¢ã«ãªãŒããŒããŒããããŠãã以åã®ãã¶ã€ã³ã«æ°ããã¬ã€ã€ãŒãè¿œå ããŠããŸãã å®å
šãªäžäœäºææ§ã®ããªã·ãŒã«ãããææ°ã®x86ããã»ããµã«ã¯ããã§ã«å®å
šã«å¿ããããŠããåœä»€ãšã¢ãŒããå«ãŸããŠããŸãã ãã®çµæãããã»ããµã¢ãŒããã¯ãã£ãã§ããŸãããããã¯ãæ°ããã¢ã³ãã£ãŒã¯ãã¯ãããžã®è€éãªè¿·è·¯ã§ãã ãã®ãããªéåžžã«è€éãªç°å¢-ããã»ããµã®ãµã€ããŒã»ãã¥ãªãã£ã«é¢ããå€ãã®åé¡ãåŒãèµ·ãããŸãã ãããã£ãŠãx86ããã»ããµã¯ãéèŠãªãµã€ããŒã€ã³ãã©ã¹ãã©ã¯ãã£ã®ä¿¡é Œãããã«ãŒãã§ãããšäž»åŒµããããšã¯ã§ããŸããã
ããã»ããµããŸã ä¿¡é ŒããŠããŸããïŒ
ããã°ã©ã ãšãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã»ãã¥ãªãã£-ããããå±éãããŠããããŒããŠã§ã¢ã®ã»ãã¥ãªãã£ã«åºã¥ããŠããŸãã ååãšããŠããœãããŠã§ã¢éçºè
ã¯ããœãããŠã§ã¢ãå±éãããŠããããŒããŠã§ã¢ãä¿¡é Œã§ãããæªæãããå¯èœæ§ããããšããäºå®ãèæ
®ããŠããŸããã ããŒããŠã§ã¢ã誀ã£ãŠïŒæå³çãã©ããã«ãããããïŒåäœããå ŽåããœãããŠã§ã¢ã®ã»ãã¥ãªãã£ã¡ã«ããºã ã¯ãŸã£ãã䟡å€ããªããªããŸãã é·å¹Žã«ããããIntel SGXãAMD Pacificaãªã©ã®ã»ãã¥ã¢ããã»ããµã®ããŸããŸãªã¢ãã«ãæäŸãããŠããŸãããããã«ãããããããé倧ãªé害ïŒã¡ã«ãããŠã³ãã¹ãã¯ã¿ãŒãªã©ã®æè¿ã®é害ããïŒã«ã€ããŠæ
å ±ãå
¬éãããææžåãããŠããªãããããã°ãæ©èœãæ€åºãããããããŸããèŠåæ§ã¯ãããã»ããµãŒã«å¯Ÿããç§ãã¡ã®å¿ããã®ä¿¡é Œã¯æ ¹æ ããªããšèããŠããŸãã
ææ°ã®x86ããã»ããµã¯ãææ°ã®ã¢ã³ãã£ãŒã¯ãã¯ãããžãŒãéåžžã«æ±ãã«ããè€éã«ç¹ã亀ããŠããŸãã 8086ã«ã¯29000ã®ãã©ã³ãžã¹ã¿ãPentium 300äžãBroadwell 32åãCannonlakeã«ã¯100å以äžããããŸããã

ãã©ã³ãžã¹ã¿ãéåžžã«å€ããããææ°ã®x86ããã»ããµãææžåãããŠããªãåœä»€ãããŒããŠã§ã¢ã®è匱æ§ã«æ©ãŸãããŠããããšã¯é©ãããšã§ã¯ãããŸããã ææžåãããŠããªãããã»ãšãã©å¶ç¶ã«çºèŠãããåœä»€ïŒICEBPïŒ0xF1ïŒãLOADALLïŒ0x0F07ïŒãapicallïŒ0x0FFFF0ïŒ[1]ãä¿è·ãããã¡ã¢ãªé åãžã®äžæ£ã¢ã¯ã»ã¹ã®ããã«ããã»ããµã®ããã¯ã解é€ã§ããŸãã
ããã»ããµã®å€æ°ã®ããŒããŠã§ã¢è匱æ§ïŒä»¥äžã®2ã€ã®å³ãåç
§ïŒã«ã€ããŠã¯ããµã€ããŒæ»æè
ãç¹æš©ãææ Œã§ããããã«ããŸã[3]ãæå·åããŒãæœåºãã[4]ãæ°ããã¢ã»ã³ãã©ãŒåœä»€ãäœæãã[2]ãæ¢åã®ã¢ã»ã³ãã©ãŒåœä»€ã®æ©èœãå€æŽãã[2] ãã¢ã»ã³ãã©ãŒåœä»€ãžã®ããã¯ã®ã€ã³ã¹ããŒã«[2]ããããŒããŠã§ã¢å éä»®æ³åã[7]ã®å¶åŸ¡ããååæå·èšç®ã[7]ãžã®ä»å
¥ãæåŸã«ãç¥ã¢ãŒãããžã®ç§»è¡ïŒ èªåèªèº«ïŒããªãããã³ã³ãã¥ãŒã¿ã®é»æºããªãã«ãªã£ãŠããªã¢ãŒãã¢ã¯ã»ã¹ãåãåãããšãã§ããŸãïŒæ£åœãªããŒããŠã§ã¢ã€ã³ãã«MEããã¯ãã¢ãã¢ã€ãã[8] ãããŠãããããã¹ãŠ-ããžã¿ã«ãã¬ãŒã¹ãæ®ãããšãªãã


ææ°ã®ããã»ããµã¯ããŒããŠã§ã¢ããããœãããŠã§ã¢ã§ã
å³å¯ã«èšãã°ãçŸä»£ã®ããã»ããµã¯ãèšèã®æå³ã§ãããŒããŠã§ã¢ããšåŒã¶ããšããã§ããŸããã æãéèŠãªæ©èœïŒISAãå«ãïŒã¯ããã€ã¯ãã³ãŒãã®ãã©ãã·ã¥ã«ãã£ãŠæäŸãããããã§ãã åœåããã€ã¯ãã³ãŒãã¯äž»ã«ãæµ®åå°æ°ç¹æŒç®ãMMXããªããã£ããREPãã¬ãã£ãã¯ã¹ä»ãã®ã©ã€ã³ãã³ãã©ãªã©ãè€éãªã¢ã»ã³ãã©åœä»€ã®ãã³ãŒããšå®è¡ã®å¶åŸ¡ãæ
åœããŠããŸããã ãã ããæéãçµã€ã«ã€ããŠãããã»ããµãŒå
éšã®åŠçæäœã®ãã€ã¯ãã³ãŒãã«ãŸããŸãå€ãã®è²¬ä»»ãå²ãåœãŠãããŸãã ããšãã°ãAVXïŒAdvanced Vector ExtensionsïŒãVT-dïŒããŒããŠã§ã¢ä»®æ³åïŒãªã©ã®Intelããã»ããµã®ææ°ã®æ¡åŒµæ©èœã¯ããã€ã¯ãã³ãŒãã«å®è£
ãããŠããŸãã
ããã«ãä»æ¥ã§ã¯ããã€ã¯ãã³ãŒãã¯ããšããããããã»ããµã®ç¶æ
ã®ç¶æããã£ãã·ã¥ã®ç®¡çãããã³çé»åã®ç®¡çãæ
åœããŠããŸãã ãšãã«ã®ãŒãç¯çŽããããã«ããã€ã¯ãã³ãŒãã¯é»åç¶æ
ãåŠçããå²ã蟌ã¿ã¡ã«ããºã ãå®è£
ããŸããCç¶æ
ïŒçãšãã¹ãªãŒãã®çšåºŠïŒã¢ã¯ãã£ãç¶æ
ãããã£ãŒãã¹ãªãŒããŸã§ïŒãšPç¶æ
ïŒé»å§ãšåšæ³¢æ°ã®ç°ãªãçµã¿åããïŒã ãããã£ãŠãããšãã°ããã€ã¯ãã³ãŒãã¯ãç¶æ
C4ã«å
¥ããšããšåºããšãã«ãL2ãã£ãã·ã¥ããªã»ããããŸãã
ããã»ããµã¡ãŒã«ãŒããã€ã¯ãã³ãŒãã䜿çšããçç±
x86ããã»ããµã®ã¡ãŒã«ãŒã¯ããã€ã¯ãã³ãŒãã䜿çšããŠè€éãªã¢ã»ã³ããªåœä»€ïŒæ倧15ãã€ãïŒãåçŽãªãã€ã¯ãåœä»€ã®ãã§ãŒã³ã«å解ããããŒããŠã§ã¢ã¢ãŒããã¯ãã£ãç°¡çŽ åãã蚺æã容æã«ããŸãã å®éããã€ã¯ãã³ãŒãã¯ãå€éšïŒãŠãŒã¶ãŒã«èŠããïŒCISCã¢ãŒããã¯ãã£ãšå
éšïŒããŒããŠã§ã¢ïŒRISCã¢ãŒããã¯ãã£éã®ã€ã³ã¿ãŒããªã¿ãŒã§ãã
CISCã¢ãŒããã¯ãã£ïŒäž»ã«ISAïŒã§ãšã©ãŒãæ€åºãããå Žåã補é å
ã¯ãã¶ãŒããŒãã®BIOS / UEFIãŸãã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒããŒãããã»ã¹äžïŒãä»ããŠããã»ããµã«ããŠã³ããŒãã§ãããã€ã¯ãã³ãŒãã¢ããããŒããå
¬éããŸãã ãã€ã¯ãã³ãŒãã«åºã¥ãããã®ãããªæŽæ°ã·ã¹ãã ã®ãããã§ãããã»ããµã®è£œé æ¥è
ã¯ãæ©åšã®ãšã©ãŒãä¿®æ£ããªãããæè»æ§ãšã³ã¹ãåæžãå®çŸããŠããŸãã 1994幎ã«Intel Pentiumããã»ããµãã²ã©ãããã¯ããŠã³ããfdivã§ã®ã»ã³ã»ãŒã·ã§ãã«ãªãã¹ã«ããããã€ãã¯ããŒããŠã§ã¢ãšã©ãŒããœãããŠã§ã¢ãšåæ§ã«çºçãããããªãããšãããã«æçœã«ãªããŸããã ãã®äºä»¶ã«ãããã¡ãŒã«ãŒã¯ãã€ã¯ãã³ãŒãããŒã¹ã®ããã»ããµã®ã¢ãŒããã¯ãã£ã«ããã«é¢å¿ãå¯ããŠããŸãã ãã®ãããIntelãšAMDã¯ãã€ã¯ãã³ãŒããã¯ãããžã䜿çšããŠããã»ããµãæ§ç¯ãå§ããŸããã Intel-1995幎ã«ãªãªãŒã¹ãããPentium ProïŒP6ïŒä»¥éã AMD-1999幎ã«ãªãªãŒã¹ãããK7以éã
ãã¹ãŠã®ç§å¯ãæããã«ãªã
ããã»ããµã¡ãŒã«ãŒã¯ããã€ã¯ãã³ãŒãã®ã¢ãŒããã¯ãã£ãšãã€ã¯ãã³ãŒãã®æŽæ°ã¡ã«ããºã ãå³éã«ç¶æããããšããŠãããšããäºå®ã«ãããããããæµã¯èŠæããŠããŸãã æçåãããæ
å ±ïŒäž»ã«AMD RISC86 [5]ãªã©ã®ç¹èš±ããïŒãšå
¬åŒã®BIOSã¢ããããŒãã®ææ
®æ·±ãå転ïŒK8 [6]ã®ããã«ïŒã¯ãåŸã
ã«ãã€ã¯ãã³ãŒãã®ç§å¯ãæããã«ããŸããïŒããšãã°ãäžã®å³ãåç
§AMDããã»ããµã®ãã€ã¯ãã³ãŒãæŽæ°ã¡ã«ããºã ãïŒã ãããŠãé転ããŒã«ïŒãœãããŠã§ã¢ãšãââãŒããŠã§ã¢ã®äž¡æ¹ïŒã®çµ¶ãéãªãé²å[2]ãææãªãã¡ãžã³ã°æè¡[1]ãããã³Microparse [9]ãSandsifter [10]ãªã©ã®ãªãŒãã³ãœãŒã¹ããŒã«ã®åºçŸã«ããããµã€ããŒæ»æè
ã¯å¿
èŠãªãã€ã¯ãã³ãŒãã«é¢ãããã¹ãŠãåŠã¶ããšãã§ããŸããã€ã¯ãã³ãŒããã«ãŠã§ã¢ãæžã蟌ãå¿
èŠããããŸãã

ããšãã°ã[2]ã§ã¯ããHello worldïŒãïŒãã€ã¯ãã³ãŒããããã€ã®æšéŠ¬åããæåã®ã¹ãããïŒãšããŠãããã»ããµãŒãdivã³ãã³ãã«ã¢ã¯ã»ã¹ããåæ°ãèšç®ããããã€ã¯ãããã¯ãïŒã¢ã»ã³ãã©ãŒåœä»€ãã€ã³ã¿ãŒã»ãããããã€ã¯ãã³ãŒãããã°ã©ã ïŒãéçºãããŸããã ãã®ãã€ã¯ãããã¯ã¯ãã¢ã»ã³ãã©ãŒåœä»€divã®ãã³ãã©ãŒãžã®æ³šå
¥ã§ãã

Ibid [2]ã¯ãããé«åºŠãªãã€ã¯ãããã¯ãæäŸããŸããããã¯ãdiv ebxã®ã¢ã»ã³ãã©ãŒåœä»€ã«éãã«åº§ã£ãŠååšã瀺ãããebx divã«ã¢ã¯ã»ã¹ãããšãã«ç¹å®ã®æ¡ä»¶ãæºããããå Žåã«ã®ã¿ã¢ã¯ãã£ãã«ãªããŸãïŒebxã¬ãžã¹ã¿ã«ã¯å€Bãšã¬ãžã¹ã¿ãå«ãŸããŸãeaxã«ã¯å€Aãå«ãŸããŸããã¢ã¯ãã£ãåããããšããã®ãã€ã¯ãããã¯ã¯eipã¬ãžã¹ã¿ïŒçŸåšã®åœä»€ãã€ã³ã¿ãŒïŒã®å€ã1ã€å¢ãããŸãã ãã®çµæãããã°ã©ã ïŒdiv ebxåœä»€ãåç
§ããåæ°ãæã£ãŠããïŒã®å®è¡ã¯ãªãã»ããã§ç¶è¡ããŸããdivebxã«ç¶ãã³ãã³ãã®æåã®ãã€ãããã§ã¯ãªãã2çªç®ã®ãã€ãããã§ãã eaxããã³ebxã¬ãžã¹ã¿ã§ä»ã®å€ãæå®ãããŠããå Žåãebx divã¯éåžžã©ããæ©èœããŸãã ããã®å®çšçãªäŸ¡å€ã¯äœã§ããïŒ ããšãã°ããéè€ããåœä»€ã[11]ã䜿çšããé£èªåæè¡ã䜿çšããå Žåãã¢ã»ã³ãã©åœä»€ã®é ããããã§ãŒã³ãéãã«ã¢ã¯ãã£ãã«ããŸãã

ãããã®2ã€ã®äŸã¯ãæ£èŠã®ã¢ã»ã³ãã©ãŒåœä»€ã䜿çšããŠä»»æã®ããã€ã®æšéŠ¬ã³ãŒããé ãæ¹æ³ã瀺ããŠããŸãã
åæã«ããµã€ããŒæ»æè
ã¯æªæã®ãããã€ããŒããã¢ã¯ãã£ãã«ããããšãã§ããŸãïŒãªã¢ãŒããå«ãïŒã ããšãã°ãæ»æè
ãå¶åŸ¡ããWebããŒãžã§ã¢ã¯ãã£ããŒã·ã§ã³ã«å¿
èŠãªæ¡ä»¶ãæºããããå Žåã ããã¯ãææ°ã®Webãã©ãŠã¶ãŒã«çµã¿èŸŒãŸããJust-in-TimeïŒJITïŒããã³Ahead-of-TimeïŒAOTïŒã³ã³ãã€ã©ãŒã®ãããã§ãã ãããã®ã³ã³ãã€ã©ã䜿çšãããšãããã°ã©ã ãé«ã¬ãã«ã®JavaScriptã®ã¿ã§èšè¿°ããå Žåã§ãïŒäžèšã®æåŸã®ãªã¹ããåç
§ïŒããã·ã³ã³ãŒãã®ã¢ã»ã³ãã©ãŒåœä»€ã®å®çŸ©æžã¿ã¹ããªãŒã ãçºè¡ã§ããŸãã