å€ãã®äººãããã«ãã»ã«ã©ãŒã¢ãŒããã¯ãã£ãããã»ããµãããã³ãããã®æåã®ããã€ã¹ã«ã€ããŠãèããŠããŸãã ç¹ã«äžçŽãŠãŒã¶ãŒã¯ã¢ã«ãŽãªãºã ããã¹ãããŸããã æåã®ç°¡åãªããã©ãŒãã³ã¹ãã¹ããšãP1ããã»ããµãããããšããã³ã°ãã
BarsmonsterãŠãŒã¶ãŒã宿œãããŸããã R1ããã»ããµã¯ãã§ã«æåã®ãã¹ããåããŠãããããã«ãã¹ãŠã®äººãå©çšã§ããããã«ãªããŸãã ããããå€çŽ°èæ§é ãã©ã®ããã«æ©èœãããã®éãã¯äœããšãã質åã«å¯Ÿããçãã誰ããç¥ã£ãŠããããã§ã¯ãããŸããã ç©äºãææ°ã®ãã®ã«ããããã«ä»ãã詊ããŠã¿ãŸãããã
1.å€çŽ°èæ§ãã«ãã»ã«ã©ãŒã³ã¢ã¯ãå®å
šã«æ¥ç¶ãããåæ¹åã¹ã€ããã³ã°ç°å¢ã«ãã£ãŠçµåããããåäžã®ããã»ããµãŠãããïŒ2ã€ä»¥äžïŒã®ã°ã«ãŒãã§ãã ããã»ããµãŠãããéã®çžäºäœçšã®ç¹æ§ã¯ãã¢ã«ãŽãªãºã ã®èª¬æããããããŸãïŒããã«ã€ããŠã¯ä»¥äžã§è©³ãã説æããŸãïŒã ãã«ãã»ã«ã©ãŒã¢ãŒããã¯ãã£ã®ããã»ããµãŠãããã¯ãã»ã«ãšåŒã°ããŸãã å®è¡ã§ããã³ãã³ãã®ã»ããã¯ãç¹å®ã®å®è£
ã«ãã£ãŠæ±ºå®ãããã¢ãŒããã¯ãã£ã«äŸåããŸããã
å€çŽ°èæ žã®ã¢ã«ãŽãªãºã ãç®ã
ãŸã第äžã«ãã©ã®åŒããé局䞊å圢åŒïŒNPFïŒã®åœ¢åŒã§è¡šãããšãã§ããŸãã æ€èšãã
åçŽãªäŸïŒg = e *ïŒa + bïŒ+ïŒacïŒ* fãNPSã§ã¯æ¬¡ã®ããã«ãªããŸãã
å³1. NPSã®äŸ
äžè¬ã«ãæäœãå®è¡ããããã«ãiçªç®ã®å±€ã«ããããŒãã¯ã1çªç®ããïŒi-1ïŒçªç®ãŸã§ã®å±€ã§ååŸããçµæã䜿çšã§ããŸãã ãããã£ãŠãåãå±€ã«ããããŒã ã¯ç¬ç«ããŠããŸãã
ã¢ã«ãŽãªãºã ã¯ãäžé£ã®åŒã§ããããµãã»ããïŒç·åœ¢ã»ã¯ã·ã§ã³ãã³ã³ãããŒã«è»¢éæŒç®åã«ãã£ãŠçžäºæ¥ç¶ãããŠããïŒã«åå²ãããŸãã ç·åœ¢ã»ã¯ã·ã§ã³ïŒLUïŒã¯ãç¹å®ã®ç·åœ¢ã»ã¯ã·ã§ã³ã«å¶åŸ¡ãç§»ãããå Žåã«ã®ã¿èšç®ãããæ°åŒã®ãµãã»ããã§ãã ç·åœ¢ã»ã¯ã·ã§ã³å
ã§ã¯ãæ
å ±çã«ç¡é¢ä¿ãªæ°åŒãä»»æã®é åºã§å®è¡ã§ããŸãã
ãåãã®ããã«ãä»»æã®ã³ãã³ãã®ããã»ããµã«ããå®è¡ã®çµæã¯ãããã»ããµã®ç¶æ
ã®å€åã§è¡šãããŸãã åŸç¶ã®ããŒã ããã®æ°ããç¶æ
ã䜿çšãããšãçµæã®ãœãŒã¹ã³ãã³ããšãã®çµæã®åä¿¡è
ã³ãã³ãéã®æ
å ±ãªã³ã¯ã圢æãããŸãã ãã®ãããªé¢ä¿ã¯ã鿥ïŒéæ¥ïŒãŸãã¯çŽæ¥ïŒçŽæ¥ïŒã®ããããã§ãã
鿥çãªã³ãã¥ãã±ãŒã·ã§ã³ã§ã¯ãçµæã¯çå€ãããåŸã«ã®ã¿å©çšå¯èœã«ãªããŸããã€ãŸããå
Œ
±ã®ã¬ãžã¹ã¿ãŒãã¡ã¢ãªãŸãã¯ãã®ä»ã®ããã€ã¹ã«èšé²ããŸãã sourceã³ãã³ãã¯çµæããããã®ããã€ã¹ã«é
眮ããå¿
èŠããããreceiverã³ãã³ãã¯ããããããŒã¿ãååŸããå¿
èŠããããŸãã ããã€ã¹åã¯ãªãã©ã³ããšããŠæå®ãããŸãã ããŒã éã®ãã®ãããªæ¥ç¶ã¯ããã«ãã»ã«ã©ãŒãé€ãããã¹ãŠã®ææ°ã®ããã»ããµãŒã®åºæ¬ã§ãã
çŽæ¥çãªæ
å ±éä¿¡ã®å ŽåãããŒã ã«ã¯ååãä»ããããååã¯ããŒã ã®å Žæããã®ä»ã®å®è£
æ©èœã§ã¯ãªããããŒã èªäœãèå¥ããå¿
èŠããããŸãã çµæã«ã¯ããœãŒã¹ããŒã ãšã¬ã·ãŒããŒããŒã ã®äž¡æ¹ã®ååã§ã¢ã¯ã»ã¹ã§ããŸãã æåã®ã±ãŒã¹ã§ã¯ããããŒããã£ã¹ãã䜿çšãããç¶ããŠããŒã«ã³ãŒã«ãéžæãããŸãããã®å ŽåããœãŒã¹ã³ãã³ãã®ååã¯ãå®å
ã³ãã³ãã®ãªãã©ã³ããã£ãŒã«ãã§æå®ãããŸãã 2çªç®ã§ã¯ãããŒã«ã¢ãŠããå®è¡ããããœãŒã¹ã³ãã³ããçµæã®å®å
ã³ãã³ãã®ååãèšå®ããŸãã
çè«çã«ã¯ãNPSã®ããŒãã«ã¯ä»»æã®ååãä»ããããšãã§ããŸãã å¯äžã®èŠä»¶ã¯äžææ§ã§ãã ãããè¡ãããã«ããã«ãã»ã«ã©ãŒããã»ããµã§ã¯ãããŒã ã¯ã¡ã¢ãªãããã§ãããããšãã«ã¿ã°ïŒã©ãã«ïŒãåãåããŸã-ãããã£ãŠãããŒã«ã«åãšçµæãäžããããŸã-ãããŠãããŒã éã®çžäºäœçšã¯ã¿ã°ãä»ããŠç·šæãããŸãã ããŒã¿ã¯ãç¬èªã®ã¿ã°ãããäœãã¿ã°ãæã€ããŒã ããååŸã§ããŸãã ç®çã®çµæã®ã¿ã°çªå·ã¯ãã³ãã³ãã¿ã°ã®å€ãšç®çã®çµæã®ã¿ã°ã®å€ã®å·®ã«ãã£ãŠèšå®ãããŸãã ããšãã°ããªãã©ã³ãã«@ 5ãæå®ãããã³ãã³ãã¿ã°ã7ã®å Žåãã¿ã°2ã®ã³ãã³ãã®çµæããªãã©ã³ããšããŠäœ¿çšãããŸããã³ãã³ãå®è¡ã®ãã¹ãŠã®çµæã¯ã¹ã€ããã³ã°ç°å¢ã«éä¿¡ãããããããå¿
èŠãªãã®ãã¿ã°ã«ãã£ãŠéžæãããŸãã ãããã£ãŠããã«ãã»ã«ã©ãŒããã»ããµã§ã¯ããããŒããã£ã¹ãçµæã¯ååã«ããåŸç¶ã®éžæã§äœ¿çšãããŸãã
ç©ççãªå¶éã«ãããåä¿¡åŽã³ãã³ãããã®ãœãŒã¹ã³ãã³ãã®æå€§è·é¢ã決å®ãããå¯èŠæ§ãŠã£ã³ããŠãã®æŠå¿µãããããšã«æ³šæããŠãã ããã ã³ãã³ããååŸããããã»ã¹ã®ã¿ã°ã¯åšæçã«å€åããŸãã ãã®æå€§å€ã¯ãã³ãã³ããããã¡ãŒã®ãµã€ãºã«ãã£ãŠæ±ºãŸããŸãã å®éãã¿ã°ã®ãµã€ãºã«ãã£ãŠãå®è¡ã®ç°ãªã段éã§åæã«å®è¡ã§ããã³ãã³ãã®æ°ã決ãŸããŸãã 以åã«å²ãåœãŠãããã³ãã³ãããŸã å®è¡ãããŠããªãå Žåãã¿ã°å€ã¯äœ¿çšã§ããŸããã第äºã«ããã«ãã»ã«ã©ãŒããã»ããµã¯ã段èœãšåŒã°ããæ§é ã§åäœããŸãã
段èœã¯ãæ
å ±ãšããŠéããããäžé£ã®ã³ãã³ãã§ãã æ®µèœã¯ã³ãã³ãã®é¡äŒŒç©ã§ããããã®åŸãããã»ããµããã³/ãŸãã¯ãã®æ§æå
ã®ã·ã¹ãã ïŒã¬ãžã¹ã¿ããã¹ãã¡ã¢ãªã»ã«ãå
¥å/åºåãã£ãã«ãªã©ïŒã®ç¶æ
ãå€åããŸãã ã€ãŸã å€çŽ°èæ žã®å Žåãæ®µèœã¯ã³ãã³ãã§ãã
ãã«ãã»ã«ã©ãŒ
ã¢ãŒããã¯ãã£ã®äž»ãªæ©èœã¯ãã¢ã«ãŽãªãºã ã®JPF衚çŸãçŽæ¥å®è£
ããããšã§ãã ãã®ã¢ã«ãŽãªãºã ã®çè§£ãããå€çްèã¢ãŒããã¯ãã£ã®å€ãã®ç¹æ§ãç¶ããŸãã
2.ãã«ãã»ã«ã©ãŒã¢ãŒããã¯ãã£ã®ããããã£- ã»ã«ã®æ°ããã®ç¬ç«ã
- ã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ã®åçå²ãåœãŠã
- å®è¡å¯èœãªãã¹ãŠã®ã³ãã³ããåæã«å®è¡ãããŸãã
- äœæ¶è²»é»åã äœæ¥ããããšãã«æ©èœããŸãã
- ã¹ã±ãŒã©ããªãã£ãã»ã«ã®æ°ã«å¶éã¯ãããŸããã
段èœ2ã§èª¬æãããŠããã¢ã«ãŽãªãºã ã§æ®µèœãã©ã®ããã«èŠããããããã«è©³ããèããŠã¿ãŸãããã
å€çŽ°èæ žã®å Žåãæ¬¡ã®æ®µèœã®æ§æã¹ããŒã ãç¹åŸŽçã§ãïŒå¿
é ã§ã¯ãããŸãããäžèšã®äŸã«ãåå·®ããããŸãïŒã
- äœæ¥çšããŒã¿ã®ååŸïŒäŸã§ã¯ã¿ã°0-2,4,6ã®ã³ãã³ãïŒ;
- ããŒã¿åŠçïŒäŸã§ã¯ã¿ã°3,5,7-9ãæã€ã³ãã³ãïŒ;
- çµæã®ä¿åïŒäŸã§ã¯ã¿ã°10ã®ã³ãã³ãïŒã
段èœã®çµããã§ããã«ãã»ã«ã©ãŒããã»ããµã®ãã·ã³ã®ç¶æ
ãå€åããããšãæãåºããŠãã ããã
ã¢ã«ãŽãªãºã ã¯ã»ã«ã®æ°ã«äŸåããŸãããããŒã éã®æ
å ±æ¥ç¶ã¯æç€ºçã«ç€ºãããŠãããããã°ã©ã ã®äœææã«ããã»ããµãŠãããã®æ°ãç¥ãå¿
èŠã¯ãããŸããã ããŒã ã¯ããªãã©ã³ãã®æºåãæŽãã®ãåŸ
ã£ãŠãããå®è¡ã«ç§»ãããã€èª°ããªãã©ã³ããæºåããããæ°ã«ããŸããã æ°ŽãŸãçŒ¶ãæ³åããŠã¿ãŠãã ãã-æ°ŽãŸãã®éã«ããºã«ã«ããã€ã®ç©Žããããã¯èããŸããã ã»ã«ã¯åäžã§ããããã®ã»ã«ãŸãã¯ãã®ã³ãã³ããå®è¡ãããã»ã«ã«éãã¯ãããŸããã
ããŒã ã¯ãã»ã«ãåŸãé åºã§ã1ã»ã«ã0ã»ã«ã2ããŒã ã1ã»ã«ãªã©ã®é åºã§ã»ã«ã«åæ£ãããŸããããŒã ãæåŸã®äœ¿çšå¯èœãªã»ã«ã«è»¢éããããšã0ã»ã«ããå忣ãéå§ãããŸãã 4çŽ°èæ žã®ä»äºãèããŠã¿ãŸãããã äžèšã®æ®µèœã¯æ¬¡ã®ããã«å®è¡ãããŸãã
å³2.ã»ã«ã«ããããŒã ã®ååž
åæã«å®è¡ãããã³ãã³ãã®æ°ã¯ãã»ã«ã®æ°ã«ãã£ãŠç°ãªããŸãã åã¿ã¹ã¯ã«æé©ãªã»ã«æ°ãéžæããããšã¯ãåæãå¿
èŠãªã¿ã¹ã¯ã§ãã æ®éçãªã·ã¹ãã ãäœæããããšã¯ãŸã æ©èœããªããããæ¬¡ã®ããŒã¿ã«çŠç¹ãåœãŠãããšãã§ããŸãïŒ4ã€ã®ã»ã«ã¯äžè¬çãªã¿ã¹ã¯ã«éåžžã«åªããŠããã16ã®ã»ã«ã¯ä¿¡å·åŠçã¿ã¹ã¯ã«åªããŠããŸãã
ã³ãŒããåæããŠããããã«æé©ãªã»ã«æ°ãæ³åã§ããŸãã ãããè¡ãã«ã¯ãNPSã§ã¢ã«ãŽãªãºã ãæç€ºããéå±€å
ã®ããŒã ã®æ°ãèšç®ããå¿
èŠããããŸãã ãããã®ããŒã ã®å¹³åæ°ã¯ãç¹å®ã®ã±ãŒã¹ã§ã®ã»ã«ã®æé©æ°ã瀺åããŸããå®è¡å¯èœãªãã¹ãŠã®ã³ãã³ãã¯åæã«å®è¡ãããŸããäžèšã®ããã«ãå€çŽ°èæ žã¯ã¢ã«ãŽãªãºã ã®JPF衚çŸãå®è£
ããç¬ç«ããããŒã ãå±€ã«é
眮ãããŸãã çŸæç¹ã§ã§ããããšã¯ãã¹ãŠãããã°ã©ãããã®ç¹å¥ãªæç€ºãªãã«å®è¡ãããŸããäž»ãªæ¡ä»¶ã¯ãããŒã ãå®è¡ã®ããã«ãã¹ãŠã®ããŒã¿ãåä¿¡ããå¿
èŠããããšããããšã§ãã
æè¡çãªå¶éãèæ
®ããå¿
èŠããããŸããã»ã«ã®æ°ãå¶éãããŠããããããã¥ãŒã¯ãªã¢ã¹ã«ããã»ã«ãšåãæ°ã®ã³ãã³ããåæã«å®è¡ãããŸãã
ããã€ãŒã«ã¢ã©ã€ã¡ã³ãããŸãã¯ã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ã®åçå²ãåœãŠãªããªã ã³ãŒãã¯ãå®è¡ãããã»ã«ã®æ°ã«äŸåãããæäœäžã«ã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ã忣ããå€çŽ°èæ žã®èœåãçŸããå¶åŸ¡ã¯ããã°ã©ã ã«ãã£ãŠå®è¡ãããŸãã
ãªãœãŒã¹ãåé
åžãããã«ãã»ã«ã©ãŒã¢ãŒããã¯ãã£ã®èœåã¯ã
åæ§æãšåŒã°ãããã®ã§ãã ããšãã°ãå€çŽ°èæ žã®çްèã¯ãä»»æã®ã¢ã«ãŽãªãºã ãŸãã¯ãã®äžéšãå®è¡ããããã«ä»»æã«åæ£ã§ããŸãã ã°ã«ãŒãïŒãŸã è¯ãååãæãã€ããŠããŸããïŒã¯ãä»»æã®ã¢ã«ãŽãªãºã ãŸãã¯ã¢ã«ãŽãªãºã ã®äžéšãå®è¡ããããã«çžäºæ¥ç¶ãããŠããå€çŽ°èæ žã®ã»ã«ã®äžéšã§ãã ã°ã«ãŒãã«ã¯1ã€ä»¥äžã®ã»ã«ãå«ããããšãã§ããŸãã å€çŽ°èæ žãã°ã«ãŒããéšåã«åå²ãããšããããã¯
åè§£ãšåŒã°ããŸãã ã°ã«ãŒãåã®ããã»ã¹ã¯
åæã§ãã äžã®å³3ã¯ã4ã»ã«ã®ãã¥ãŒã¯ãªã¢ã¹ãæéãšãšãã«ã©ã®ããã«åæ§æããããã瀺ããŠããŸãïŒäŸïŒã 1ã€ã®ã¿ã¹ã¯ãå®è¡ããã»ã«ã«ã¯ã1ã€ã®è²ãå¡ãã€ã¶ãããŸãã
å³3.ã»ã«åæ§æã®äŸã
æ¶è²»é»åã®åæžã ä»äºããããšãã«æ©èœããŸãããã«ãã»ã«ã©ãŒã¢ãŒããã¯ãã£ã®åºæ¬çãªåºç€ã¯ãããŒããã£ã¹ãã§ãã ãããŸã§ã®ãšãããããã¯çŽæ¥çãªæ
å ±éä¿¡ã䜿çšããŠããã°ã©ã å
ã®ããŒã éã§ããŒã¿ã転éããå¯äžã®ã¢ãŒããã¯ãã£ã§ãã
4ã»ã«ããã»ããµã«ããã³ãŒãå®è¡ã®äŸã瀺ãå³1ã«æ³šç®ãããšãã»ã«ã¯å®è¡æºåãã§ããŠãããšãã«éå±€ã«ããã³ãã³ããå®è¡ããããšã¯æããã§ãã çµæã¯ã¹ã€ããã³ã°ç°å¢ã«çœ®ãããæ¶è²»è
ãåŸ
ã£ãŠããŸãã
å€çŽ°èæ žã¯äžå¿
èŠãªã¢ã¯ã·ã§ã³ãå®è¡ãããä»äºããããšãã«æ©èœããŸãã ããã»ããµã®ã³ã³ããŒãã³ãã®ãããããã³ãã³ããå®è¡ããæºåãã§ããŠããªãå Žåãè§£æŸããããŸã§ãã®ã³ã³ããŒãã³ãã§ã®äœæ¥ã¯äžæãããŸãã
ã¹ã±ãŒã©ããªãã£ãã»ã«ã®æ°ã«å¶éã¯ãããŸãããã¢ãŒããã¯ãã£ã¯ã»ã«ã®æ°ãå¶éããŸããã éèŠãªã®ã¯ãã¯ãããžãŒã§ãã
倿°ã®ã»ã«ãæŽçããã«ã¯ããã€ãã®ãªãã·ã§ã³ããããŸãããããã¯å¥ã®èšäºã®ãããã¯ã§ãããåŸã§æºåããŸãã
3å®è£
èäœã®ãã«ãã»ã«ã©ãŒããã»ããµãã«ãã»ã«ã©ãŒããã»ããµã¯ã0ãn-1ã®çªå·ãæã€Nåã®åäžã»ã«ã§æ§æãããã¹ã€ããã³ã°ã¡ãã£ã¢ã«ãã£ãŠçµåãããŸãã åã»ã«ã«ã¯ããã°ã©ã ã¡ã¢ãªãŠãããïŒPMïŒãã³ã³ãããŒã«ãŠãããïŒCUïŒããããã¡ããã€ã¹ïŒBUFïŒãå«ãŸããåã»ã«ã¯ã¹ã€ããã³ã°ããã€ã¹ïŒSUïŒã«å¯Ÿå¿ãããã®çµã¿åãããã¹ã€ããã³ã°ã¡ãã£ã¢ïŒSBïŒã圢æããŸãã ããã»ããµã«ã¯ãããŒã¿ã¡ã¢ãªïŒDMïŒãæ±çšã¬ãžã¹ã¿ãããã¯ïŒGPRïŒãããã³å®è¡ãŠãããïŒEUïŒãå«ãŸããŸãããããã¯ãæµ®åå°æ°ç¹æ°ã®ç®è¡è«çããã€ã¹ïŒALU_FLOATïŒãæŽæ°ã®ALUïŒALU_INTEGERïŒãããã³ã¡ã¢ãªã¢ã¯ã»ã¹ãŠãããã§æ§æãããŸãããŒã¿ïŒDMSïŒã
ãã«ãã»ã«ã¢ã»ã³ãã©ã®ããã°ã©ã ã¯ã段èœã§æ§æãããŠããŸãã äŸïŒ
Paragraph: ; jmp paragraph_next ; complete
å®éãæ¬¡ã®æ®µèœã«ç§»åããã³ãã³ãã¯çŸåšã®æ®µèœã®ã©ãã«ã§ãé
眮ã§ããŸãããçŸæç¹ã§ã¯ããã«çŠç¹ãåãããŠããŸããã ãã®äŸã§ã¯ããã©ã°ã©ãã¯ã©ãã«ãParagraghãããã³ãã³ãã®ã»ã¯ã·ã§ã³ã®æåŸã®ã©ãã«ãcompleteããŸã§ã®ãã¹ãŠã®ã³ãã³ãã§ãã
段èœã§ã¯ãã³ãã³ããã©ã³ãã ã«äžŠã¹ãããšãã§ããããŒã ã¯ã@ãæŒç®åã䜿çšããŠä»¥åã®ã³ãã³ãã®çµæãåç
§ã§ããŸãããçŸåšã®ã³ãã³ãããã64æ¡é«ãã³ãã³ãã®çµæã¯åç
§ã§ããªãããšã«æ³šæããŠãã ããã ã€ãŸã åã³ãã³ãã®çµæã®å¯èŠæ§ãŠã£ã³ããŠã¯64ã§ãããæ®µèœã®ãµã€ãºã¯å¶éãããŠããŸããã å°ãªããšãæ°åã®ããŒã ã§æ§æã§ããŸãã äŸãèããŠã¿ãŸãããïŒ
Paragraph: getl 2 ; getl 3 ; addl @1, @2 ; 2 + 3 addl @1, @3 ; 5 +2 jmp paragraph2 complete
ãã®äŸã§ã¯ãaddl @ 1ã@ 2ã³ãã³ãã¯åã®2ã€ã®ã³ãã³ãã远å ããaddl @ 1ã@ 3ã³ãã³ãã¯åã®ã³ãã³ãã®çµæãšã³ãã³ãã®çµæã远å ããŸãã
ããæ®µèœããå¥ã®æ®µèœã«ç§»åãããšãããã»ããµã®ç¶æ
ãå€ãããŸãã ã¡ã¢ãªãžã®æžã蟌ã¿ãã¬ãžã¹ã¿ã®èªã¿åãã¯ãã¬ã³ãŒãã®èªã¿åãå¶åŸ¡ãæå¹ã«ãªã£ãŠããå ŽåããŸãã¯çŽæ¥èªã¿åãããã³æžã蟌ã¿ã³ãã³ãã䜿çšãããŠããªãå Žåã«ã段èœã®æåŸã«çºçããŸãã ããããèªã¿åãããã³æžã蟌ã¿å¶åŸ¡ãç¡å¹ã«ããå¯èœæ§ããããŸãã ã¡ã¢ãªãŒãžã®æžã蟌ã¿ã¯ããã®å®äºãåŸ
ããã«æ®µèœèªäœã§è¡ãããŸãïŒèªã¿åãããã³æžã蟌ã¿å¶åŸ¡ãç¡å¹ã«ã§ããå Žåã¯ãã¡ã¢ãªãŒãæäœãããšãã«ããã©ãŒãã³ã¹ãèããåäžããŸãïŒã å®éããã«ãã»ã«ã©ãŒããã»ããµãŒãæå€§éã«æŽ»çšããã®ã¯ç°¡åã§ãããããã¯å¥ã®èšäºã®ãããã¯ã§ãã
ç¶æ³äŸåããã°ã©ã ãå®è¡ããããã«ãåæ®µèœã®ã³ãã³ãã¯ãPMã»ã«ã«é
眮ãããåãã¢ãã¬ã¹ïŒãã®æ®µèœã®ã¢ãã¬ã¹ïŒããé çªã«å®è¡ãããŸãã æåã®å®è¡å¯èœãªæ®µèœã®å Žæã¢ãã¬ã¹ã¯ãã»ã«ãã³ãã³ããéžæããã¢ãã¬ã¹ãšåãã§ãã ãã®çµæã段èœã®ã¢ãã¬ã¹ããå§ãŸãiçªç®ã®ã»ã«ã®PMã«ãçªå·iãN + iã2 * N + iã...ã®ã³ãã³ããé çªã«é
眮ãããŸãã
åã»ã«ã¯ãæå®ãããã¢ãã¬ã¹ããå§ãŸããåœä»€ãé çªã«éžæããåŸç¶ã®ãã³ãŒãã®ããã«åœä»€ã¬ãžã¹ã¿ã«é
眮ããŸãã ã»ã«ã³ãã³ãã¯åæçã«éžæãããŸãã
Nåã®ã³ãã³ãã®æ¬¡ã®éžæãããåã°ã«ãŒãããã³ãŒããããšããæ¬¡ã®ã¿ã°å€ïŒtïŒãå²ãåœãŠãããã°ã«ãŒãããã®ã°ã«ãŒãã®çªå·ãšããã«å¿ããçµæãå²ãåœãŠãããŸãã åœä»€ã®éžæãšãã³ãŒãã¯ãå¶åŸ¡èšå·ã段èœã®çµãããïŒå®äºïŒã§ããŒã¯ãããã³ãã³ããéžæããããŸã§ç¶ããŸãã æ°ããæ®µèœã®ã¢ãã¬ã¹ã¯ãçŸåšã®æ®µèœã®ã³ãã³ãã®éžæäžããŸãã¯ã³ãã³ãã®éžæå®äºåŸã«ãã€ã§ãåä¿¡ã§ããŸãã ãã¹ãŠã®ã»ã«ã«åæã«å
¥ããŸãã æåŸã®æ®µèœã³ãã³ãã®éžææã«æ¬¡ã®æ®µèœã®ã¢ãã¬ã¹ãèšç®ãããªãå Žåãéžæã¯ã¢ãã¬ã¹ãåä¿¡ããããŸã§äžæãããŸãã ã¢ãã¬ã¹ãåä¿¡ããããšããã®ã¢ãã¬ã¹ããéžæãç¶è¡ãããŸãã éžæãããã³ãã³ãã¯ã第1ãªãã©ã³ãã®ãããã¡ãŒã第2ãªãã©ã³ãã®ãããã¡ãŒãããã³ã³ãã³ãïŒæäœã³ãŒããã¿ã°ãªã©ïŒã®ãããã¡ãŒã§æ§æããããããã¡ãŒããã€ã¹ã«å°éããŸãããããã¡ãŒããã€ã¹ã¯ã³ãã³ããçæãã察å¿ããå®è¡ããã€ã¹ã«éä¿¡ããŸãã
æäœéšïŒåœä»€ãããã¡ãŒïŒã¯ãåœä»€ã³ãŒãã«å ããŠãçµæãéåä¿¡ããããã«å¿
èŠãªãã¹ãŠã®ãµãŒãã¹æ
å ±ãã€ãŸãåœä»€çªå·ãšãåœä»€ãå®è¡ããããã®ç¬¬1ïŒç¬¬2ïŒãªãã©ã³ãã®æºåã®å
åãå«ã¿ãŸãã
ãªãã©ã³ãã¹ãã¬ãŒãžãããã¡ã¯é£æ³çã«ã¢ãã¬ã¹æå®ãããŸãã 飿³
ã¢ãã¬ã¹ã¯ãèŠæ±ãããçµæã®ã¿ã°ã§ãã æäœäžã®ãªãã©ã³ããšããŠã以äžã䜿çšã§ããŸãã
- ã¹ã€ããããéä¿¡ããããœãŒã¹ã³ãã³ãããèŠæ±ãããçµæã
- å¶åŸ¡ã¯ãŒãã®ãã³ãŒãæã«èšç®ãããå€ãã³ãã³ãã¯ãŒãã«çŽæ¥ååšããå€ããŸãã¯æ±çšã¬ãžã¹ã¿ããååŸãããå€ã
æåã®ã±ãŒã¹ã§ã¯ãã³ãã³ããæžã蟌ãéã®ãã®ãªãã©ã³ãã®æºåãã©ã°ã¯ãæºåå®äºãç¶æ
ã«èšå®ããã2çªç®ã®ã±ãŒã¹ã§ã¯ãæºåå®äºãç¶æ
ã«èšå®ãããŸãã ã¹ã€ããã³ã°ããã€ã¹ããèŠæ±ãããçµæãåä¿¡ããåŸãæåã®ã±ãŒã¹ã§ã¯ããµã€ã³ããæºåå®äºãã«èšå®ãããŸãã ãã¹ãŠã®ãªãã©ã³ããåãåã£ãã³ãã³ãã¯ããããã¡ããã€ã¹å
ã®ä»ã®æ¢è£œã®ã³ãã³ãã®äžããåªå
é äœãéžæããããã®åŸãå®è¡ããã€ã¹ã䜿çšãããŠããªãå Žåãå®è¡ã®ããã«çºè¡ãããŸãã
ããã»ããµP1ã§ã¯ãåå¥ã®ã¡ã¢ãªé åãåã»ã«ã«å²ãåœãŠãããŸããã ããã°ã©ã ã¡ã¢ãªãšããŒã¿ã¡ã¢ãªã¯éè€ããŸããã§ããã ããã»ããµR1ã§ã¯ãããã°ã©ã ã¡ã¢ãªãšããŒã¿ã¡ã¢ãªã¯åãã¢ãã¬ã¹ç©ºéã«ãããŸãã ã»ã«ã«ã¯ãããã°ã©ã ã¡ã¢ãªãšããŒã¿ã¡ã¢ãªãžã®ã¢ã¯ã»ã¹ãã£ãã«ããããŸãã å³4ã¯ãããã»ããµP1ã®äžè¬çãªæ§é ã瀺ããŠããŸãã å³5ã¯ãããã»ããµãŒR1ã®ã»ã«æ§é ãšãã®èª¬æã瀺ããŠããŸãã
å³4.ãã«ãã»ã«ã©ãŒããã»ããµã®äžè¬çãªæ§é
ç®è¡è«çããã€ã¹ïŒALUïŒã¯ãDMSãŠããããšãšãã«ãåã»ã«ïŒCELLïŒã§äœ¿çšå¯èœãªã¢ã¯ãã¥ãšãŒã¿ãŒã®ã»ããã®äžéšã§ãã
ã»ã«ã®æ§æã«ã¯ã次ã®ããã€ã¹ãå«ãŸããŸãã
1.ããã€ã¹éžæã³ãã³ãIDUïŒåœä»€é
åžãŠãããïŒã
2.å¶åŸ¡ããã€ã¹ã
3.ã¹ã€ããã³ã°ããã€ã¹SUïŒã¹ã€ãããŠãããïŒã
4.ãããã¡ããã€ã¹ã
5.æŽæ°ALUã
6. ALUæµ®åå°æ°ç¹ã
7.ããŒã¿ã¡ã¢ãªDMSïŒããŒã¿ã¡ã¢ãªãµãŒãã¹ïŒãžã®ã¢ã¯ã»ã¹ããããã¯ããŸãã
8.çµæã®ãã«ããã¬ã¯ãµã
9.ã¬ãžã¹ã¿ã»ããGPRïŒæ±çšã¬ãžã¹ã¿ïŒã
10.å²ã蟌ã¿ã³ã³ãããŒã©ãŒICïŒå²ã蟌ã¿ã³ã³ãããŒã©ãŒïŒã
11.ãããã¯JTAG-GPRã®ãããã°ã
詳现ãªã»ã«æ§é ãå³5ã«ç€ºããŸãã
å³5.ã»ã«æ§é ã
ã¢ã¯ãã¥ãšãŒã¿ã®å®è¡çµæã¯ãã¹ã€ããã³ã°ããã€ã¹ã«éä¿¡ãããŸãã
æŽæ°ALUãæµ®åå°æ°ç¹ãæã€ALUãããã³DMSã³ãã³ãã®å®è¡çµæãåæã«æºåã§ããŠããå Žåãã¹ã€ããã³ã°ããã€ã¹ã¯ALUæµ®åå°æ°ç¹ã³ãã³ãã®å®è¡çµæãåãåããŸãã ã¢ã¯ãã¥ãšãŒã¿ã¯ãçµæãèªã¿åãåªå
床ã«åŸã£ãŠæ¬¡ã®ããã«é
åžãããŸãã
1.æµ®åå°æ°ç¹ã䜿çšããALU;
2.DMS;
3.æŽæ°ALUã
çŸåšã®ãµã€ã¯ã«ã§ã¯ã¹ã€ããã³ã°ããã€ã¹ã«çµæãçºè¡ã§ããªããšã°ãŒã¯ãã£ãããã€ã¹ã¯ãã³ãã³ãã®çµæãåºåã¬ãžã¹ã¿ã«æžã蟌ã¿ãçµæãçºè¡ãããã®ãåŸ
ã¡ãŸãã
äžèšã®ç¶æ³ã¯ãã³ãã³ããå®è¡ããããã«å¿
èŠãªå¯Ÿçã®æ°ãéæ±ºå®çãªéã§ãããšããçµæã«ãªããŸãã
åã»ã«ã«ã¯ãæŽæ°ALUãšæµ®åå°æ°ç¹æ°çšã®ALUã®2ã€ã®ALUããããŸãã
æŽæ°ALUã¯ãæŽæ°ãªãã©ã³ãã§ã³ãã³ããå®è¡ããããã«èšèšãããŠããŸããããªãã©ã³ãã¯æ¬¡ã®åœ¢åŒã§è¡šç€ºã§ããŸãïŒã³ãã³ãã«å¿ããŠïŒã
- 64ããã
- 32ããã
- 16ããã
- 8ããã
- ããã¯ããã32ãããã
- ããã¯ã16ãããã
æµ®åå°æ°ç¹ã䜿çšããALUã¯ãIEEE-754èŠæ Œã®èŠä»¶ã«åŸã£ãŠãå粟床ïŒ32ãããïŒãŸãã¯å粟床ïŒ64ãããïŒã®æµ®åå°æ°ç¹æ°ã®åœ¢åŒã§è¡šç€ºããããªãã©ã³ãã§ã³ãã³ããå®è¡ããããšãç®çãšããŠããŸãã
æ§é çã«ãæµ®åå°æ°ç¹ALUã¯3ã€ã®éšåã§æ§æãããŸãã
- å粟床é€ç®åšïŒé€ç®ãå¹³æ¹æ ¹æœåºïŒ
- å粟床ååšåš
- é»åïŒä»ã®ã³ãã³ãã®å®è¡ïŒ
ãã«ãã»ã«ã©ãŒããã»ããµãšãã«ãã³ã¢ããã»ããµã®éãã¯äœã§ããïŒ1ã€ãŸãã¯è€æ°ã®ã³ã¢ã§æ§æãããåŸæ¥ã®ããã»ããµã§ã¯ãå®è¡ã®åºæ¬åäœã¯ç¹å®ã®é åºã§å®è¡ãããã³ãã³ãã§ãã ãã«ãã»ã«ã©ãŒããã»ããµã§ã¯ãå®è¡ã®åºæ¬åäœã¯æ®µèœã§ãã ç¡å¶éã®æ°ã®ããŒã ã§æ§æãããç·åœ¢ã»ã¯ã·ã§ã³ããã®åŸãæå®ãããã©ãã«ãæã€å¥ã®ç·åœ¢ã»ã¯ã·ã§ã³ã«ç§»è¡ããŸãã ãã®ã»ã¯ã·ã§ã³ã®ã³ãã³ãã¯ãå¯èœãªå Žåã¯äžŠè¡ããŠå®è¡ãããŸãã 䞊ååã¯ããŒããŠã§ã¢ã§è¡ãããŸãã ããã°ã©ãã¯ãããŒã ãã©ã®ã»ã«ã«å
¥ãããå¿é
ããå¿
èŠã¯ãããŸããã ããããèªç¶ãªäžŠååŠçãã§ãã ãã®çµæãåãã³ãŒããä»»æã®æ°ã®ã»ã«ã§å®è¡ã§ããŸãã ãã«ãã»ã«ã©ãŒããã»ããµã®ãã1ã€ã®éãã¯ããããŒããã£ã¹ãã䜿çšããã³ãã³ãåŠçã®çµæã®éä¿¡ã§ããå€ãã®ã·ã³ã°ã«ã³ã¢ã·ã¹ãã ã§ã¯ãçµæã¯ã¡ã¢ãªãšã¬ãžã¹ã¿ãä»ããŠéä¿¡ãããŸãã ãã¡ããããã«ãã»ã«ã©ãŒããã»ããµã«ã¯ãç·åœ¢ã»ã¯ã·ã§ã³éã§ããŒã¿ã転éããããã®ã¡ã¢ãªãšã¬ãžã¹ã¿ããããŸãããç·åœ¢ã»ã¯ã·ã§ã³å
ã§ã¯ãã¬ãžã¹ã¿ãšã¡ã¢ãªã䜿çšããã«åºæ¬çãªæäœãå®è¡ã§ããŸãã ãã®äºå®ã«ãããæ¶è²»é»åã®åæžã®çµæãšããŠããã«ãã»ã«ã¢ãŒããã¯ãã£ã®å®è£
ãç°¡åã«ãªããã¡ã¢ãªã¢ã¯ã»ã¹ãåæžãããŸãã ããã«ã1ã€ã2ã€ã...ã256åã®ã»ã«ã§åãããã°ã©ã ãå®è¡ãããšãã»ã«ãåæ§æïŒã¿ã¹ã¯ã°ã«ãŒãã«çµåïŒããŠããã©ãŒã«ããã¬ã©ã³ãããã»ããµãšã¹ã±ãŒã©ããªãã£ãäœæã§ããŸãã
ãã®èšäºã®åŸåã§ã䞊ååŠçãšåæ§æã®åé¡ã«æ»ããŸãã
4.äŸãã«ãã»ã«ã©ãŒããã»ããµã¯4ã€ã®ã»ã«ïŒãããã256以äžïŒã§æ§æãããã»ã«ã¯å®å
šã«çãããã¹ã€ããã³ã°ç°å¢ïŒã¹ã€ããïŒã«ãã£ãŠçµåãããŸãã ã»ã«ã®ã³ãã³ããå®è¡ããçµæã¯ã¹ã€ããã«ä¿åãããŸãã
ã¢ã»ã³ãã©ããã°ã©ã ã¯ãã³ãã³ããå«ãã»ã¯ã·ã§ã³ã𿮵èœã«åå²ãããŸãã
ã»ã«éã®æ
å ±äº€æã«ã¯ã¹ã€ããã䜿çšãããæ®µèœéã®äº€æã«ã¯RONãã€ã³ããã¯ã¹ã¬ãžã¹ã¿ãããŒã¿ã¡ã¢ãªããããŸãã åšèŸºæ©åšãæäœããããã®åšèŸºæ©åšã¬ãžã¹ã¿ããããŸãã
次ã®åœ¢åŒã®ã¹ããŒãã¡ã³ããé€å€ããã«ã¯ïŒ
- ããšããããèšæ¶ã®ãããŒãžãã§ãããšããŠãã誰ããã¹ãŠã®èšæ¶ããæçžŠãããã®ã§ããããïŒ ã»ã«ã®äžäœïŒäžéšïŒå¶åŸ¡ãŠãããã¯ã©ãã«ãããŸããïŒ èª°ãã»ã«ã¡ã¢ãªãããŒãããŠããŸããïŒ
- ããã»ããµãŒã§ã¯ãªãããã°ã©ããŒã䞊å
ç°¡åãªããã°ã©ã ãèããŠã¿ãŸãããã
å³2.ã»ã«ã«ããããŒã ã®ååž
å³2ã«ç€ºãããã«ã段èœã®ããŒã ã¯ã»ã«éã§åæ£ãããŸãã åã»ã«ã®ã³ãã³ãã¯äžŠåã«å®è¡ãããŸãïŒãèªç¶ãªäžŠååŠçãïŒã ã³ãã³ãã®å®è¡ã¯ãåŒæ°ã®æºåãã§ãããšãã«çºçããŸãã ãã®å Žåãããã°ã©ã ã¯4ã€ã®ã»ã«ã®ã°ã«ãŒãã«ãã£ãŠå®è¡ãããŸãã ããã°ã©ã ã¯ã4ã®äž¡æ¹ã§æ£åžžã«å®è¡ããããããä»ã®ä»»æã®æ°ã®ã»ã«ã§ãå®è¡ãããŸãã å€çްèã¢ãŒããã¯ãã£ã®åºæ¬ååã¯ã现èã¯äºãã«ç¬ç«ããŠããã誰ãããç¬ç«ããŠãããåãã§ãããšããããšã§ãã ãã®ååã¯ãåæ§æã®ããããã»ããµãŒã«é©çšãããŸãã
åæ§æ -ããã»ããµã»ã«ãã°ã«ãŒãã«æ§æïŒåéïŒããã³åè§£ïŒåæïŒããèœåãããªãã¡ ã»ã«ã1ã€ã®ã»ã«ããNïŒNã»ã«ããã»ããµã®å ŽåïŒãŸã§ã°ã«ãŒãã«ãŸãšããããç¬èªã®ã³ãŒãã»ã¯ã·ã§ã³ãå®è¡ããèœåã ããã©ã«ãã§ã¯ãããã°ã©ã ãéå§ãããšããã¹ãŠã®ã»ã«ã1ã€ã®ã°ã«ãŒãã«å±ããŸãã åã°ã«ãŒãã«ã¯ç¬èªã®RONãã€ã³ããã¯ã¹ãå¶åŸ¡ã¬ãžã¹ã¿ã®ã»ããããããããç¬èªã®å²ã蟌ã¿ãã³ãã©ãå²ãåœãŠãããšãã§ããŸãã
ãã©ã³ãã€ãã³ã¢ãŒããã¯ãã£ã«é¢ããèšäºã§ã Leonid Chernyakã¯ã次ã®3çš®é¡ã®åæ§æå¯èœãªããã»ããµãç¹å®ããŠããŸãã
1ïŒå°çšããã»ããµãŒ
2ïŒæ§æå¯èœãªããã»ããµãŒ
3ïŒåçã«åæ§æå¯èœãªããã»ããµïŒäŸãšããŠãLãChernyak-FPGAã«ããèšäºã®å
¬éæã«ååšãããã®çš®ã®å¯äžã®ã¯ã©ã¹ïŒãæäŸãããŸãã
æåã®2ã€ã®ã¿ã€ãã¯è£œé ããã»ã¹ã§ç¹ç°æ§ãç²åŸãã3çªç®ã®ã¿ã€ãã¯ããã°ã©ã å¯èœã§ãã
ãã®åé¡ã«ãããšããã«ãã»ã«ã©ãŒããã»ããµR1ã¯åçã«åæ§æã§ããŸããããããäžã®ããã»ããµã§ããããã·ã³ã³ãŒãã®ç¬ç«æ§ã«ãããFPGAãšã¯ç°ãªãããªãœãŒã¹ïŒã»ã«ïŒã®ååé
ã¯ãããã»ããµã忢ãŸãã¯åèµ·åããã«ãæ
å ±ã倱ãããšãªãè¡ãããŸãã ãããã£ãŠãMultiClet R1ã¯ã3çªç®ã®çš®é¡ã®æ°ããã¯ã©ã¹ã§ãïŒæåã®ã¯ã©ã¹-FPGAïŒã
ãããŸã§ãäžçã§ãã®ãããªããã»ããµãŒã補é ãã人ã¯ããŸããã§ããã
L. Chernyakã«ãã£ãŠææ¡ãããåé¡ã¯ãå°æ¥ã®éçºã«åãããŠèª¿æŽããã4çªç®ã®ã¿ã€ãã«ãã£ãŠéçºã§ããŸãã
4ïŒ
èªå·±é©å¿ããã»ããµãŒ ã
ãã¹ãŠã®ã·ã¹ãã ã®åäœãç¬ç«ããŠä¿èšŒãããªãœãŒã¹ãèªåçã«åé
åã§ããŸãã æå·ãé害ããŸãã¯è¿œå ã®ã¿ã¹ã¯ãçºçããå Žåãããã»ããµãŸãã¯ããã»ããµã®ã·ã¹ãã ã¯æ°ããæ¡ä»¶ã«é©å¿ã§ããå¿
èŠããããŸãã
ãã®ãããªã·ã¹ãã ãäœæããæåã®ã¹ãããã¯ããããããMulticlet L1ããã»ããµãŸãã¯ããã«åºã¥ãCMSã§ãã
ã»ã«ã®åè§£ïŒã°ã«ãŒããžã®åå²ïŒã®äŸãèããŠã¿ãŸãããïŒ
ãã®äŸã§ã¯ã0ãš1ã®çªå·ãæã€ã»ã«ãèšç®ãå®è¡ããã»ã«2ãã»ã³ãµãŒããæ
å ±ãåéããã»ã«3ãäœæ¥ã¬ããŒããã³ã³ãã€ã«ããŠå€éšç°å¢ãšå¯Ÿè©±ãã3ã€ã®ã°ã«ãŒãã«ããŒãã£ã·ã§ã³ãåå²ããŠããŸãã ã»ã«0ãš1ãããŒã¿ãåŠçããæéããªãããšãçºçããå Žåãã»ã«3ãå©ãã«ãªãã2ã€ã®ã°ã«ãŒããååŸã§ããŸãã ã»ã«ã®åæ§æã«ã¯ããã»ããµã®ãªã»ããã¯äžèŠã§ããããšã«æ³šæããããšãéèŠã§ãã ã»ã«3ã¯ãã»ã«0ãšã»ã«1ã§åãèšèªã話ããŸãã RONã®ã»ãããã€ã³ããã¯ã¹ã¬ãžã¹ã¿ãããã³å¶åŸ¡ã¬ãžã¹ã¿ã¯ããããååŸããŸãã
ã¢ã»ã³ãã©ãŒã®éåžžã®ããã°ã©ã ã®ç°¡åãªäŸïŒæšæºCã§èšè¿°ã§ããŸãïŒïŒ
.text habr: getl 4 ; getl 5 ; addl @1, @2 ; 4 + 5 = 9 mull @3, @2 ; 4 * 5 = 20 subl @1, @2 ; 20 â 9 = 11 slrl @1, 2 ; 11 << 2 = 44 subl @1, @2 ; 44 â 11 = 33 mull @4, @5 ; 20 * 9 = 180 jmp habrahabr ; complete habrahabr: getl 5 ; addl @1, [10] ; 10 setl #32, @1 ; 32 complete
段èœã¯ãããtextããšããã©ãã«ã®ä»ããã»ã¯ã·ã§ã³ã«ãããŸãã æ®µèœã«ã¯ç¡å¶éã®æ°ã®ã³ãã³ããå«ããããšãã§ããŸãïŒããã°ã©ã ã¡ã¢ãªã§èš±å¯ãããŠããéãïŒããåã³ãã³ãã¯ã63è¡ä»¥å
ã®çµæã®ã³ãã³ãã«ãã倿ã§ããŸããã
䟿å®äžãã¢ã»ã³ãã©ãŒã§ã¯ãåã³ãã³ãã«ã©ãã«ãèšå®ã§ããŸããæ¬¡ã«äŸã瀺ããŸãã
habr: arg1 := getl 5 ; sum1 := addl @arg1, [10] ; 10 setl #32, @sum1 ; 32 complete
ãã«ãã»ã«ã©ãŒããã»ããµã«ã¯ãéžæããæäœïŒããŒã ïŒãšæ©èœããã€ã¹éã§ã®ãããã®åæ£ãšã®éã®æ
å ±ãªã³ã¯ãèå¥ããããšãã§ããããŒããŠã§ã¢ã¯ãããŸããã åçãªäžŠååã¯ãããŸããã éçãªäžŠååã¯ãããŸããã ããã°ã©ã ã¯æ
å ±ã®æ¥ç¶ãèšè¿°ããŸãããç·åœ¢åœ¢åŒã§ãããäœãã©ã®ããã«äžŠåã«å®è¡ã§ãããã®æç€ºã¯å«ãŸããŠããŸããã ããã¯ãä»ã®ããã»ããµãšã®æ ¹æ¬çãªéãã§ãã åãæ©èœã«ããããã«ãã»ã«ã©ãŒããã»ããµã¯æœåšçã«åç¶å¯èœã§ãã åã
ã®ã»ã«ã«é害ãçºçããå ŽåïŒããã»ããµã®å£åïŒãåã³ã³ãã€ã«ãŸãã¯åèµ·åããã«ããã°ã©ã ãç¶ç¶çã«å®è¡ã§ããå¯èœæ§ã
ãªãœãŒã¹ãåçã«åæ£ãããã«ãã»ã«ã©ãŒããã»ããµã®ç¹æ§ã«ãããäžéšã®ã»ã«ã«é害ãçºçããå Žåã§ãã¿ã¹ã¯ãå®è¡ã§ããã·ã¹ãã ãäœæã§ããŸãã
å£åã¯çç£æ§ã®äœäžã«ã€ãªããããã®çµæãåé¡ã解決ããããã®æéãé·ããªããŸãã ããããå€ãã®çµã¿èŸŒã¿ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã«ãã»ã«ã©ãŒããã»ããµã®æŽ»åã«ããã管ç察象ãªããžã§ã¯ãã¯ãå質ãäœäžãããããäºæ¬¡åé¡ã®è§£æ±ºãæåŠããããšã«ãããåºæ¬æ©èœãå®è¡ã§ããŸãã
ã·ã¹ãã ã¬ãã«-ã»ã«éïŒäžŠåæ§ãå®è£
ããå ŽåïŒããã³çްèå
ã¬ãã«-ã»ã«ãããã¯éïŒã³ãã³ããå®è£
ããå ŽåïŒã®äž¡æ¹ã§ããã«ãã»ã«ã©ãŒããã»ããµã®éåæããã³åæ£åãããçµç¹ã¯ãããã«ä»¥äžãæäŸããŸãã
- èšèšãªããžã§ã¯ãã®åœåæ³ã®æå°åãšãã®åæž
é£æåºŠ - ããã»ããµãããã®é¢ç©ã®æžå°ïŒ
åæ£ç®¡çã¯éäžç®¡çãããå°ãªãïŒ; - çç£æ§ã®åäžãšãšãã«ã®ãŒæ¶è²»ã®åæž
ããå¹ççãªã³ã³ãã¥ãŒãã£ã³ã°ããã»ã¹ã®å®è£
ã - åã»ã«ã«åå¥ã®åæã·ã¹ãã ã䜿çšãã
æ°ååãšæ°çŸåã®ã»ã«ã®åçµæ¶ã«å®è£
ããå Žåã
ãã®çµæãããã»ããµã®è€éããåçã«åæžããããã«å¿ããŠã³ã¹ããåæžããèšèšåè³ªãæ¹åã§ãããé©åã«æ§é åãããã¢ãžã¥ãŒã«åŒã·ã¹ãã ãååŸããŸãã ããã«ããã©ã³ãã€ãã³ã¢ãã«ãšæ¯èŒããŠãããã»ããµã®å®éçç¹æ§ãåäžããŠããŸãã
çŸæç¹ã§ã¯ãPOCNTãæå·åã¢ã«ãŽãªãºã ãªã©ã®åçŽãªã¢ã«ãŽãªãºã ã®ãã¹ãã宿œãããŠããŸãã ã¢ã»ã³ãã©ãŒçšã®ããã°ã©ã ã¯popcntãã¹ãçšã«äœæããããã®ã§ãçµæãCã®Pentium Dual Core 5700çšã®åçŽãªããã°ã©ã ãšæ¯èŒããŸããã
ãã¹ãçµæã¯ã次ã®è¡šã«èŠçŽã§ããŸãïŒ32ãããèšç®ãµã€ã¯ã«ãããã®ã¯ããã¯ãµã€ã¯ã«æ°ïŒã

