ãã®èšäºã§ã¯ã LLCãšã¹ã¿ãã¯ããã·ã³ã®ããã³ããšã³ããåããã¹ãŒããŒã¹ã«ã©ãŒããã»ããµã®ïŒãœãããŠã§ã¢ïŒã¢ãã«ãéçºããŸãã
å®éã 1ãš2ãç¶ããŸããã
ã¯ããã«
ãªãã¹ã¿ãã¯ãã·ã³ãªã®ãïŒ
Philip Kupman ã¯æ¬¡ã®ããã«æžããŠããŸã ããçè«çã«ã¯ãã¹ã¿ãã¯ã¯ããèªäœãéèŠã§ããããã¯ãé©åã«æ§é åãããã³ãŒããå®è¡ããããã®äž»èŠãã€æãèªç¶ãªã¡ã«ããºã ã§ããããã§ã... ããã«ããããã¯éåžžã«ã·ã³ãã«ã§ãããããªãæ§ãããªããŒããŠã§ã¢èŠä»¶ã§åªããããã©ãŒãã³ã¹ã瀺ããŸãã
ã¹ã¿ãã¯ãã·ã³ã®å©ç¹ã«ã¯ãã³ãŒãã®ã³ã³ãã¯ãããã³ãŒãã®ã³ã³ãã€ã«ãšè§£éã®å®¹æããããã³ããã»ããµç¶æ ã®ã³ã³ãã¯ãããå«ãŸããŸãã
ã¹ã¿ãã¯ã¢ãŒããã¯ãã£ãåããã³ã³ãã¥ãŒã¿ãŒã®æåäŸã¯ã Burroughs B5000 ïŒ1961 ... 1986ïŒããã³HP3000 ïŒ1974 ... 2006ïŒãšåŒã°ããŸãã ãœããšããšã«ãã«ã¹ã«ã€ããŠå¿ããªãã§ãã ããã
ããã§ã¯ããªãã¬ãžã¹ã¿ããã»ããµã«ãã£ãŠã¹ã¿ãã¯ãã·ã³ãé²æ©ã®äœå°ãŸã§æ··ã¿åã£ãŠããã®ã§ããããïŒ ãã®çç±ã¯ã次ã®ãšããã ãšæããŸãã
- ã¹ã¿ãã¯ããã»ããµã«ã¯ãåºå®ããŒããŠã§ã¢ã¹ã¿ãã¯ãšã¡ã¢ãªå ã«ããã¹ã¿ãã¯ã®2ã€ã®ã極端ãªãå®è£ ããããŸãã ãããã®äž¡æ¥µç«¯ã«ã¯é倧ãªæ¬ é¥ããããŸãïŒåºå®ãµã€ãºã¹ã¿ãã¯ã®å Žåãã³ã³ãã€ã©ãŒããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«åé¡ããããã¹ã¿ãã¯ããªãŒããŒãããŒãŸãã¯ç©ºã«ãªã£ãå Žåã«äœãèµ·ããããããã³å¯Ÿå¿ããå²ã蟌ã¿ãåŠçããæ¹æ³ã«ã€ããŠèãã矩åããããŸãã å²ã蟌ã¿åŠçããªãå Žåãæåã§ããã°ã©ã å¯èœã«ãªãéåœã«ãããã€ã¯ãã³ã³ãããŒã©ãŒãæ±ã£ãŠããŸãã ãã®ãããªå²ã蟌ã¿ã®ãã³ãã©ãŒãããå ŽåãããŒããŠã§ã¢ã¹ã¿ãã¯ã¯ã¡ã¢ãªãžã®ããŠã£ã³ããŠãã®åœ¹å²ãè¿ éã«ã¢ã¯ã»ã¹ããŠæããããã®ããŠã£ã³ããŠãã®ç§»åã¯ããªãé«äŸ¡ãªæé ã§ãã ãã®çµæãã¯ããã³ã®èŠ³ç¹ãããããšãããã¯ãã®ãããªããã»ããµã®çæ åŠçãªãããã«ãããŸãããããªã¢ã«ã¿ã€ã ã·ã¹ãã ãªã©ã§ããã®ãããªããã»ããµã®äœ¿çšãèš±å¯ããªãäºæž¬ã§ããªãããã°ã©ã ã®åäœããããŸãã
- å®å šã«ã¡ã¢ãªå ã«ããã¹ã¿ãã¯ã®å Žåãã»ãŒãã¹ãŠã®å®è¡å¯èœãªåœä»€ã«å¯ŸããŠã¡ã¢ãªã«ã¢ã¯ã»ã¹ããããšã§æ¯æããè¡ããŸãã ãããã£ãŠãå šäœçãªã·ã¹ãã ããã©ãŒãã³ã¹ã¯ãã¡ã¢ãªåž¯åå¹ ã«ãã£ãŠäžããå¶éãããŸãã
- ããã»ããµã®è€éãã¯ãé·ãééçºã劚ãããã®ã§ã¯ãªããªããŸããã
- ããŒããŠã§ã¢ã§å®è£ ãããã¹ã¿ãã¯ã¯ãã€ãã³ãã®å³å¯ãªã·ãŒã±ã³ã¹ãæå³ãããã®çµæãããã°ã©ã ã®æé»çãªäžŠååŠçã䜿çšã§ããªãããšãæå³ããŸãã ã¹ãŒããŒã¹ã«ã©ãŒããã»ããµèªäœãå©çšå¯èœãªãªãœãŒã¹ã«å¿ããŠãã€ãã©ã€ã³ã§åœä»€ãé åžããVLIWããã»ããµããã®äœæ¥ãã³ã³ãã€ã©ã«ãã£ãŠè¡ãããããšãæåŸ ããŠããå Žåãã³ãŒãå ã®é ãã䞊åæ§ãèŠã€ããããšããã¹ã¿ãã¯ãã·ã³ã§ã¯ãã»ãšãã©å æã§ããªãå°é£ã«çŽé¢ããŸãã èšãæãããšãç§ãã¡ã¯åã³ãæè¡ã建ç¯ãæã«å ¥ãã以äžã®ãã®ãæäŸã§ããç¶æ³ã«çŽé¢ããŠããŸãã ããã¯å¥åŠã§ãã
- ã¬ãžã¹ã¿ãã·ã³ã®ããã°ã©ãã³ã°ã¯ããããæè¡çãã§ãã ãããæ°åã®æ±çšã¬ãžã¹ã¿ã䜿çšããŠããæåã§ããããåé¿ã§ããªãå Žåã«ã®ã¿ã¡ã¢ãªã«ã¢ã¯ã»ã¹ããã³ãŒããç°¡åã«äœæã§ããŸãã ã¹ã¿ãã¯ãã·ã³ã®å Žåããããéæããã®ã¯ã¯ããã«é£ããããšã«æ³šæããŠãã ããã ãŸããã¬ãžã¹ã¿ãŒéã§ã®äžæå€æ°ã®æé©ãªå²ãåœãŠã¯NPå®å šã¿ã¹ã¯ã§ããã劥åœãªæéã§ããªããŸãšããªã³ãŒããäœæã§ããå®äŸ¡ã§å¹æçãªãã¥ãŒãªã¹ãã£ãã¯ãããã€ããããŸãã
ãã¡ãããã¹ã¿ãã¯ã©ãããŒå ã®ã¬ãžã¹ã¿ãã·ã³ãããšãã°IgniteãICL2900ãé衚瀺ã«ããããšããŸããããåæ¥çãªæåã¯ãããŸããã§ããã å®éãã³ã³ãã€ã«ã®äŸ¿å®äžããŠãŒã¶ãŒã¯ã©ã³ã¿ã€ã ã®åºå®ã³ã¹ããè² æ ããå¿ èŠããããŸããã
ããã§ã¯ããªãèè ã¯ãã®ãããã¯ãåã³åãäžããŠããã®åéã«èŠèŸŒã¿ããããšèããããã®ã§ããããã
åæ©
ã¹ã¿ãã¯ãã·ã³ã®ã³ãŒããã¬ãžã¹ã¿ã¢ãŒããã¯ãã£ã«æ¯ã¹ãŠã¯ããã«ã³ã³ãã¯ãã§ãããšäž»åŒµãã人ã¯ããŸããã ãã®ã³ã³ãã¯ããã®éèŠæ§ã«ç°è°ãå±ããããšã¯å¯èœã§ãããäºå®ã¯æ®ã£ãŠããŸãã ã³ãŒãå§çž®ã¯ã©ã®ããã«éæãããŸããïŒ çµå±ã®ãšãããæ©èœçã«åœŒã¯åãããšãããŸããããªãã¯ã¯äœã§ããïŒ
åŒx + y * z + uãè©äŸ¡ããç°¡åãªäŸãèããŠã¿ãŸãããã
ã³ã³ãã€ã©ãããªãŒã解æãããšãã次ã®ããã«ãªããŸãã
ãã®åŒã®ã¢ã»ã³ãã©ã³ãŒãïŒx86ïŒã¯æ¬¡ã®ããã«ãªããŸãã
mov eax,dword ptr [y] imul eax,dword ptr [z] mov ecx,dword ptr [x] add ecx,eax mov eax,ecx add eax,dword ptr [u]
ä»®æ³ã¹ã¿ãã¯ãã·ã³ã®å Žåãæ¬äŒŒã³ãŒãã¯æ¬¡ã®ãšããã§ãã
push x push y push z multiply add push u add
4ã€ã®ã¡ã¢ãªã¢ã¯ã»ã¹ãå ç®ãä¹ç®ã«å ããŠãåã¬ãžã¹ã¿ããã»ããµåœä»€ã«ã¯ã¬ãžã¹ã¿èå¥åãå«ãŸããŠããŸãã
ããããçµå±ã®ãšããããããã®ã¬ãžã¹ã¿ã¯å®éã«ã¯ååšããŸãããããã¯ãã¹ãŒããŒã¹ã«ã©ãŒããã»ããµãåœä»€éã®é¢ä¿ã瀺ãããã«äœ¿çšãããã£ã¯ã·ã§ã³ã§ãã
ã¬ãžã¹ã¿ãšãããã®æäœã®ã»ããã¯ãããã»ããµã¢ãŒããã¯ãã£ã圢æããã¹ãŒããŒã¹ã«ã©ããã»ããµãååšããªãã£ããšãã§ãïŒå°ãªããšãx86ã®å ŽåïŒæŽå²çã«éçºãããã¬ãžã¹ã¿åã¯éåžžã«ç©ççãªã¬ãžã¹ã¿ã瀺ããŠããŸããã
ãåç¥ã®ããã«ãæ è¡äžã«ç¬ã¯æé·ããå¯èœæ§ããããç»é²èå¥åã¯çŸåšä»ã®ç®çã«äœ¿çšãããŠããŸãã çŸåšã®ã¢ãŒããã¯ãã£ã¯ãã³ã³ãã€ã©ãšããã»ããµã®éã®ã€ã³ã¿ãŒãã§ãŒã¹ã«äŒŒãŠããŸãã ã³ã³ãã€ã©ãŒã¯ãããã»ããµãŒãå®éã«ã©ã®ããã«æ©èœããããç¥ãããäºææ§ã®ããããã€ã¹å šäœã®ã³ãŒããçæã§ããŸãã ãŸããããã»ããµéçºè ã¯ãæçšã§éèŠãªããšã«éäžããŠãå€éšäºææ§ã®ãã補åãäœæã§ããŸãã
ãã®ãããªçµ±äžã®æéã¯ãããã§ããïŒ
- ã¹ãŒããŒã¹ã«ã©ãŒããã»ããµã®èŠ³ç¹ããã ããã«ãäŸãã°ãIntelã®èšäº ãéèªçã«ïŒ
ãã®å Žã§ã¹ãŒããŒã¹ã«ã©ãŒãã·ãªã¢ã«ã³ãŒãã䞊ååããŸãã ãããããã®äžŠååããã»ã¹ã¯ãçŸåšã®ããã»ããµã®åŠçèœåã«ãšã£ãŠãæéãããããããããããã·ã³ã®ããã©ãŒãã³ã¹ãå¶éãããŸãã ãµã€ã¯ã«ããšã«äžå®æ°ã®åœä»€ãããéããã®å€æãè¡ãããšã¯äžå¯èœã§ãã ããªãã¯ãã£ãšã§ããŸãããåæã«æèšä»æãã¯èœã¡ãŸã-ãã®ã¢ãããŒãã¯æããã«ç¡æå³ã§ã
ããªãã®ãæ°ã«å ¥ãããå¥ã®ãã®ããããŸãïŒåé¡ã¯ã¹ãŒããŒã¹ã«ã©ãŒèªäœã§ã¯ãªããããã°ã©ã ã®ãã¬ãŒã³ããŒã·ã§ã³ã«ãããŸãã ããã°ã©ã ã¯é çªã«è¡šç€ºãããå®è¡äžã«äžŠåå®è¡ã«å€æããå¿ èŠããããŸãã ã¹ãŒããŒã¹ã«ã©ãŒã®äž»ãªåé¡ã¯ãå ¥åã³ãŒãããã®ããŒãºãæºãããªãããšã§ãã ã«ãŒãã«ã®äžŠåã¢ã«ãŽãªãºã ãšäžŠåã«ç·šæãããããŒããŠã§ã¢ããããŸãã ãããããããã®éã«ã¯ãçãäžã«ãç¹å®ã®å®åçµç¹ããããŸã-ã³ãã³ãã®äžè²«ããã·ã¹ãã
- ã³ã³ãã€ã©ã®èŠ³ç¹ããã ããããïŒ
ã³ã³ãã€ã©ã¯ããã°ã©ã ãã·ãŒã±ã³ã·ã£ã«ã³ãã³ãã·ã¹ãã ã«å€æããŸãã ããã»ã¹ã®å šäœçãªé床ã¯ã圌ããããè¡ãé åºã«äŸåããŸãã ããããã³ã³ãã€ã©ã¯ãã·ã³ãã©ã®ããã«åäœããããæ£ç¢ºã«ç¥ããŸããã ãããã£ãŠãäžè¬çã«èšãã°ãä»æ¥ã®ã³ã³ãã€ã©ã®ä»äºã¯ã·ã£ãŒãããºã ã§ã
ã³ã³ãã€ã©ãŒã¯ãããã°ã©ã ãæå®ãããæ°ã®ã¬ãžã¹ã¿ãŒã«å§çž®ããããã«å·šé¡ã®åªåãæããŸããããã®æ°ã¯æ¶ç©ºã®ãã®ã§ãã ã³ã³ãã€ã©ãŒã¯ãïŒ éã®ç®ã«å ¥ãããŒãã®ããã«ïŒããã°ã©ã ã§æ€åºããããã¹ãŠã®äžŠåæ§ãã¢ãŒããã¯ãã£ãŒã®å¶éãè¶ ããŠããã·ã¥ããããšããŸãã 倧éšåã¯å€±æããŸããã
ã©ããã
åé¡ã瀺ãããŠããŸã-ã€ã³ã¿ãŒãã§ã€ã¹/ã¢ãŒããã¯ãã£ãææ°ã®èŠä»¶ãæºãããŠããŸããã
ãããã®ïŒæ°ããïŒèŠä»¶ã¯äœã§ããïŒ
- ã³ã³ãã€ã©ãŒãèªèããŠãããã¹ãŠã®äžŠè¡æ§ã¯ãæ倱ãªãæž¡ãããå¿ èŠããããŸãã
- åœä»€éã®äŸåé¢ä¿ãã¢ã³ããã¯ããã³ã¹ãã¯æå°éã«æããå¿ èŠããããŸãã
ç¹°ãè¿ããŸãããåŒx + y * z + uãã³ã³ãã€ã«ããäŸãèŠãŠã¿ãŸãããã
x86 | ã¹ã¿ãã¯ãã·ã³ |
---|---|
mov eaxãdword ptr [y] imul eaxãdword ptr [z] mov ecxãdword ptr [x] ecxãeaxãè¿œå mov eaxãecx eaxãdword ptr [u]ãè¿œå ããŸã | xãæŒã yãæŒã ZãæŒã æãã å ãã æŒã㊠å ãã |
ããããã¹ã¿ãã¯ã®æäžéšã«ã€ããŠè©±ããšãã«ããããããŒã¿ã¹ã¿ãã¯ã§ã¯ãªãã æäœã® ã¹ã¿ãã¯ ïŒ ãã€ã¯ã æäœ ãã¢ããïŒã§ããå Žåã¯ã©ãã§ããã ã
- ã¹ã¿ãã¯åœä»€ã¯å€éšããæ¥ãŸãããããã»ããµã¯å®éã«ã¯ã¬ãžã¹ã¿ã§ãããéåžžã«äŒçµ±çãªãadd r1 r2 r3ãã®ã¿ãå®è¡ã§ããŸãã ãããã®ãè¿œå ...ããã¢ãããšåŒã³ãŸãã å¿ èŠã«å¿ããŠãã¢ããã¯ã¬ãžã¹ã¿ããã»ããµã®å éšåœä»€çšã®æ±çšã¯ãŒã¯ããŒã¹ã§ãã
- ããã»ããµã«ã¯ã¢ããã®ããŒã«ããããæåã¯ãã¹ãŠç¡æã§ãã€ã³ããã¯ã¹ã«ããã¢ã¯ã»ã¹ããããŸãã
- ã¢ããã«ã¯é¢é£æ å ±ããªã³ã¯ããããŸã-芪ã¢ããã®æ°ãå ç¥ã®æ°ã...
- ãããã£ãŠãæåã®åœä»€ã¯ãããã·ã¥xãïŒãã®å Žåxã¯ã¢ãã¬ã¹ïŒã§ããããã®ãã©ã³ã¹ã¬ãŒã¿ãŒã¯ããããlload RïŒã0x .....ãã«å€æããŸãããã®ã¢ããã«ã¯å ¥ååŒæ°ããªããåºååŒæ°ã®ã¿ããããŸãã
- ã¢ããã¯ç¡æããŒã«ããååŸãããç¡æã¢ãããçµäºãããšãã³ãŒããŒã¯äžæåæ¢ããŸãã
- æå㯠'lload RïŒã0x .....'ã§ããã ã±ãŒã¹ã¯å®çŸ©ãããŠããŸããã
- ããã¯ãlload RïŒã0x .....ãã§ãã€ã³ããã¯ã¹ã¢ããã®ã¹ã¿ãã¯ã®äžçªäžã«é 眮ããŸãã
- 次ã«ããããã·ã¥y;ããã·ã¥zãããŠãåãããšãããŸãã çŸåšãã¢ããã®ã¹ã¿ãã¯ã«ã¯3ã€ã®ããŠã³ããŒãããããŸãã
- 次ã¯ãä¹ç®ãã§ãã圌女ã®ãã³ãŒããŒã¯ã¢ãããlmul RïŒ RïŒ RïŒ 'ã
- ãã³ãŒããŒã¯ãã®åœä»€ã«2ã€ã®åŒæ°ãå¿ èŠã§ããããšãç¥ã£ãŠãããããã¹ã¿ãã¯ã®æäžéšããäžäœ2ã€ã®ã¢ãããååŸïŒããã³åé€ïŒããæå®ãããã¢ãããšãªã³ã¯ããŸãã ãã®åŸãmopã€ã³ããã¯ã¹ãmultiplyããã¹ã¿ãã¯ã®äžçªäžã«ããã·ã¥ãããŸãã
- 次ã¯ãè¿œå ãã§ããã¹ãŠãåãã§ãã1ã€ã®åŒæ°ã ããã¡ã¢ãªããããŒãããã2çªç®ã¯ä¹ç®ã§ãã
- mopã€ã³ããã¯ã¹ãã¹ã¿ãã¯ãé¢ãããšãå®è¡ïŒmopïŒãè©Šã¿ãããšãã§ããŸãã æåã«ããã®ã¯ãpush xãã§ãçŸåšã¯ãlload RïŒã0x .....ãã§ãã
- åºååŒæ°ã«ã€ããŠã¯ãæåã®ã¬ãžã¹ã¿ãŒïŒR1ãªã©ïŒã䜿çšããŠãããžãŒãšããŠããŒã¯ããŸãã ãã®ã¢ããã¯èª°ãåŸ ããªããããå®è¡ã®ããã«ã³ã³ãã¢ã«å ¥ããããšãã§ããŸãã
- ãã®mopãå®è¡ãããåŸãçžç¶äººïŒ1ã€ã®ã¿ãåãããªãŒïŒãããã°ããããéç¥ããåæã«åŒæ°ã¬ãžã¹ã¿çªå·ã決å®ããã芪mopsã®ã«ãŠã³ã¿ãŒãæžããããŸãã
- å ¥ååŒæ°ãã±ãŒã¹ïŒsïŒãä¿æããŠããå ŽåããããïŒã±ãŒã¹ïŒsïŒïŒã¯è§£æŸã§ããŸãã
- ïŒåã¢ããã§ïŒäºæ³ãããã¢ããã®ã«ãŠã³ã¿ãŒã0ã«ãªã£ãå Žåããã®ã¢ããã¯å¯Ÿå¿ãããã€ãã©ã€ã³ã«ã転éã§ããŸãã
- ...
ã©ããªçš®é¡ã®ã¢ããããããŸããïŒ
- ã¬ãžã¹ã¿ã®æäœãããšãã°è¿œå ïŒ2ã€ã®ã¬ãžã¹ã¿ã®å€ãåèšããã3çªç®ã®ã¬ãžã¹ã¿ã«é 眮ãããŸãã ãããã®ã¢ããã¯ãã€ããªã§ããã¹ã¿ãã¯ã«ããã·ã¥ãããåã«ãäžäœ2ã€ã®ã¢ãããžã®ãªã³ã¯ãåé€ããããã®ã¢ãããžã®ãªã³ã¯ãå ¥åãããŸãã ãŸããåé -笊å·ã®å€æŽãªã©ã ãã®ãããªæäœãäœæãããšãã¹ã¿ãã¯ã®æäžéšã«ãããªã³ã¯ããã®ãªã³ã¯ã«çœ®ãæããããŸãã
- ã¡ã¢ãªæäœ-ã¡ã¢ãªããã¬ãžã¹ã¿ã«å€ãããŒãããããŸãã¯ãã®éã ã¡ã¢ãªããã®èªã¿èŸŒã¿ã«ã¯å è¡æäœããªããåã«ã¢ããã®ã¹ã¿ãã¯ã«ããã·ã¥ãããŸãã ã¡ã¢ãªã§ã¢ã³ããŒããããšãã¹ã¿ãã¯ãã1ã€ã®èŠçŽ ãåé€ãããŸãã ã¡ã¢ãªããããŒããããšããªã³ã¯ãã¹ã¿ãã¯ã«è¿œå ãããŸãã
- ç¹å¥ãªæäœã¯ãããã§ãã¹ã¿ãã¯ã®æäžéšããèŠçŽ ãåé€ãããã³ãŒããŒãžã®åœä»€ã§ãã
- ãã®ä»-æ€èšãããŸã§ãåå²ãé¢æ°åŒã³åºãããµãŒãã¹
ã¡ã¢ãªã䜿çšããæäœã®å Žåãã¢ããéã§ç¹å¥ãªã¿ã€ãã®éä¿¡ãçºçããŸããããšãã°ãã¢ãã¬ã¹ãä»ããŠãå€ãã¡ã¢ãªã«ããŒãããã¡ã¢ãªããã¬ãžã¹ã¿ã«èªã¿èŸŒãã æ£åŒã«ã¯ããããã®æäœã®éãã¬ãžã¹ã¿ãä»ããéä¿¡ã¯ãããŸãããå®éã¯ããã§ãã èšãæãããšãèªã¿çµããåã«èšé²ã®çµãããŸã§åŸ ã€ã®ãããã§ãããã ãããã£ãŠããã³ãŒããã£ãã·ã¥å ã®ã¢ããã®å Žåããã®ãããªäŸåé¢ä¿ãç£èŠããå¿ èŠããããŸãã ãã£ãã·ã¥å€ã§ã¯ããã®åé¡ã¯ã¡ã¢ãªã¢ã¯ã»ã¹ãã¹ãä»ããã·ãªã¢ã«åã«ãã£ãŠè§£æ±ºãããŸãã
ãœãããŠã§ã¢ã¢ãã«
ææ©çãªæ§é ã¯ãããããå®çŸããããšããç¬éãŸã§å®å šã«æ©èœããŸãã ãããã£ãŠã以äžã§ã¯ãã¢ãã«ã®æ€èšŒãšäžŠè¡ããŠçè«åããŸãã
èè ã¯ã ã¢ãã«ãŒãã³é¢æ°ãå®è¡ããã®ã«ååãªCã®ãµãã»ããã®åçŽãªã³ã³ãã€ã©ãŒãå®è£ ããŸããã ã³ã³ãã€ã©ã¯ã¹ã¿ãã¯ãã·ã³çšã®ã³ãŒããçºè¡ããããã«å®è¡ãè©Šã¿ãŸãã
ç°¡åãªããšãæ¥ãã§ç·Žç¿ããªãã§ãã ãããäŸãã°
long d1, d2, d3, d4, d5, d6, d7, d8; d1 = 1; d2 = 2; d3 = 3; d4 = 4; d5 = 5; d6 = 6; d7 = 7; d8 = 8; print_long (((d1 + d2)+(d3 + d4))+((d5 + d6)+(d7 + d8))); //
ãã ããæåã«ããã»ããµã¢ãã«ã®ãã©ã¡ãŒã¿ãŒã決å®ããå¿ èŠããããŸãã
- 32åã®æŽæ°ã¬ãžã¹ã¿
- ãã³ãŒãããããµã€ã¯ã«ããã4åœä»€
- ã¡ã¢ãªãæäœããããã®1ã€ã®ã³ã³ãã€;ã¬ãžã¹ã¿ãžã®/ã¬ãžã¹ã¿ããã®ã¯ãŒãã®ããŒããšã¢ã³ããŒãã«ã¯3ã¯ããã¯ãµã€ã¯ã«ããããŸã
- ALUãåãã 2ã€ã®ã³ã³ãã€ãŒãå ç®/æžç®ã®æŒç®ã«ã¯3ã¯ããã¯ãµã€ã¯ã«ãæ¯èŒ-1ã¯ããã¯ããããŸã
ããããã³ä»¥äžã§ãåœä»€ã¯ãå®è¡ããããã€ãã©ã€ã³ã§ã®å®è¡ã®å®äºæïŒã¬ãžã¹ã¿ãæ¢ã«å®çŸ©ãããŠããå ŽåïŒã«è¡šç€ºãããŸãã
ã¿ã¯ã | ã³ã³ããŒãžã§ã³ èšæ¶ã® | ã³ã³ããŒãžã§ã³ N1 | ã³ã³ããŒãžã§ã³ N2 |
---|---|---|---|
3
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29æ¥ 32 35 | LLOAD r3
LLOAD r2 LLOAD r1 LLOAD r0 LLOAD r7 LLOAD r6 LLOAD r5 LLOAD r4 LSTORE r3 LSTORE r2 LSTORE r1 LSTORE r0 LSTORE r7 LSTORE r6 LSTORE r5 LSTORE r4 LLOAD r11 LLOAD r10 LLOAD r8 LLOAD r15 LLOAD r12 LLOAD r19 LLOAD r17 LLOAD r16 |
LADD r11 r10-> r9 LADD r8 r15-> r14 LADD r12 r19-> r18 LADD r9 r14-> r13 LADD r17 r16-> r23 LADD r18 r23-> r22 LADD r13 r22-> r21 |
äœãèŠããŸããïŒ
- æåã®8ã€ã®LLOADåœä»€-å®æ°ã®ããŒã
- ããã«8 LSTORE-å®æ°ã«ããå€æ°ã®åæåã æåã¯ïŒLOADãšSTOREïŒãæ··åšããŠãããããåæ§ã®æ¹æ³ã§ã·ãªã¢ã«åãããã®ã¯å¥åŠã«æãããããããŸããã ããããã¡ã¢ãªããå®æ°ãããŒãããããšã¯3ãµã€ã¯ã«ããµã€ã¯ã«ããã4åœä»€ã§ããããšãèŠããŠãã䟡å€ããããŸãã æåã®å®æ°ãããŒããåŸ æ©ããŠããéãLSTOREæäœã¯äŸåé¢ä¿ã®ãããLLOADã®èåŸã®ãã€ãã©ã€ã³ã§çµäºããŸããã ãšããã§ãåäœäžã®LLC ã
- 2ã€ã®ãã€ãã©ã€ã³ãšæãããªäžŠè¡æ§ããããããäž¡æ¹ã®ãã€ãã©ã€ã³ãããŒãã§ããªãã£ãã®ã¯å¥åŠã«æããŸãã äžæ¹ãæåŸã®ã¡ã¢ãªããŒãã¯26ã¯ããã¯ãµã€ã¯ã«ïŒ8 * 3 + 2ïŒåŸã«çµäºããŸããã åŒããªãŒã®æ·±ãã¯ãã¹ãããããšã«3ã3ã¡ãžã£ãŒã§ãã åèšã§26 + 9 = 35ãµã€ã¯ã«ããããåççã«é«éã«èšç®ããããšã¯äžå¯èœã§ãã ã€ãŸã ãã®ã³ãŒããã§ããã ãè¿ éã«èšç®ããã«ã¯ãåäžã®æŽæ°ãã€ãã©ã€ã³ã§ååã§ãã
åãããšãè©ŠããŠã¿ãŸãããããã ããå€æ°ãæ瀺çã«åæåããããšã¯ãããŸããã
long d1, d2, d3, d4, d5, d6, d7, d8; print_long (((d1 + d2)+(d3 + d4))+((d5 + d6)+(d7 + d8))); //
ã¿ã¯ã | ã³ã³ããŒãžã§ã³ èšæ¶ã® | ã³ã³ããŒãžã§ã³ N1 | ã³ã³ããŒãžã§ã³ N2 |
---|---|---|---|
3
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | LLOAD r3
LLOAD r2 LLOAD r0 LLOAD r7 LLOAD r4 LLOAD r11 LLOAD r9 LLOAD r8 |
LADD r3 r2-> r1 LADD r0 r7-> r6 LADD r4 r11-> r10 LADD r1 r6-> r5 LADD r9 r8-> r15 LADD r10 r15-> r14 LADD r5 r14-> r13 |
ããã§ããã¹ãŠã®è§ãã£ããåé€ããŠãå€æ°ãå ç®ããŠã¿ãŸãããã
long d1, d2, d3, d4, d5, d6, d7, d8; print_long (d1+d2+d3+d4+d5+d6+d7+d8); //
ã¿ã¯ã | ã³ã³ããŒãžã§ã³ èšæ¶ã® | ã³ã³ããŒãžã§ã³ N1 | ã³ã³ããŒãžã§ã³ N2 |
---|---|---|---|
3
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | LLOAD r3
LLOAD r2 LLOAD r0 LLOAD r6 LLOAD r4 LLOAD r10 LLOAD r8 LLOAD r14 |
LADD r3 r2-> r1 LADD r1 r0-> r7 LADD r7 r6-> r5 LADD r5 r4-> r11 LADD r11 r10-> r9 LADD r9 r8-> r15 LADD r15 r14-> r13 |
è¡šçŸãè£è¿ãã«ããŠã¯ã©ãã§ããïŒ
long d1, d2, d3, d4, d5, d6, d7, d8; print_long (d1+(d2+(d3+(d4+(d5+(d6+(d7+d8))))))); //
æãããªäžŠåæ§ãš2ã€ã®æŽæ°ãã€ãã©ã€ã³ãååšããå Žåã2çªç®ã®ãã€ãã©ã€ã³ã¯ã¢ã€ãã«ç¶æ ã§ãã ã·ã¹ãã ãåãããŠã¿ãŸãããã ã«æ»ããŸããã
long d1, d2, d3, d4, d5, d6, d7, d8; print_long (((d1 + d2)+(d3 + d4))+((d5 + d6)+(d7 + d8))); //
ã¡ã¢ãªãžã®ã¢ã¯ã»ã¹é床ãäžããŠã1ã¯ããã¯ãµã€ã¯ã«ã§ã¬ãžã¹ã¿ã®èªã¿åããå®è¡ããŠã¿ãŸãããã é¢çœãããã»ãšãã©å€ãã£ãŠããªãã åèšæéã2ã¡ãžã£ãŒæžå°ããŸãããããæ£ç¢ºã«ã¯ãå šäœåã2ã¡ãžã£ãŒå¢å ããŸããã ã¡ã¢ãªåž¯åå¹ ã¯å€æŽãããŠããããæåã®çµæãåŸããããŸã§é 延ãåé€ããã ãã§ãã
ãããããåèšãéãããŸãã 3åã§ã¯ãªã7åã®æž¬å®ãè¡ããŸãã
åèšæéã¯29ïŒ8 + 3 * 7ïŒãã£ãã¯ã«å¢å ããŸããããåºæ¬çã«ã¯äœãå€åããã2çªç®ã®ã³ã³ãã¢ã¯ã¢ã€ãã«ç¶æ ã§ãã
16åã®æ°åã®ãã©ããããèŠçŽãã2ã€ã®ã¡ã¢ãªãã€ãã©ã€ã³ãå°å ¥ããŠã¿ãŸãããã åèšæéã¯36ãµã€ã¯ã«ïŒ16/2 + 4 * 7ïŒã§ãã 2çªç®ã®æ°å€ãã€ãã©ã€ã³ã¯é¢ä¿ããŠããŸããã çªå·ã¯ãã¢ã«ãªããæåã®ã¬ãã«ã®8ã€ã®åèšã¯ãã¹ãŠããŒãã®é 延ããå§ãŸããããã¯ãã¹ãŠã1ã€ã®ãã€ãã©ã€ã³ã«ä¿æããã®ã«ååã§ãã
ãããŠã4ã€ã®ã¡ã¢ãªãã€ãã©ã€ã³ãå ¥åãããµã€ã¯ã«ããšã«6ã€ã®ãã³ãŒããèš±å¯ããå Žåã«ã®ã¿ã2çªç®ã®æ°å€ãã€ãã©ã€ã³ïŒæ倧3ïŒsicïŒïŒåœä»€ãå®è¡ïŒã«ãªããŸãããããã§ãåèšæéã¯33ãµã€ã¯ã«ã§ãã ã€ãŸã å ç®èªäœã®å¹çã¯ããã«æªåããŸããã
確ãã«ãã³ã³ãã€ãŒã¯éåžžã«å¹æçãªã¡ã«ããºã ã§ããã1ã€ä»¥äžã®ã³ã³ãã€ãŒã䜿çšããã®ã«ã¯ããªãã®çç±ãå¿ èŠã§ãã
ã¬ãžã¹ã¿å²ãåœãŠ
äžèšã®äŸã§ã¯ãã¬ãžã¹ã¿ã®ç®çã¯ã¢ãããäœæããããšãã«çºçããŸããã ãã®çµæããã©ãããã§å€æ°ãåèšãããšãã®ã¬ãžã¹ã¿äœ¿çšã®ãããã¯æ¬¡ã®ããã«ãªããŸãïŒåæãã©ã¡ãŒã¿ãŒ-ãµã€ã¯ã«ããšã«4ã€ã®åœä»€ããã³ãŒãããã1ã€ã®ã¡ã¢ãªãã€ãã©ã€ã³ãèªã¿åããšåèšã®ããã®3ãµã€ã¯ã«ïŒïŒ
8å€æ° | 16å€æ° |
8å€æ° | 16å€æ° |
é¢æ°åŒã³åºã
äžè¬çãªçç±ã«ããã説æãããŠããã¢ãŒããã¯ãã£ã§ã¯ãé¢æ°ã®åŒã³åºãã«åé¡ããããšæ³å®ãããŠããŸãã å®éãé¢æ°ããæ»ã£ãåŸãçŸåšã®é¢æ°ã®ã³ã³ããã¹ãã§ã¬ãžã¹ã¿ã®ç¶æ ãæåŸ ããŠè¿ããŸãã ææ°ã®ã¬ãžã¹ã¿ã¢ãŒããã¯ãã£ã§ã¯ãã¬ãžã¹ã¿ã¯ãã®ããã«2ã€ã®ã«ããŽãªã«åããããŸã-åŒã³åºãåŽã¯äžéšã®å®å šãæ åœããåŒã³åºãåŽã¯ä»ã®äººãæ åœããŸãã
ãããããã®ã¢ãŒããã¯ãã£ã§ã¯ãããã³ããšã³ãã¯ã¹ã¿ãã¯ã§ãããããã³ã³ãã€ã©ãŒã¯ã¬ãžã¹ã¿ãŒã®ååšãèªèããªãå ŽåããããŸãã ãŸããããã»ããµèªäœãã³ã³ããã¹ãã®ä¿å/埩å ãåŠçããå¿ èŠããããŸãããããã¯éèŠãªã¿ã¹ã¯ã®ããã§ãã
ãã ãããã®åé¡ã¯æ¬¡ã®èšäºã§è§£æ±ºããŸã ã