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ããŒã çšã®ãããã¡ãŒãå«ãŸããŠããŸããã»ã«ã«ãã段èœåœä»€ã®éžæã¯å®è¡ãšäžŠè¡ããŠç¶ç¶ããã次ã®æ®µèœã®éžæã¯ããã®é·ç§»ã®ã¢ãã¬ã¹ãããã£ãŠããå Žåã«ã®ã¿éå§ã§ããŸãã