ã³ã³ãã¥ãŒã¿ ã·ã¹ãã ã·ãã¥ã¬ãŒã¿ã«é¢ããèšäºã®åŸåã§ã¯ãã³ã³ãã¥ãŒã¿ ã·ãã¥ã¬ãŒã¿ãã€ãŸãå¹³åçãªãŠãŒã¶ãŒãæãé »ç¹ã«ééãããã«ãã©ãããã©ãŒã ã·ãã¥ã¬ãŒã·ã§ã³ãšã¯ããã¯ãã€ã«ã€ããŠãç°¡åãªå ¥é圢åŒã§åŒãç¶ã説æããŸãã - ã¯ãã㯠ã¢ãã«ãšãã¬ãŒã¹ãéçºè ãµãŒã¯ã«ã§ã¯ããäžè¬çã§ãã
Ð
ãã«ãã©ãããã©ãŒã ã·ãã¥ã¬ãŒã¿ããŸãã¯ããã£ãŒã«ãã«ããã ãã§ã¯æŠå£«ã§ã¯ãªãã
XNUMX ã€ã®ç¹å®ã®ããã€ã¹ (ãããã¯ãŒã¯ ã«ãŒããªã©) ã®åäœã調æ»ãããå ŽåããŸãã¯ãã®ããã€ã¹ã®ãã¡ãŒã ãŠã§ã¢ãŸãã¯ãã©ã€ããŒãäœæãããå Žåã¯ããã®ãããªããã€ã¹ãåå¥ã«ã·ãã¥ã¬ãŒãã§ããŸãã ãã ããä»ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããåé¢ããŠäœ¿çšããã®ã¯ããŸã䟿å©ã§ã¯ãããŸããã 察å¿ãããã©ã€ããŒãå®è¡ããã«ã¯ãäžå€®ããã»ããµãã¡ã¢ãªãããŒã¿ ãã¹ãžã®ã¢ã¯ã»ã¹ãªã©ãå¿ èŠã§ãã ããã«ããã©ã€ããŒãæ©èœããã«ã¯ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã (OS) ãšãããã¯ãŒã¯ ã¹ã¿ãã¯ãå¿ èŠã§ãã ããã«ãå¥åã®ãã±ãã ãžã§ãã¬ãŒã¿ãŒãšå¿çãµãŒããŒãå¿ èŠã«ãªãå ŽåããããŸãã
ãã«ãã©ãããã©ãŒã ã·ãã¥ã¬ãŒã¿ãŒã¯ãå®å šãªãœãããŠã§ã¢ ã¹ã¿ãã¯ãå®è¡ããããã®ç°å¢ãäœæããŸããããã«ã¯ãBIOS ãããŒãããŒããŒãããOS èªäœãšãåããããã¯ãŒã¯ ã¹ã¿ãã¯ããã©ã€ããŒããŠãŒã¶ãŒ ã¬ãã«ã®ã¢ããªã±ãŒã·ã§ã³ãªã©ã®ããŸããŸãªãµãã·ã¹ãã ã«è³ããŸã§ããã¹ãŠãå«ãŸããŸãã ãããè¡ãããã«ãããã»ããµãšã¡ã¢ãªããã£ã¹ã¯ãå ¥åºåããã€ã¹ (ããŒããŒããããŠã¹ããã£ã¹ãã¬ã€)ãããã³åããããã¯ãŒã¯ ã«ãŒããªã©ãã»ãšãã©ã®ã³ã³ãã¥ãŒã¿ ããã€ã¹ã®ãœãããŠã§ã¢ ã¢ãã«ãå®è£ ããŸãã
以äžã¯ãIntel ã® x58 ãããã»ããã®ãããã¯å³ã§ãã ãã®ãããã»ããäžã®ãã«ãã©ãããã©ãŒã ã®ã³ã³ãã¥ãŒã¿ãŒ ã·ãã¥ã¬ãŒã¿ãŒã«ã¯ããããã¯å³ã«ã¯è©³ãã瀺ãããŠããªã IOH (å ¥åºåãã) ããã³ ICH (å ¥åºåã³ã³ãããŒã©ãŒ ãã) å ã®ããã€ã¹ãå«ãããªã¹ããããŠããã»ãšãã©ã®ããã€ã¹ã®å®è£ ãå¿ èŠã§ãã ã ãã ããå®éã«èŠãŠã¿ããšãããããå®è¡ãããœãããŠã§ã¢ã§äœ¿çšãããªãããã€ã¹ã¯ããã»ã©å€ããããŸããã ãã®ãããªããã€ã¹ã®ã¢ãã«ãäœæããå¿ èŠã¯ãããŸããã
ã»ãšãã©ã®å Žåããã«ãã©ãããã©ãŒã ã·ãã¥ã¬ãŒã¿ã¯ããã»ããµåœä»€ã¬ãã« (ISAã以äžãåç
§) ã§å®è£
ãããŸãã
ã·ãã¥ã¬ãŒã¿ã®ããã©ãŒãã³ã¹
å
ã»ã©è¿°ã¹ãããã«ãã·ã¹ãã å
šäœãã€ãŸããã¹ãŠã®ããã€ã¹ãã·ãã¥ã¬ãŒãããããã»ã¹ã¯ããªãæéãããããŸãã ããããã¹ãŠãéåžžã«è©³çŽ°ãªã¬ãã« (ãã€ã¯ãã¢ãŒããã¯ãã£ãŸãã¯è«çã¬ãã«ãªã©) ã§å®è£
ãããšãå®è¡ãéåžžã«é
ããªããŸãã ãã ããåœä»€ã¬ãã«ã¯é©åãªéžæã§ããããŠãŒã¶ãŒãå¿«é©ã«æäœããã®ã«ååãªé床㧠OS ãšããã°ã©ã ãå®è¡ã§ããŸãã
ããã§ãã·ãã¥ã¬ãŒã¿ã®ããã©ãŒãã³ã¹ã«ã€ããŠè§ŠããŠããã®ãé©åã§ãããã éåžžãIPS (åœä»€/ç§)ãããæ£ç¢ºã«ã¯ MIPS (çŸäž IPS)ãã€ãŸã XNUMX ç§éã«ã·ãã¥ã¬ãŒã¿ã«ãã£ãŠå®è¡ãããããã»ããµåœä»€ã®æ°ã§æž¬å®ãããŸãã åæã«ãã·ãã¥ã¬ãŒã·ã§ã³ã®é床ã¯ãã·ãã¥ã¬ãŒã·ã§ã³èªäœãå®è¡ãããã·ã¹ãã ã®ããã©ãŒãã³ã¹ã«ãäŸåããŸãã ãããã£ãŠãå ã®ã·ã¹ãã ãšæ¯èŒããã·ãã¥ã¬ãŒã¿ãŒã®ãé床ã®äœäžãã«ã€ããŠè©±ãæ¹ãæ£ç¢ºãããããŸããã
QEMUãVirtualBoxãVmWare Workstation ãªã©ãåžå Žã§æãäžè¬çãªãã«ãã©ãããã©ãŒã ã·ãã¥ã¬ãŒã¿ã¯ãåªããããã©ãŒãã³ã¹ãåããŠããŸãã ã·ãã¥ã¬ãŒã¿ã§äœæ¥ãé²è¡ããŠããããšã«ãŠãŒã¶ãŒã¯æ°ä»ããªãå ŽåããããŸãã ããã¯ãããã»ããµã«å®è£ ãããç¹å¥ãªä»®æ³åæ©èœããã€ããªå€æã¢ã«ãŽãªãºã ããã®ä»ã®èå³æ·±ãæ©èœã®ãããã§å®çŸããŸãã ããã¯ãã¹ãŠå¥ã®èšäºã®ãããã¯ã§ãããç°¡åã«èšããšãä»®æ³åã¯ææ°ã®ããã»ããµã®ããŒããŠã§ã¢æ©èœã§ãããã·ãã¥ã¬ãŒã¿ãåœä»€ãã·ãã¥ã¬ãŒãããã®ã§ã¯ãªããåœä»€ãå®éã®ããã»ããµã«çŽæ¥éä¿¡ããŠå®è¡ã§ããããã«ããŸããã·ãã¥ã¬ãŒã¿ãšããã»ããµã¯äŒŒãŠããŸãã ãã€ããªå€æãšã¯ãã²ã¹ã ãã·ã³ ã³ãŒãããã¹ã ã³ãŒãã«å€æãããã®åŸå®éã®ããã»ããµäžã§å®è¡ããããšã§ãã ãã®çµæãã·ãã¥ã¬ãŒã·ã§ã³ã¯ 5 ïœ 10 åãšãããã«é ããªãã ãã§ãå€ãã®å Žåãå®éã®ã·ã¹ãã ãšåãé床ã§å®è¡ãããããšããããŸãã ããã«ã¯å€ãã®èŠå ã圱é¿ããŸããã ããšãã°ãæ°ååã®ããã»ããµãåããã·ã¹ãã ãã·ãã¥ã¬ãŒããããå Žåãé床ã¯ããã«æ°ååäœäžããŸãã äžæ¹ãææ°ããŒãžã§ã³ã® Simics ãªã©ã®ã·ãã¥ã¬ãŒã¿ã¯ããã«ãããã»ããµ ãã¹ã ããŒããŠã§ã¢ããµããŒãããã·ãã¥ã¬ãŒããããã³ã¢ãå®éã®ããã»ããµã®ã³ã¢ã«å¹æçã«äžŠååããŸãã
ãã€ã¯ãã¢ãŒããã¯ã㣠ã·ãã¥ã¬ãŒã·ã§ã³ã®é床ã«ã€ããŠèšãã°ãéåžžãã·ãã¥ã¬ãŒã·ã§ã³ãè¡ããªãéåžžã®ã³ã³ãã¥ãŒã¿ãŒã§ã®å®è¡ãããæ°æ¡é ããçŽ 1000 ïœ 10000 åé ããªããŸãã ãŸããè«çèŠçŽ ã¬ãã«ã§ã®å®è£ ã¯æ°æ¡é ããªããŸãã ãããã£ãŠããã®ã¬ãã«ã§ã¯ FPGA ããšãã¥ã¬ãŒã¿ãšããŠäœ¿çšãããããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸãã
以äžã®ã°ã©ãã¯ãã¢ãã«ã®è©³çŽ°ã«å¯Ÿããã·ãã¥ã¬ãŒã·ã§ã³é床ã®ããããã®äŸåæ§ã瀺ããŠããŸãã
ããŒãããšã®ã·ãã¥ã¬ãŒã·ã§ã³
å®è¡é床ã¯äœãã«ããããããããã€ã¯ãã¢ãŒããã¯ã㣠ã·ãã¥ã¬ãŒã¿ã¯éåžžã«äžè¬çã§ãã ååœä»€ã®å®è¡æéãæ£ç¢ºã«ã·ãã¥ã¬ãŒãããã«ã¯ãããã»ããµã®å éšãããã¯ã®ã·ãã¥ã¬ãŒã·ã§ã³ãå¿ èŠã§ãã ããã§èª€è§£ãçããå¯èœæ§ããããŸãããçµå±ã®ãšãããåã«ååœä»€ã®å®è¡æéãããã°ã©ã ããã°ããã®ã§ã¯ãªãããšæããããããããŸããã ããããåãåœä»€ã®å®è¡æéã¯åŒã³åºãããšã«ç°ãªãå¯èœæ§ãããããããã®ãããªã·ãã¥ã¬ãŒã¿ãŒã¯éåžžã«äžæ£ç¢ºã«ãªããŸãã
æãåçŽãªäŸã¯ã¡ã¢ãª ã¢ã¯ã»ã¹åœä»€ã§ãã èŠæ±ãããã¡ã¢ãªã®å Žæããã£ãã·ã¥å ã«ããå Žåãå®è¡æéã¯æå°éã«ãªããŸãã ãã®æ å ±ããã£ãã·ã¥ã«ãªãå Žå (ããã£ãã·ã¥ãã¹ã)ãåœä»€ã®å®è¡æéãå€§å¹ ã«å¢å ããŸãã ãããã£ãŠãæ£ç¢ºãªã·ãã¥ã¬ãŒã·ã§ã³ã«ã¯ãã£ãã·ã¥ ã¢ãã«ãå¿ èŠã§ãã ãã ããåé¡ã¯ãã£ãã·ã¥ã¢ãã«ã«éå®ãããŸããã ããã»ããµã¯ãããŒã¿ããã£ãã·ã¥ã«ãªãå Žåãã¡ã¢ãªããããŒã¿ãååŸãããã®ããã åŸ ã€ããã§ã¯ãããŸããã 代ããã«ãã¡ã¢ãªããã®èªã¿åãçµæã«äŸåããªãåœä»€ãéžæããŠã次ã®åœä»€ã®å®è¡ãéå§ããŸãã ããã¯ãããã»ããµã®ã¢ã€ãã«æéãæå°éã«æããããã«å¿ èŠãªããããããã¢ãŠããªããªãŒããŒãå®è¡ (OOOãã¢ãŠããªããªãŒããŒå®è¡) ã§ãã 察å¿ããããã»ããµ ãããã¯ãã¢ãã«åãããšãåœä»€ã®å®è¡æéãèšç®ãããšãã«ããããã¹ãŠãèæ ®ããã®ã«åœ¹ç«ã¡ãŸãã ãããã®åœä»€ã®ãã¡ãã¡ã¢ãªããã®èªã¿åºãçµæãåŸ ã£ãŠå®è¡ãããåœä»€ã®äžã«ã¯ãæ¡ä»¶ãžã£ã³ãåäœãçºçããå ŽåããããŸãã çŸæç¹ã§æ¡ä»¶ã®çµæãäžæãªå Žåãããã»ããµã¯å®è¡ãåæ¢ããããæšæž¬ããè¡ããé©åãªåå²ãå®è¡ããé·ç§»ç¹ããç©æ¥µçã«åœä»€ãå®è¡ãç¶ããŸãã ãã®ãããªãããã¯ã¯åå²äºæž¬åãšåŒã°ãããã€ã¯ãã¢ãŒããã¯ã㣠ã·ãã¥ã¬ãŒã¿ãŒã«ãå®è£ ããå¿ èŠããããŸãã
äžã®å³ã¯ããã»ããµã®äž»èŠãããã¯ã瀺ããŠããŸãããããç¥ãå¿ èŠã¯ãããŸããããã€ã¯ãã¢ãŒããã¯ãã£å®è£ ã®è€éãã瀺ãããã«ã®ã¿ç€ºãããŠããŸãã
å®éã®ããã»ããµå
ã®ããããã¹ãŠã®ãããã¯ã®åäœã¯ç¹å¥ãªã¯ããã¯ä¿¡å·ã«ãã£ãŠåæãããŠãããã¢ãã«ã§ãåãããšãèµ·ãããŸãã ãã®ãããªãã€ã¯ãã¢ãŒããã¯ã㣠ã·ãã¥ã¬ãŒã¿ã¯ãµã€ã¯ã« ã¢ãã¥ã¬ãŒããšåŒã°ããŸãã ãã®äž»ãªç®çã¯ãéçºäžã®ããã»ããµã®ããã©ãŒãã³ã¹ãæ£ç¢ºã«äºæž¬ãããããã³ãããŒã¯ãªã©ã®ç¹å®ã®ããã°ã©ã ã®å®è¡æéãèšç®ãããããããšã§ãã å€ãå¿
èŠãªå€ãããäœãå Žåã¯ãã¢ã«ãŽãªãºã ãšããã»ããµ ãããã¯ãå€æŽããããããã°ã©ã ãæé©åããå¿
èŠããããŸãã
äžã§ç€ºããããã«ãã¯ããã¯ããšã®ã·ãã¥ã¬ãŒã·ã§ã³ã¯éåžžã«é ããããããã°ã©ã ã®å®è¡ã®å®éã®é床ã調ã¹ãããã€ã¹ã®å°æ¥ã®ããã©ãŒãã³ã¹ãè©äŸ¡ããå¿ èŠããããããã°ã©ã åäœã®ç¹å®ã®ç¬éãç 究ããå Žåã«ã®ã¿äœ¿çšãããŸãããããã¿ã€ããã·ãã¥ã¬ãŒã·ã§ã³äžã§ãã
ãã®å Žåãé¢æ°ã·ãã¥ã¬ãŒã¿ãŒã䜿çšããŠãããã°ã©ã ã®æ®ãã®å®è¡æéãã·ãã¥ã¬ãŒãããŸãã ãã®çµã¿åããã¯å®éã«ã¯ã©ã®ããã«èµ·ããã®ã§ãããã? ãŸããé¢æ°ã·ãã¥ã¬ãŒã¿ãŒãèµ·åãããOS ãšç 究察象ã®ããã°ã©ã ãå®è¡ããããã«å¿ èŠãªãã®ããã¹ãŠããŒããããŸãã çµå±ã®ãšãããç§ãã¡ã¯ OS èªäœã«ã¯èå³ããªããããã°ã©ã ã®èµ·åããã®æ§æãªã©ã®åæ段éã«ãèå³ããããŸããã ãã ãããããã®éšåãã¹ãããããŠãããã«éäžããããã°ã©ã ã®å®è¡ã«ç§»ãããšãã§ããŸããã ãããã£ãŠããããã®æºåã¹ãããã¯ãã¹ãŠæ©èœã·ãã¥ã¬ãŒã¿ãŒã§å®è¡ãããŸãã é¢å¿ã®ããæç¹ãŸã§ããã°ã©ã ãå®è¡ãããåŸãXNUMX ã€ã®ãªãã·ã§ã³ãå¯èœã«ãªããŸãã ã¢ãã«ãã¯ããã¯ãã€ãµã€ã¯ã« ã¢ãã«ã«çœ®ãæããŠãå®è¡ãç¶è¡ã§ããŸãã å®è¡å¯èœã³ãŒã (ã€ãŸããéåžžã®ã³ã³ãã€ã«ãããããã°ã©ã ãã¡ã€ã«) ã䜿çšããã·ãã¥ã¬ãŒã·ã§ã³ ã¢ãŒãã¯ãå®è¡é§åã·ãã¥ã¬ãŒã·ã§ã³ãšåŒã°ããŸãã ããã¯æãäžè¬çãªã·ãã¥ã¬ãŒã·ã§ã³ ãªãã·ã§ã³ã§ãã å¥ã®ã¢ãããŒãããã¬ãŒã¹é§åã·ãã¥ã¬ãŒã·ã§ã³ãå¯èœã§ãã
ãã¬ãŒã¹ããŒã¹ã®ã·ãã¥ã¬ãŒã·ã§ã³
ãã㯠XNUMX ã€ã®ã¹ãããã§æ§æãããŸãã æ©èœã·ãã¥ã¬ãŒã¿ãŸãã¯å®éã®ã·ã¹ãã ã䜿çšããŠãããã°ã©ã åäœã®ãã°ãåéããããã¡ã€ã«ã«æžã蟌ãŸããŸãã ãã®ãã°ããã¬ãŒã¹ãšåŒã³ãŸãã æ€æ»å¯Ÿè±¡ã«å¿ããŠããã¬ãŒã¹ã«ã¯å®è¡å¯èœåœä»€ãã¡ã¢ãª ã¢ãã¬ã¹ãããŒãçªå·ãããã³å²ã蟌ã¿æ å ±ãå«ãŸããå ŽåããããŸãã
次ã®ã¹ãããã¯ãã¯ããã¯ãã€ã¯ãã㯠ã·ãã¥ã¬ãŒã¿ããã¬ãŒã¹ãèªã¿åããããã«æžã蟌ãŸãããã¹ãŠã®åœä»€ãå®è¡ãããšãããã¬ãŒã¹ããåçãããããšã§ãã æåŸã«ãããã°ã©ã ã®ãã®éšåã®å®è¡æéãšããã®ããã»ã¹ã®ããŸããŸãªç¹æ§ (ãã£ãã·ã¥å ã®ãããçãªã©) ãååŸããŸãã
ãã¬ãŒã¹ãæäœããéã®éèŠãªç¹åŸŽã¯æ±ºå®è«ã§ããã€ãŸããäžèšã®æ¹æ³ã§ã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡ããããšã§ãåãäžé£ã®ã¢ã¯ã·ã§ã³ãäœåºŠãç¹°ãè¿ãåçŸããŸãã ããã«ãããã¢ãã« ãã©ã¡ãŒã¿ãŒ (ãã£ãã·ã¥ããããã¡ãŒããã¥ãŒ ãµã€ãº) ãå€æŽããããŸããŸãªå éšã¢ã«ãŽãªãºã ã䜿çšãããããããã調æŽãããããããšã§ãç¹å®ã®ãã©ã¡ãŒã¿ãŒãã·ã¹ãã ããã©ãŒãã³ã¹ã«ã©ã®ãããªåœ±é¿ãäžããããã©ã®ãªãã·ã§ã³ãæè¯ã®çµæããããããã調æ»ããããšãå¯èœã«ãªããŸãã ããããã¹ãŠã¯ãå®éã®ããŒããŠã§ã¢ ãããã¿ã€ããäœæããåã«ããããã¿ã€ã ããã€ã¹ ã¢ãã«ã䜿çšããŠè¡ãããšãã§ããŸãã
ãã®ã¢ãããŒãã®è€éãã¯ãæåã«ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŠãã¬ãŒã¹ãåéããå¿ èŠãããããšãšããã¬ãŒã¹ ãã¡ã€ã«ã®ãµã€ãºã巚倧ã§ããããšã«ãããŸãã å©ç¹ãšããŠã¯ãå®è¡ã«ããã·ãã¥ã¬ãŒã·ã§ã³ã«ã¯éåžžãå®å šãªã¢ãã«ãå¿ èŠã§ããã®ã«å¯Ÿãã察象ã®ããã€ã¹ãŸãã¯ãã©ãããã©ãŒã ã®äžéšã®ã¿ãã·ãã¥ã¬ãŒãããã°ååã§ãããšããäºå®ãå«ãŸããŸãã
ããã§ããã®èšäºã§ã¯ããã«ãã©ãããã©ãŒã ã·ãã¥ã¬ãŒã·ã§ã³ã®æ©èœãæ€èšããããŸããŸãªã¬ãã«ã§ã®å®è£
ã®é床ãã¯ããã¯ããšã®ã·ãã¥ã¬ãŒã·ã§ã³ãããã³ãã¬ãŒã¹ã«ã€ããŠèª¬æããŸããã 次ã®èšäºã§ã¯ãå人çãªç®çãšå€§äŒæ¥ã§ã®éçºã®èŠ³ç¹ã®äž¡æ¹ã§ãã·ãã¥ã¬ãŒã¿ãŒã䜿çšããäž»ãªã·ããªãªã«ã€ããŠèª¬æããŸãã
åºæïŒ habr.com