ã€ãŸã ããŒãã«ãã¹ãã®Multiclet R1ããã»ããµã¯Intelããã»ããµãã15ïŒ
é«éã§ãããBitHacksãã¹ãã§ã¯Multiclet R1ããã»ããµã¯Intelã®2å以äžé«éã§ãããšçµè«ä»ããããšãã§ããŸãã ãã«ãã»ã«ã©ãŒããã»ããµã®popcntãã¹ãã¯ãåçŽã«äžŠåã³ã³ãã¥ãŒãã£ã³ã°ã«å€æãããŸããã ãã¡ãããæ°ããIntelããã»ããµã«ã¯popcntã®ããŒããŠã§ã¢å®è£
ããããŸããããã®ãã¹ãã§ã¯ããã»ããµã®æ©èœã瀺ããŸããã
5.ä»äœãæã£ãŠããŸããçŸæç¹ã§ã¯ãMulticlet P1ããã»ããµããªãªãŒã¹ãããŠããã2ã€ã®ãããã°ããŒããšåæ§ã«æ³šæå¯èœã§ãã
ããã«ãMulticlet Key_P1æ
å ±ä¿è·ããã€ã¹ã¯æåã®ãã«ãã»ã«ã©ãŒããã»ããµã§éçºãããæåã®çç£ãããã¯2014幎9æã«äºå®ãããŠããŸãã
ããã«ãP1ããã»ããµãŒã«åºã¥ããŠãWirschke LLCã®ç®æŒãçšããªã³ã¿ãŒãéçºãããæšæºãšããŠæäŸãããŸããã
ãŠãŒã¶ãŒã¯ç©æ¥µçã«ãã«ãã»ã«ã©ãŒããã»ããµããã¹ã¿ãŒããã©ã€ãã©ãªãè£å®ããæ°ããæçšãªãµã³ãã«ãäœæããŠããŸããR1ããã»ããµã®æåã®ããããåä¿¡ãããæ°ããããã»ããµã®ãã¹ããéå§ãããŸãããããã»ããµã®æåã®ãªããžã§ã³ã¯R1-1ãšåŒã°ããŸããç¹°ãè¿ããŸãããæ°ããããã»ããµã¯å¥ã®èšäºã®ãããã¯ã§ãããæåã®ãªããžã§ã³ã®ããã»ããµã®ç¹æ§ãå°ãåŸã§å
¬éããŸãããã®ããã»ããµçšã«ãLDM-Systemsã¯ããŒã¹ãšããã»ããµã§æ§æããããããã°ããŒãããªãªãŒã¹ããŸããããããã¯ä»ãã®åçããŒãžã§ã³ãã«ã¹ã¿ã ããŒãžã§ã³ã¯è¥å¹²ç°ãªããŸããããŒã¹ããŒãã®ããã±ãŒãžãã³ãã«ã¯ã¿ã¹ã¯ã«åãããŠéžæã§ããŸãããæå€§æ§æã§ã¯ãããŒã¹+ããã»ããµããŒãã®ã³ã¹ãã¯èš±å®¹ç¯å²å
ã§ãããœãããŠã§ã¢ã»ãã³ãã«ãå«ãŸããŠããŸãïŒâ¢ã¢ã»ã³ãã©â¢Cã³ã³ãã€ã©â¢æ©èœã¢ãã«â¢ã©ã€ãã©ãªâ¢IDE Geanyã®ããã®ãããã¬â¢OS FreeRTOSâ¢ããã°ã©ã äŸâ¢ãããã¿ããªãããã®èšäºãæ°ã«å
¥ã£ãå Žåã¯PSãã倧é³éã«ãããããããç§ã¯ç¶ç·šããã°ã©ãã³ã°ããã»ããµãæžãããšãã§ããã¬ãã¥ãŒã®CPU R1ãšãã«ãã»ã«ã©ãŒããã»ããµã§é«æ§èœã·ã¹ãã ãæ§ç¯ããååãUPDïŒ popcntã¢ã«ãŽãªãºã ã®å®è¡æéããã§ãã¯ããããã°ã©ã ã¯ããµã€ãwww.strchr.com/crc32_popcntããååŸãããŸãããæ¢ã«èšäºã§è¿°ã¹ãããã«ãããŒããŠã§ã¢ã¬ãã«ã§å®è£
ãããç¹å®ã®åœä»€ãå¿
èŠãšããIntelããã»ããµã®popcntãã¹ããå®è£
ããããã®ä»ã®é«éã¢ã«ãŽãªãºã ããããŸãããã«ãã»ã«ã©ãŒã¢ãŒããã¯ãã£ã®æ©èœãè©äŸ¡ããããã«ãTable and Bit hacksã¢ã«ãŽãªãºã ãæ¡çšãããŸãããUPD2ïŒå³2ãæŽæ°ãadd @ 3ã@ 2ã³ãã³ãã¯2è¡ã«ãŸãããå¿
èŠããããmpy @ 4ã@ 3ã³ãã³ãã¯æéãççž®ãããŸãããããã«å¯Ÿããè°è«ã¯ä»¥åã«æºåãã§ããŠããã®ã§ã段èœã®å
šäœã®é·ããçããªããŸãããmpyã³ãã³ããmulã«çœ®ãæããããŸãããUPD3ïŒåã»ã«ã«ã¯ã64ããŒã çšã®ãããã¡ãŒãå«ãŸããŠããŸããã»ã«ã«ããæ®µèœåœä»€ã®éžæã¯å®è¡ãšäžŠè¡ããŠç¶ç¶ãããæ¬¡ã®æ®µèœã®éžæã¯ããã®é·ç§»ã®ã¢ãã¬ã¹ãããã£ãŠããå Žåã«ã®ã¿éå§ã§ããŸãã