![](https://habrastorage.org/webt/fx/3k/yv/fx3kyvqsb8hquivzhowomntx-xe.jpeg)
ããã§ã¯ã次äžä»£ã®ãã«ãã»ã«ã©ãŒããã»ããµã§ããMultiClet S1ã«ã€ããŠã話ããŸãã åããŠèããå Žåã¯ããããã®èšäºã§å»ºç¯ã®æŽå²ãšã€ããªãã®ãŒã確èªããŠãã ããã
- ããã«ãã»ã«ã©ãŒããã»ããµãšã¯äœã§ããïŒã
- ãMulticlet R1-æåã®ãã¹ãã
- ããã«ãã»ã«ã©ãŒããã»ããµçšã®LLVMããŒã¹ã®C / C ++ã³ã³ãã€ã©ïŒããã¹ããã©ããïŒã
çŸåšãæ°ããããã»ããµã¯éçºäžã§ãããæåã®çµæããã§ã«è¡šç€ºãããŠããã®ã§ããããäœãå¯èœã«ããããè©äŸ¡ã§ããŸãã
æ倧ã®å€æŽããå§ããŸãããïŒåºæ¬æ©èœã
ç¹åŸŽã
以äžã®ææšãéæããäºå®ã§ãã
- ã»ã«ã®æ°ïŒ64
- æè¡ããã»ã¹ïŒ28 nm
- ã¯ããã¯åšæ³¢æ°ïŒ1.6 GHz
- ãããäžã®ã¡ã¢ãªã®ãµã€ãºïŒ8 MB
- ã¯ãªã¹ã¿ã«é¢ç©ïŒ40mm 2
- æ¶è²»é»åïŒ6 W
å®æ°ã¯ã2019幎ã«è£œé ããããµã³ãã«ã®ãã¹ãçµæã«åºã¥ããŠçºè¡šãããŸãã ããã»ããµã¯ããããèªäœã®ç¹æ§ã«å ããŠãæ倧16 GBã®DDR4 3200MHzæšæºRAMãPCI Expressãã¹ãããã³PLLããµããŒãããŸãã
28 nm補é ããã»ã¹ã¯ã䜿çšã«ç¹å¥ãªèš±å¯ãå¿ èŠãšããªãæãäœãäžåž¯ã®ç¯å²ã§ãããããéžæãããã®ã¯åœŒã§ããããšã«æ³šæããå¿ èŠããããŸãã ã»ã«ã®æ°ã«ãã£ãŠã128ãš256ã®ç°ãªããªãã·ã§ã³ãèæ ®ãããŸããããçµæ¶ã®é¢ç©ãå¢å ãããšãäžè¯åã®å²åãå¢å ããŸãã 64åã®ã»ã«ããããã£ãŠãæ¯èŒçå°ããªé¢ç©ã«åãŸããŸãããããã«ããããã¬ãŒãäžã«é©åãªçµæ¶ãããå€ãçæãããŸãã ICSïŒãã®å Žåã¯ã·ã¹ãã ïŒã®ãã¬ãŒã ã¯ãŒã¯å ã§ãããªãéçºãå¯èœã§ããã1ã€ã®ã±ãŒã¹ã§è€æ°ã®64ã»ã«çµæ¶ãçµã¿åãããããšãã§ããŸãã
ããã»ããµã®ç®çãšã¢ããªã±ãŒã·ã§ã³ã¯æ ¹æ¬çã«å€åããŠãããšèšããªããã°ãªããŸããã S1ã¯ãP1ãR1ã®ãããªåã蟌ã¿çšã«èšèšããããã€ã¯ãããã»ããµã§ã¯ãªããèšç®ã®ã¢ã¯ã»ã©ã¬ãŒã¿ã§ãã GPGPUãšåæ§ã«ãS1ããŒã¹ã®ããŒãã¯éåžžã®PCã®PCI Expressãã¶ãŒããŒãã«æ¿å ¥ããããŒã¿åŠçã«äœ¿çšã§ããŸãã
建ç¯
S1ã§ã¯ãããã«ãã»ã«ãã¯æå°ã®èšç®åäœã§ããç¹å®ã®ã³ãã³ãã·ãŒã±ã³ã¹ãå®è¡ãã4ã€ã®ã»ã«ã®ã»ããã§ãã æåã¯ãã³ãã³ãã®å ±åå®è¡ã®ããã«ããã«ãã»ã«ãã¯ã©ã¹ã¿ãŒãšåŒã°ããã°ã«ãŒãã«çµåããããšãèšç»ãããŠããŸããã1ã€ã®ã¯ã©ã¹ã¿ãŒã«ã¯4ã€ã®ãã«ãã»ã«ãå«ãŸããŠããªããã°ãªããŸããã ãã ããåã»ã«ã¯ã¯ã©ã¹ã¿ãŒå ã®ä»ã®ãã¹ãŠã®ã»ã«ãšå®å šã«æ¥ç¶ãããŠãããçµåã°ã«ãŒããå¢ãããšå€ãããŠããã€ã¯ãåè·¯ã®ããããžèšèšãéåžžã«è€éã«ãªãããã®ç¹æ§ãäœäžããŸãã ãã®ãããå䜵çã¯çµæãæ£åœåããªããããã¯ã©ã¹ã¿ãŒåå²ãæŸæ£ããããšã«ããŸããã ããã«ãæ倧ã®ããã©ãŒãã³ã¹ãåŸãã«ã¯ãåãã«ãã»ã«ã§ã³ãŒãã䞊è¡ããŠå®è¡ããããšãæãæçã§ãã åèšã§ãããã»ããµã«ã¯16åã®åå¥ã®ãã«ãã»ã«ãå«ãŸããŠããŸãã
ãã«ãã»ã«ã¯4ã€ã®ã»ã«ã§æ§æãããŠããŸããã4ã€ã®ã»ã«R1ãšã¯ç°ãªããåã»ã«ã«ã¯ç¬èªã®ã¡ã¢ãªãç¬èªã®åœä»€ãããã¯ãALUããããŸãã S1ã®é 眮ã¯å°ãç°ãªããŸãã ALUã«ã¯ãæµ®åå°æ°ç¹æŒç®ãããã¯ãšæŽæ°æŒç®ãããã¯ã®2ã€ã®éšåããããŸãã åã»ã«ã«ã¯åå¥ã®æŽæ°ãããã¯ããããŸããããã«ãã»ã«ã«ã¯æµ®åå°æ°ç¹ãæã€ãããã¯ã2ã€ãããªãããã2ã€ã®ã»ã«ã®ãã¢ãããããåå²ããŸãã ããã¯äž»ã«æ°Žæ¶ã®é¢ç©ãæžããããã«è¡ãããŸãããæŽæ°æŒç®ãšã¯å¯Ÿç §çã«ã64ãããæµ®åå°æ°ç¹æŒç®ã¯å€ãã®ã¹ããŒã¹ãå æããŸãã åã»ã«ã«ãã®ãããªALUãããããšã¯åé·ã§ããããšãå€æããŸãããã³ãã³ãããã§ããããŠãALUã®ããŒãã¯æäŸããããã¢ã€ãã«ç¶æ ã«ãªããŸãã ALUãããã¯ã®æ°ãæžããããµã³ãã«ã³ãã³ããšããŒã¿ã®ããŒã¹ãç¶æããªãããå®è·µã瀺ããŠããããã«ãåé¡ã解決ããããã®åèšæéã¯å®éã«ã¯å€åããªããããããã«å€åããALUãããã¯ã¯å®å šã«ããŒããããŸãã ããã«ãæµ®åå°æ°ç¹æŒç®ã¯ãæŽæ°ã»ã©é »ç¹ã«ã¯äœ¿çšãããŸããã
ããã»ããµR1ããã³S1ã®ãããã¯ã®æŠç¥å³ã以äžã®å³ã«ç€ºããŸãã ããã«ïŒ
- CUïŒã³ã³ãããŒã«ãŠãããïŒ-åœä»€éžæãããã¯
- ALU FX-æŽæ°æŒç®ã®ç®è¡è«çãŠããã
- ALU FP-æµ®åå°æ°ç¹æŒç®ã®ç®è¡è«çãŠããã
- DMSïŒããŒã¿ã¡ã¢ãªã¹ã±ãžã¥ãŒã©ïŒ-ããŒã¿ã¡ã¢ãªå¶åŸ¡ãŠããã
- DM-ããŒã¿ã¡ã¢ãª
- PMSïŒããã°ã©ã ã¡ã¢ãªã¹ã±ãžã¥ãŒã©ïŒ-ããã°ã©ã ã¡ã¢ãªå¶åŸ¡ãŠããã
- PM-ããã°ã©ã ã¡ã¢ãª
![](https://habrastorage.org/webt/6t/4n/dp/6t4ndpu7d_koh8rpn8dmx0-b7ho.png)
ã¢ãŒããã¯ãã£ã®éãS1ïŒ
- ããŒã ã¯ãåã®æ®µèœã®ããŒã çµæã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããã ããã¯éåžžã«éèŠãªå€æŽã§ãããã³ãŒããåå²ããéã®ç§»è¡ãå€§å¹ ã«é«éåã§ããŸãã ããã»ããµP1ãšR1ã«ã¯ãã¡ã¢ãªã«ç®çã®çµæãæžã蟌ã¿ãããã«æ°ãã段èœã®æåã®ã³ãã³ãã§ããããèªã¿è¿ã以å€ã«éžæè¢ããããŸããã§ããã ãããäžã®ã¡ã¢ãªã䜿çšããå Žåã§ããæžã蟌ã¿ããã³èªã¿åãæäœã¯ãããã2ã5ãµã€ã¯ã«ããããåã®æ®µèœã®ã³ãã³ãã®çµæãåç §ããã ãã§ç¯çŽã§ããŸãã
- ã¡ã¢ãªãšã¬ãžã¹ã¿ãžã®æžã蟌ã¿ã¯ã段èœã®çµããã§ã¯ãªããããã«è¡ãããããã«ãªããŸãããããã«ããã段èœã®çµãããããåã«ã³ãã³ãã®æžã蟌ã¿ãéå§ã§ããŸãã ãã®çµæã段èœéã®æœåšçãªããŠã³ã¿ã€ã ãççž®ãããŸãã
- ã³ãã³ãã·ã¹ãã ã¯æé©åãããŠããŸãã
- 64ãããæŽæ°æŒç®ãè¿œå ïŒ32ãããæ°ã®å ç®ãæžç®ãä¹ç®ã64ãããã®çµæãè¿ããŸãã
- ã¡ã¢ãªããã®èªã¿åãæ¹æ³ãå€æŽãããŸãããçŸåšã ã©ã®ã³ãã³ãã§ããèªã¿åãã³ãã³ããšæžã蟌ã¿ã³ãã³ãã®å®è¡é åºãç¶æããªãããããŒã¿ãèªã¿åãã¢ãã¬ã¹ãåŒæ°ãšããŠæå®ã§ããŸãã
ãŸããå¥ã®ã¡ã¢ãªèªã¿åãã³ãã³ããå»æ¢ãããŸããã 代ããã«ãåŒæ°ãšããŠã¡ã¢ãªå ã®ã¢ãã¬ã¹ãæå®ããŠãload switchïŒä»¥åã¯get ïŒã«å¯ŸããŠload valueã³ãã³ãã䜿çšããŸãã
.data foo: .long 0x1234 .text habr: load_l foo ; foo load_l [foo] ; 0x1234 add_l [foo], 0xABCD ; ; complete
- 2ã€ã®å®æ°åŒæ°ã䜿çšã§ããã³ãã³ã圢åŒãè¿œå ãããŸããã
以åã¯ã2çªç®ã®åŒæ°ãšããŠã®ã¿å®æ°ãæå®ã§ããŸãããæåã®åŒæ°ã¯åžžã«ã¹ã€ããã®çµæãžã®ãªã³ã¯ã§ããå¿ èŠããããŸãã ãã®å€æŽã¯ã2ã€ã®åŒæ°ãæã€ãã¹ãŠã®ããŒã ã«é©çšãããŸãã å®æ°ãã£ãŒã«ãã¯åžžã«32ããããªã®ã§ããã®åœ¢åŒã§ã¯ãããšãã°ã1ã€ã®ã³ãã³ãã§64ãããã®å®æ°ãçæã§ããŸãã
ããã¯ïŒ
load_l 0x12345678 patch_q @1, 0xDEADBEEF
次ã®ããã«ãªããŸããïŒ
patch_q 0x12345678, 0xDEADBEEF
- å€æŽããã³è£è¶³ããããã¯ã¿ãŒããŒã¿ã¿ã€ãã
ãããã¯ãããŒã¿åãšåŒã°ããŠãããã®ã¯ãä»ã§ã¯å®å šã«ãã¯ãã«ãšåŒã¶ããšãã§ããŸãã P1ããã³R1ã§ã¯ãããã¯ãããæ°å€ã®æŒç®ã¯ã2çªç®ã®åŒæ°ãšããŠå®æ°ã®ã¿ãåããŸãããã€ãŸããããšãã°ããã¯ãã«ã®åèŠçŽ ãåãæ°å€ã§è¿œå ãããå Žåãããã¯ã€ã³ããªãžã§ã³ãã«é©çšã§ããŸããã§ããã çŸåšãåæ§ã®æäœã2ã€ã®å®å šãªãã¯ãã«ã«é©çšã§ããŸãã ããã«ããã®ãã¯ã¿ãŒã®æäœæ¹æ³ã¯ãLLVMã®ãã¯ã¿ãŒã®ã¡ã«ããºã ãšå®å šã«äžèŽããŠãããã³ã³ãã€ã©ãŒããã¯ã¿ãŒåã䜿çšããŠã³ãŒããçæã§ããããã«ãªããŸããã
patch_q 0x00010002, 0x00030004 patch_q 0x00020003, 0x00040005 mul_ps @1, @2 ; - 00020006000C0014
- ããã»ããµãââã©ã°ãåé€ãããŸããã
ãã®çµæããã©ã°ã®å€ã®ã¿ã«åºã¥ããçŽ40ããŒã ãåé€ãããŸããã ããã«ãããããŒã ã®æ°ãå€§å¹ ã«åæžãããããã«å¿ããŠã¯ãªã¹ã¿ã«ã®é¢ç©ãåæžãããŸããã ãããŠãå¿ èŠãªæ å ±ã¯ãã¹ãŠã¹ã€ããã»ã«ã«çŽæ¥ä¿åãããŸãã
- ãŒããã©ã°ã®ä»£ããã«ãŒããšæ¯èŒããå Žåãã¹ã€ããã®å€ã®ã¿ã䜿çšãããããã«ãªããŸãã
- 笊å·ãã©ã°ã®ä»£ããã«ãã³ãã³ãã®ã¿ã€ãã«å¯Ÿå¿ãããããã䜿çšãããããã«ãªããŸããããã€ãã«7çªç®ãã·ã§ãŒãã«15çªç®ããã³ã°ã«31çªç®ãã¯ã¢ããã«63çªç®ã§ãã ã¿ã€ãã«é¢ä¿ãªãã63ããããŸã§ç¬Šå·ãä¹ç®ããããšããäºå®ã«ãããç°ãªãã¿ã€ãã®æ°å€ãæ¯èŒã§ããŸãã
.data long: .long -0x1000 byte: .byte -0x10 .text habr: a := load_b [byte] ; 0xFFFFFFFFFFFFFFF0, ; byte 7 63. b := loadu_b [byte] ; 0x00000000000000F0, ; .. loadu_b c := load_l [long] ; 0xFFFFFFFFFFFFF000. ge_l @a, @c ; " " 1: ; 31 , . lt_s @a, @b ; 1, .. b complete
- 64ãããæŒç®ãããããããã£ãªãŒãã©ã°ã¯äžèŠã«ãªããŸããã
- 段èœãã段èœãžã®ç§»è¡æéã¯1ã¡ãžã£ãŒã«ççž®ãããŸããïŒR1ã®2-3ã®ä»£ããã«ïŒ
LLVMããŒã¹ã®ã³ã³ãã€ã©
S1ã®Cèšèªã³ã³ãã€ã©ã¯R1ã«äŒŒãŠãããã¢ãŒããã¯ãã£ãæ ¹æ¬çã«å€æŽãããŠããªããããæ®å¿µãªããåã®èšäºã§èª¬æããåé¡ã¯æ¶ããŠããŸããã
ãã ããæ°ããã³ãã³ãã·ã¹ãã ã®å®è£ ããã»ã¹ã§ã¯ãåã«ã³ãã³ãã·ã¹ãã ã®æŽæ°ãåå ã§ãåºåã³ãŒãã®éãèªåçã«æžå°ããŸããã ããã«ãã³ãŒãå ã®åœä»€æ°ãåæžãããã€ããŒãªæé©åãããã«å€ãããããã®äžéšã¯æ¢ã«å®è¡ãããŠããŸãïŒããšãã°ãåäžã®åœä»€ã§64ãããå®æ°ãçæããïŒã ããããããã«æ·±å»ãªæé©åãè¡ãå¿ èŠããããå¹çãšå®è£ ã®è€éãã®äž¡æ¹ã®æé ã§æ§ç¯ã§ããŸãã
- 2ã€ã®å®æ°ãæã€ãã¹ãŠã®2åŒæ°ã³ãã³ããçæããæ©èœã
patch_qãä»ãã64ãããå®æ°ã®çæã¯ç¹å¥ãªå Žåã§ãããäžè¬çãªãã®ãå¿ èŠã§ãã å®éããã®æé©åã®ãã€ã³ãã¯ãããŒã ãæåã®åŒæ°ã ããå®æ°ãšããŠçœ®ãæããããšã§ãã2çªç®ã®åŒæ°ã¯åžžã«å®æ°ã§ãããããã¯é·ãéå®è£ ãããŠããããã§ãã ããã¯ããŸãé »ç¹ãªã±ãŒã¹ã§ã¯ãããŸããããããšãã°ãé¢æ°ãåŒã³åºããŠãã®ã¢ãã¬ã¹ããã¹ã¿ãã¯ã®å é ã«æ»ãã¢ãã¬ã¹ãæžã蟌ãå¿ èŠãããå Žåã次ã®ããšãã§ããŸãã
load_l func wr_l @1, #SP
æé©åãã
wr_l func, #SP
- ä»»æã®ã³ãã³ãã®åŒæ°ãä»ããŠã¡ã¢ãªã¢ã¯ã»ã¹ã眮æããæ©èœã
ããšãã°ãã¡ã¢ãªãã2ã€ã®æ°å€ãè¿œå ããå¿ èŠãããå Žåã次ã®ããšãã§ããŸãã
load_l [foo] load_l [bar] add_l @1, @2
æé©åãã
add_l [foo], [bar]
ãã®æé©åã¯ä»¥åã®æé©åã®æ¡åŒµã§ãããããã§ã¯ãã§ã«åæãå¿ èŠã§ãããã®ãããªçœ®æã¯ãããŒããããå€ããã®è¿œå ã³ãã³ãã§äžåºŠã ã䜿çšãããä»ã§ã¯äœ¿çšãããªãå Žåã«ã®ã¿å®è¡ã§ããŸãã èªã¿åãçµæã2ã€ã®ã³ãã³ãã®ã¿ã§äœ¿çšãããå Žåãã¡ã¢ãªãã1ã€ã®åå¥ã®ã³ãã³ããšããŠèªã¿åããä»ã®2ã€ã§ã¯ã¹ã€ãããä»ããŠãããåç §ããæ¹ãæå©ã§ãã
- ããŒã¹ãŠãããéã®ä»®æ³ã¬ãžã¹ã¿ã®è»¢éã®æé©åã
R1ã§ã¯ããã¹ãŠã®ä»®æ³ã¬ãžã¹ã¿ã®è»¢éã¯ã¡ã¢ãªãä»ããŠè¡ããããããã¡ã¢ãªãžã®èªã¿åããšæžã蟌ã¿ãéåžžã«å€ãçºçããŸãããã段èœéã§ããŒã¿ã転éããä»ã®æ¹æ³ã¯ãããŸããã§ããã S1ã§ã¯ãåã®æ®µèœã®ã³ãã³ãã®çµæã«ã¢ã¯ã»ã¹ã§ããŸãããããã£ãŠãçè«çã«ã¯ãå€ãã®ã¡ã¢ãªæäœãåé€ã§ããŸããããã«ããããã¹ãŠã®æé©åã®äžã§æ倧ã®å¹æãåŸãããŸãã ãã ãããã®ã¢ãããŒãã¯ãŸã ã¹ã€ããã«ãã£ãŠå¶éãããŠããŸãã63åãŸã§ã®ä»¥åã®çµæã¯ããããŸã§ã®ãšãããä»®æ³ã¬ãžã¹ã¿ã®ãã¹ãŠã®è»¢éããã®ããã«å®è£ ã§ããŸãã ãããè¡ãæ¹æ³ã¯ç°¡åãªäœæ¥ã§ã¯ãªããããã解決ããå¯èœæ§ã®åæã¯ãŸã è¡ãããŠããŸããã ã³ã³ãã€ã©ã®ãœãŒã¹ã¯ãããªãã¯ãã¡ã€ã³ã«è¡šç€ºãããå Žåããããããã ãããã¢ã€ãã¢ãæã£ãŠããŠãéçºã«åå ãããå Žåã¯ããããè¡ãããšãã§ããŸãã
ãã³ãããŒã¯
ããã»ããµã¯ãŸã ãããäžã§ãªãªãŒã¹ãããŠããªããããå®éã®ããã©ãŒãã³ã¹ãè©äŸ¡ããããšã¯å°é£ã§ãã ãã ããRTLã«ãŒãã«ã³ãŒãã¯æ¢ã«çšæãããŠãããããã·ãã¥ã¬ãŒã·ã§ã³ãŸãã¯FPGAã䜿çšããŠè©äŸ¡ãè¡ãããšãã§ããŸãã 次ã®ãã³ãããŒã¯ãå®è¡ããããã«ãModelSimããã°ã©ã ã䜿çšããã·ãã¥ã¬ãŒã·ã§ã³ã䜿çšããŠãæ£ç¢ºãªå®è¡æéïŒæž¬å®å€ïŒãèšç®ããŸããã ã¯ãªã¹ã¿ã«å šäœãã·ãã¥ã¬ãŒãããã®ã¯é£ãããæéãããããããåãã«ãã»ã«ã¯å®å šã«ç¬ç«ããŠåäœã§ããããã1ã€ã®ãã«ãã»ã«ãã·ãã¥ã¬ãŒãããçµæã«16ãæããŸããïŒã¿ã¹ã¯ããã«ãã¹ã¬ããçšã«èšèšãããŠããå ŽåïŒã
åæã«ãXilinx Virtex-6ã§ãã«ãã»ã«ã¢ããªã³ã°ãå®è¡ãããå®éã®ããŒããŠã§ã¢ã§ããã»ããµã³ãŒãã®ããã©ãŒãã³ã¹ããã¹ããããŸããã
ã³ã¢ããŒã¯
CoreMark-ãã€ã¯ãã³ã³ãããŒã©ãŒãšäžå€®åŠçè£ çœ®ãããã³ãããã®Cã³ã³ãã€ã©ãŒã®ããã©ãŒãã³ã¹ãå æ¬çã«è©äŸ¡ããããã®äžé£ã®ãã¹ãã ã芧ã®ãšãããS1ããã»ããµã¯ã©ã¡ãã§ããããŸããã ãã ããå®å šã«èª¿åã³ãŒããå®è¡ããããšãæå³ããŠããŸãã äžå€®åŠçè£ çœ®ã§å®è¡ã§ãããã¹ãŠã®äººã ãããã£ãŠãCoreMarkã¯S1ã®ããã©ãŒãã³ã¹ãæªãè©äŸ¡ããã®ã«é©ããŠããŸãã
CoreMarkã«ã¯ããªã³ã¯ãªã¹ãããããªãã¯ã¹ãã¹ããŒããã·ã³ã CRCåèšèšç®ã®æ©èœãå«ãŸããŠããŸãã äžè¬ã«ãã»ãšãã©ã®ã³ãŒãã¯å³å¯ã«ã·ãŒã±ã³ã·ã£ã«ã§ããïŒãã«ãã»ã«ããŒããŠã§ã¢ã®äžŠåæ§ã®åŒ·åºŠããã¹ãããŸã ïŒãå€ãã®åå²ããããããã³ã³ãã€ã©ãŒã®æ©èœã¯æçµçãªããã©ãŒãã³ã¹ã§éèŠãªåœ¹å²ãæãããŸãã ã³ã³ãã€ã«ãããã³ãŒãã«ã¯çããã©ã°ã©ããããªãå«ãŸããŠããããããã®éã®é·ç§»é床ãåäžãããšããäºå®ã«ãããããããåå²ã«ã¯ã¡ã¢ãªã®æäœãå«ãŸããŸãã
CoreMarkæ¯èŒãã£ãŒãïŒ
Multiclet R1ïŒllvmã³ã³ãã€ã©ãŒïŒ | Multiclet S1ïŒllvmã³ã³ãã€ã©ãŒïŒ | Elbrus-4CïŒR500 / EïŒ | ãããµã¹å·¥ç§å€§åŠ AM5728 ARM Cortex-A15 | ãã€ã«ã«-t1 | Intel Core i7 7700K | |
---|---|---|---|---|---|---|
補é 幎 | 2015 | 2019幎 | 2014 | 2018幎 | 2016幎 | 2017幎 |
ã¯ããã¯åšæ³¢æ°ãMHz | 100 | 1600 | 700 | 1500 | 1200 | 4500 |
CoreMarkç·åã¹ã³ã¢ | 59 | 18356 | 1214 | 15789 | 13142 | 182128 |
ã³ã¢ããŒã¯/ MHz | 0.59 | 11.47 | 5.05 | 10.53 | 10.95 | 40.47 |
1ã€ã®ãã«ãã»ã«ã®çµæã¯1147ãã€ãŸã0.72 / MHzã§ãR1ã®çµæãããé«ããªã£ãŠããŸãã ããã¯ãæ°ããããã»ããµã§ã®ãã«ãã»ã«ã©ãŒã¢ãŒããã¯ãã£ã®éçºã®å©ç¹ã«ã€ããŠèªã£ãŠããŸãã
ãã€ãŒãã¹ãã³
ç ¥ç³-æµ®åå°æ°ç¹æ°ãåŠçããéã®ããã»ããµã®ããã©ãŒãã³ã¹ã枬å®ããããã®äžé£ã®ãã¹ãã ããã§ã¯ãç¶æ³ã¯ã¯ããã«è¯å¥œã§ããã³ãŒããã·ãŒã±ã³ã·ã£ã«ã§ãããå€æ°ã®ãã©ã³ãããªããå éšåæå®è¡æ§ãè¯å¥œã§ãã
Whetstoneã¯å€ãã®ã¢ãžã¥ãŒã«ã§æ§æãããŠãããããå šäœçãªçµæã ãã§ãªããç¹å®ã®åã¢ãžã¥ãŒã«ã®ããã©ãŒãã³ã¹ã枬å®ã§ããŸãã
- é åèŠçŽ
- ãã©ã¡ãŒã¿ãšããŠã®é å
- æ¡ä»¶ä»ããžã£ã³ã
- æŽæ°æŒç®
- äžè§é¢æ°ïŒtanãsinãcosïŒ
- æç¶ãåŒã³åºã
- é ååç §
- æšæºé¢æ°ïŒsqrtãexpãlogïŒ
ãããã¯ã«ããŽãªã«åé¡ãããŸããã¢ãžã¥ãŒã«1ã2ãããã³6ã¯ãæµ®åå°æ°ç¹æŒç®ã®ããã©ãŒãã³ã¹ã枬å®ããŸãïŒè¡MFLOPS1ã3ïŒã ã¢ãžã¥ãŒã«5ããã³8-æ°åŠé¢æ°ïŒCOS MOPSãEXP MOPSïŒã ã¢ãžã¥ãŒã«4ããã³7-æŽæ°æŒç®ïŒFIXPT MOPSãEQUAL MOPSïŒã ã¢ãžã¥ãŒã«3-æ¡ä»¶ä»ããžã£ã³ãïŒIF MOPSïŒã 次ã®è¡šã§ã¯ãMWIPSã®2è¡ç®ãäžè¬çãªææšã§ãã
CoreMarkãšã¯ç°ãªããWhetstoneã¯1ã€ã®ã³ã¢ã§æ¯èŒãããŸããããã®å Žåã¯1ã€ã®ãã«ãã»ã«ã§æ¯èŒãããŸãã ã³ã¢ã®æ°ã¯ããã»ããµããšã«éåžžã«ç°ãªããããå®éšã®çŽåºŠã®ããã«ãã¡ã¬ãã«ããããã®ææšãèæ ®ããŸãã
ç ¥ç³ã¹ã³ã¢ã«ãŒãïŒ
CPU | MultiClet R1 | MultiClet S1 | Core i7 4820K | ARM v8-A53 |
---|---|---|---|---|
åšæ³¢æ°ãMHz | 100 | 1600 | 3900 | 1300 |
MWIPS / MHz | 0.311 | 0.343 | 0.887 | 0.642 |
MFLOPS1 / MHz | 0.157 | 0.156 | 0.341 | 0.268 |
MFLOPS2 / MHz | 0.153 | 0.111 | 0.308 | 0.241 |
MFLOPS3 / MHz | 0.029 | 0.124 | 0.167 | 0.239 |
COS MOPS / MHz | 0.018 | 0.008 | 0.023 | 0.028 |
EXP MOPS / MHz | 0.008 | 0.005 | 0.014 | 0.004 |
FIXPT MOPS / MHz | 0.714 | 0.116 | 0.998 | 1.197 |
IF MOPS / MHz | 0.081 | 0.196 | 1.504 | 1.436 |
EQUAL MOPS / MHz | 0.143 | 0.149 | 0.251 | 0.439 |
Whetstoneã«ã¯CoreMarkãããã¯ããã«çŽæ¥çãªèšç®æäœãå«ãŸããŠããããïŒä»¥äžã®ã³ãŒããèŠããšéåžžã«é¡èã§ãïŒãããã§èŠããŠããããšãéèŠã§ãïŒæµ®åå°æ°ç¹ALUã®æ°ã¯ååã«ãªããŸãã ãã ããR1ãšæ¯èŒããŠãèšç®é床ã¯ã»ãšãã©åœ±é¿ãåããŸããã§ããã
äžéšã®ã¢ãžã¥ãŒã«ã¯ããã«ãã»ã«ã©ãŒã¢ãŒããã¯ãã£ã«éåžžã«é©ããŠããŸãã ããšãã°ãã¢ãžã¥ãŒã«2ã¯ãµã€ã¯ã«ã§å€ãã®å€ãã«ãŠã³ãããããã»ããµãŒãšã³ã³ãã€ã©ãŒã®äž¡æ¹ã«ããå粟床浮åå°æ°ç¹æ°ã®å®å šãªãµããŒãã®ãããã§ãã³ã³ãã€ã«åŸããã«ãã»ã«ã©ãŒã¢ãŒããã¯ãã£ã®èšç®èœåãæ¬åœã«æããã«ãã倧ããçŸãã段èœãååŸããŸãã
120ããŒã çšã®å€§ãããŠçŸãã段èœ
pa: SR4 := loadu_q [#SP + 16] SR5 := loadu_q [#SP + 8] SR6 := loadu_l [#SP + 4] SR7 := loadu_l [#SP] setjf_l @0, @SR7 SR8 := add_l @SR6, 0x8 SR9 := add_l @SR6, 0x10 SR10 := add_l @SR6, 0x18 SR11 := loadu_q [@SR6] SR12 := loadu_q [@SR8] SR13 := loadu_q [@SR9] SR14 := loadu_q [@SR10] SR15 := add_d @SR11, @SR12 SR11 := add_d @SR15, @SR13 SR15 := sub_d @SR11, @SR14 SR11 := mul_d @SR15, @SR5 SR15 := add_d @SR12, @SR11 SR12 := sub_d @SR15, @SR13 SR15 := add_d @SR14, @SR12 SR12 := mul_d @SR15, @SR5 SR15 := sub_d @SR11, @SR12 SR16 := sub_d @SR12, @SR11 SR17 := add_d @SR11, @SR12 SR11 := add_d @SR13, @SR15 SR13 := add_d @SR14, @SR11 SR11 := mul_d @SR13, @SR5 SR13 := add_d @SR16, @SR11 SR15 := add_d @SR17, @SR11 SR16 := add_d @SR14, @SR13 SR13 := div_d @SR16, @SR4 SR14 := sub_d @SR15, @SR13 SR15 := mul_d @SR14, @SR5 SR14 := add_d @SR12, @SR15 SR12 := sub_d @SR14, @SR11 SR14 := add_d @SR13, @SR12 SR12 := mul_d @SR14, @SR5 SR14 := sub_d @SR15, @SR12 SR16 := sub_d @SR12, @SR15 SR17 := add_d @SR15, @SR12 SR15 := add_d @SR11, @SR14 SR11 := add_d @SR13, @SR15 SR14 := mul_d @SR11, @SR5 SR11 := add_d @SR16, @SR14 SR15 := add_d @SR17, @SR14 SR16 := add_d @SR13, @SR11 SR11 := div_d @SR16, @SR4 SR13 := sub_d @SR15, @SR11 SR15 := mul_d @SR13, @SR5 SR13 := add_d @SR12, @SR15 SR12 := sub_d @SR13, @SR14 SR13 := add_d @SR11, @SR12 SR12 := mul_d @SR13, @SR5 SR13 := sub_d @SR15, @SR12 SR16 := sub_d @SR12, @SR15 SR17 := add_d @SR15, @SR12 SR15 := add_d @SR14, @SR13 SR13 := add_d @SR11, @SR15 SR14 := mul_d @SR13, @SR5 SR13 := add_d @SR16, @SR14 SR15 := add_d @SR17, @SR14 SR16 := add_d @SR11, @SR13 SR11 := div_d @SR16, @SR4 SR13 := sub_d @SR15, @SR11 SR4 := loadu_q @SR4 SR5 := loadu_q @SR5 SR6 := loadu_q @SR6 SR7 := loadu_q @SR7 SR15 := mul_d @SR13, @SR5 SR8 := loadu_q @SR8 SR9 := loadu_q @SR9 SR10 := loadu_q @SR10 SR13 := add_d @SR12, @SR15 SR12 := sub_d @SR13, @SR14 SR13 := add_d @SR11, @SR12 SR12 := mul_d @SR13, @SR5 SR13 := sub_d @SR15, @SR12 SR16 := sub_d @SR12, @SR15 SR17 := add_d @SR15, @SR12 SR15 := add_d @SR14, @SR13 SR13 := add_d @SR11, @SR15 SR14 := mul_d @SR13, @SR5 SR13 := add_d @SR16, @SR14 SR15 := add_d @SR17, @SR14 SR16 := add_d @SR11, @SR13 SR11 := div_d @SR16, @SR4 SR13 := sub_d @SR15, @SR11 SR15 := mul_d @SR13, @SR5 SR13 := add_d @SR12, @SR15 SR12 := sub_d @SR13, @SR14 SR13 := add_d @SR11, @SR12 SR12 := mul_d @SR13, @SR5 SR13 := sub_d @SR15, @SR12 SR16 := sub_d @SR12, @SR15 SR17 := add_d @SR15, @SR12 SR15 := add_d @SR14, @SR13 SR13 := add_d @SR11, @SR15 SR14 := mul_d @SR13, @SR5 SR13 := add_d @SR16, @SR14 SR15 := add_d @SR17, @SR14 SR16 := add_d @SR11, @SR13 SR11 := div_d @SR16, @SR4 SR13 := sub_d @SR15, @SR11 SR15 := mul_d @SR13, @SR5 SR13 := add_d @SR12, @SR15 SR12 := sub_d @SR13, @SR14 SR13 := add_d @SR11, @SR12 SR12 := mul_d @SR13, @SR5 SR13 := sub_d @SR15, @SR12 SR16 := sub_d @SR12, @SR15 SR17 := add_d @SR14, @SR13 SR13 := add_d @SR11, @SR17 SR14 := mul_d @SR13, @SR5 SR5 := add_d @SR16, @SR14 SR13 := add_d @SR11, @SR5 SR5 := div_d @SR13, @SR4 wr_q @SR15, @SR6 wr_q @SR12, @SR8 wr_q @SR14, @SR9 wr_q @SR5, @SR10 complete
ããã
ïŒã³ã³ãã€ã©ã«é¢ä¿ãªãïŒã¢ãŒããã¯ãã£èªäœã®ç¹æ§ãåæ ããããã«ãã¢ãŒããã¯ãã£ã®ãã¹ãŠã®æ©èœãèæ ®ããŠã¢ã»ã³ãã©ãŒã§èšè¿°ããããã®ã枬å®ããŸãã ããšãã°ã512ãããæ°ïŒpopcntïŒã®åäœããããã«ãŠã³ãããŸãã ããããããããããã«ã1ã€ã®ãã«ãã»ã«ã®çµæã䜿çšããŠãR1ãšæ¯èŒã§ããããã«ããŸãã
æ¯èŒè¡šã32ãããèšç®ãµã€ã¯ã«ãããã®ã¯ããã¯ãµã€ã¯ã«æ°ïŒ
ã¢ã«ãŽãªãºã | ãã«ãã¯ã¬ããr1 | ãã«ãã¯ã¬ããS1ïŒ1ã€ã®ãã«ãã»ã«ïŒ |
---|---|---|
Bithacks | 5.0 | 2.625 |
ããã§ã¯æ°ããæŽæ°ããããã¯ãã«åœä»€ã䜿çšããããããR1ã¢ã»ã³ãã©ãŒã§å®è£ ãããåãã¢ã«ãŽãªãºã ãšæ¯èŒããŠãåœä»€ã®æ°ãååã«ã§ããŸããã äœæ¥é床ã¯ãããããã»ãŒ2åã«å¢å ããŸããã
ããã
bithacks: b0 := patch_q 0x1, 0x1 v0 := loadu_q [v] v1 := loadu_q [v+8] v2 := loadu_q [v+16] v3 := loadu_q [v+24] v4 := loadu_q [v+32] v5 := loadu_q [v+40] v6 := loadu_q [v+48] v7 := loadu_q [v+56] b1 := patch_q 0x55555555, 0x55555555 i00 := slr_pl @v0, @b0 i01 := slr_pl @v1, @b0 i02 := slr_pl @v2, @b0 i03 := slr_pl @v3, @b0 i04 := slr_pl @v4, @b0 i05 := slr_pl @v5, @b0 i06 := slr_pl @v6, @b0 i07 := slr_pl @v7, @b0 b2 := patch_q 0x33333333, 0x33333333 i10 := and_q @i00, @b1 i11 := and_q @i01, @b1 i12 := and_q @i02, @b1 i13 := and_q @i03, @b1 i14 := and_q @i04, @b1 i15 := and_q @i05, @b1 i16 := and_q @i06, @b1 i17 := and_q @i07, @b1 b3 := patch_q 0x2, 0x2 i20 := sub_pl @v0, @i10 i21 := sub_pl @v1, @i11 i22 := sub_pl @v2, @i12 i23 := sub_pl @v3, @i13 i24 := sub_pl @v4, @i14 i25 := sub_pl @v5, @i15 i26 := sub_pl @v6, @i16 i27 := sub_pl @v7, @i17 i30 := and_q @i20, @b2 i31 := and_q @i21, @b2 i32 := and_q @i22, @b2 i33 := and_q @i23, @b2 i34 := and_q @i24, @b2 i35 := and_q @i25, @b2 i36 := and_q @i26, @b2 i37 := and_q @i27, @b2 i40 := slr_pl @i20, @b3 i41 := slr_pl @i21, @b3 i42 := slr_pl @i22, @b3 i43 := slr_pl @i23, @b3 i44 := slr_pl @i24, @b3 i45 := slr_pl @i25, @b3 i46 := slr_pl @i26, @b3 i47 := slr_pl @i27, @b3 b4 := patch_q 0x4, 0x4 i50 := and_q @i40, @b2 i51 := and_q @i41, @b2 i52 := and_q @i42, @b2 i53 := and_q @i43, @b2 i54 := and_q @i44, @b2 i55 := and_q @i45, @b2 i56 := and_q @i46, @b2 i57 := and_q @i47, @b2 i60 := add_pl @i50, @i30 i61 := add_pl @i51, @i31 i62 := add_pl @i52, @i32 i63 := add_pl @i53, @i33 i64 := add_pl @i54, @i34 i65 := add_pl @i55, @i35 i66 := add_pl @i56, @i36 i67 := add_pl @i57, @i37 b5 := patch_q 0xf0f0f0f, 0xf0f0f0f i70 := slr_pl @i60, @b4 i71 := slr_pl @i61, @b4 i72 := slr_pl @i62, @b4 i73 := slr_pl @i63, @b4 i74 := slr_pl @i64, @b4 i75 := slr_pl @i65, @b4 i76 := slr_pl @i66, @b4 i77 := slr_pl @i67, @b4 b6 := patch_q 0x1010101, 0x1010101 i80 := add_pl @i70, @i60 i81 := add_pl @i71, @i61 i82 := add_pl @i72, @i62 i83 := add_pl @i73, @i63 i84 := add_pl @i74, @i64 i85 := add_pl @i75, @i65 i86 := add_pl @i76, @i66 i87 := add_pl @i77, @i67 b7 := patch_q 0x18, 0x18 i90 := and_q @i80, @b5 i91 := and_q @i81, @b5 i92 := and_q @i82, @b5 i93 := and_q @i83, @b5 i94 := and_q @i84, @b5 i95 := and_q @i85, @b5 i96 := and_q @i86, @b5 i97 := and_q @i87, @b5 iA0 := mul_pl @i90, @b6 iA1 := mul_pl @i91, @b6 iA2 := mul_pl @i92, @b6 iA3 := mul_pl @i93, @b6 iA4 := mul_pl @i94, @b6 iA5 := mul_pl @i95, @b6 iA6 := mul_pl @i96, @b6 iA7 := mul_pl @i97, @b6 iB0 := slr_pl @iA0, @b7 iB1 := slr_pl @iA1, @b7 iB2 := slr_pl @iA2, @b7 iB3 := slr_pl @iA3, @b7 iB4 := slr_pl @iA4, @b7 iB5 := slr_pl @iA5, @b7 iB6 := slr_pl @iA6, @b7 iB7 := slr_pl @iA7, @b7 wr_q @iB0, c wr_q @iB1, c+8 wr_q @iB2, c+16 wr_q @iB3, c+24 wr_q @iB4, c+32 wr_q @iB5, c+40 wr_q @iB6, c+48 wr_q @iB7, c+56 complete
ã€ãŒãµãªã¢ã
ãã¡ããããã³ãããŒã¯ã¯åªããŠããŸãããç¹å®ã®ã¿ã¹ã¯ããããŸããèšç®ã®ã¢ã¯ã»ã©ã¬ãŒã¿ãäœæããããšã§ããå®éã®ã¿ã¹ã¯ãã©ã®ããã«åŠçããããç¥ãããšã¯çŽ æŽãããããšã§ãã ãã€ãã³ã°ã¢ã«ãŽãªãºã ã¯ããŸããŸãªããã€ã¹ã§å®è¡ããããããæ¯èŒã®ãã³ãããŒã¯ãšããŠæ©èœãããããææ°ã®æå·é貚ã¯ãã®ãããªæ€èšŒã«æé©ã§ãã ã€ãŒãµãªã¢ã ãšããã€ãã³ã°ããã€ã¹ã§çŽæ¥å®è¡ãããEthashã¢ã«ãŽãªãºã ããå§ããŸããã
ã€ãŒãµãªã¢ã ã®éžæã¯ã次ã®èæ ®äºé ã«ãããã®ã§ããã ãåç¥ã®ããã«ããããã³ã€ã³ãªã©ã®ã¢ã«ãŽãªãºã ã¯å°çšã®ASICãããã«ãã£ãŠéåžžã«å¹ççã«å®è£ ãããŠããããããããã³ã€ã³ãšãã®ã¯ããŒã³ããã€ãã³ã°ããããã®ããã»ããµãŸãã¯ãããªã«ãŒãã®äœ¿çšã¯ãäœããã©ãŒãã³ã¹ãšé«é»åæ¶è²»ã®ããã«çµæžçã«äžå©ã«ãªããŸãã é±å€«ã®ã³ãã¥ããã£ã¯ããã®ç¶æ³ããéããããšããŠãä»ã®ã¢ã«ãŽãªãºã åçã«åºã¥ããŠæå·é貚ãéçºãããã€ãã³ã°ã«æ±çšããã»ããµãŒãŸãã¯ãããªã«ãŒãã䜿çšããã¢ã«ãŽãªãºã ã®éçºã«çŠç¹ãåœãŠãŠããŸãã ãã®åŸåã¯ä»åŸãç¶ãå¯èœæ§ããããŸãã ã€ãŒãµãªã¢ã ã¯ããã®ã¢ãããŒãã«åºã¥ããæãæåãªæå·é貚ã§ãã ã€ãŒãµãªã¢ã ããã€ãã³ã°ããããã®äž»ãªããŒã«ã¯ãããªã«ãŒãã§ããããã¯ãå¹çïŒããã·ã¥ã¬ãŒã/ TDPïŒã®ç¹ã§ãæ±çšããã»ããµãããïŒæ°åïŒå è¡ããŠããŸãã
Ethashã¯ãããããã¡ã¢ãªããŠã³ãã¢ã«ãŽãªãºã ã§ãã ãã®èšç®æéã¯ãèšç®èªäœã®é床ã§ã¯ãªããäž»ã«ã¡ã¢ãªã®éãšé床ã«ãã£ãŠå¶éãããŸãã ã€ãŒãµãªã¢ã ãã€ãã³ã°ã§ã¯ããããªã«ãŒããæé©ã§ãããå€ãã®æäœãåæã«å®è¡ããèœåã¯ããŸã圹ã«ç«ã¡ãŸããããŸãã ãã®èšäºã§æããã«ç€ºãããŠããRAMã®é床ã«äŸåããŠããŸã ã ãããããã¢ã«ãŽãªãºã ã®åäœã瀺ãåçãæ®ã£ãŠããããèµ·ããçç±ã説æã§ããŸãã
![](https://habrastorage.org/webt/y-/gg/t5/y-ggt5p2hd3w2vn1hzddmhwmq3u.png)
ãã®èšäºã§ã¯ã¢ã«ãŽãªãºã ã6ã€ã®ãã€ã³ãã«åããŠããŸãããããã«æ確ã«ããããã«3ã€ã®æ®µéãåºå¥ã§ããŸãã
- éå§ïŒå ã®128ãã€ãã®Mix 0ïŒãã€ã³ã1ïŒãèšç®ããSHA-3ïŒ512ïŒ
- 次ã®128ãã€ããèªã¿åããããã·ã³ã°æ©èœãä»ããŠåã®ãã€ããšæ··åããåèš8ãããã€ãã«ãªãããã«ãMixé åã64ååèšç®ããŸãïŒæ®µèœ2ã4ïŒ
- çµæã®ç¢ºå®ãšæ€èšŒ
RAMããã©ã³ãã ãª128ãã€ããèªã¿åãã«ã¯ãäºæ³ããã¯ããã«æéãããããŸãã 2048å°ã®ã³ã³ãã¥ãŒãã£ã³ã°ããã€ã¹ãšæ倧ã¡ã¢ãªåž¯åå¹ 211.2 GB / sã®MSI RX 470ã°ã©ãã£ãã¯ã«ãŒãã䜿çšããå Žåãåããã€ã¹ã«è£ åããã«ã¯1 /ïŒ211.2 GB /ïŒ128 b * 2048ïŒïŒ= 1241 nsããŸãã¯çŽ1496ãå¿ èŠã§ãæå®ã®åšæ³¢æ°ã§ãµã€ã¯ã«ããŸãã ããã·ã³ã°é¢æ°ã®ãµã€ãºãèãããšãåä¿¡ããæ å ±ãåèšç®ããããããããªã«ãŒãã®ã¡ã¢ãªãèªã¿åãã®ã«æ°åæéãããããšæ³å®ã§ããŸãã ãã®çµæãã¢ã«ãŽãªãºã ã®ã¹ããŒãž2ã«ã¯å€ãã®æéãããããã¹ããŒãž1ããã³3ãããå€ãã®æéãããããŸãïŒäž»ã«SHA-3ã§ïŒã ãã®ãããªã«ãŒãã®ããã·ã¥ã¬ãŒããèŠãããšãã§ããŸãïŒçè«äžã®26.375ã¡ã¬ã·ã£ã·ãŒïŒã¡ã¢ãªåž¯åå¹ ã«ãã£ãŠã®ã¿å¶éïŒå¯Ÿå®éã®24ã¡ã¬ã·ã£ã·ãŒ/ç§ãã€ãŸããã¹ããŒãž1ãš3ã¯10ïŒ ã®æéããããããŸããã
S1ã§ã¯ã16åã®ãã«ãã»ã«ãã¹ãŠã䞊è¡ããŠç°ãªãã³ãŒãã§åäœã§ããŸãã ããã«ã8ã€ã®ãã«ãã»ã«çšã®1ã€ã®ãã£ãã«ã«æ²¿ã£ãŠããã¥ã¢ã«ãã£ãã«RAMãã€ã³ã¹ããŒã«ãããŸãã Ethashã¢ã«ãŽãªãºã ã®ã¹ããŒãž2ã§ã®èšç»ã¯æ¬¡ã®ãšããã§ãã1ã€ã®ãã«ãã»ã«ãã¡ã¢ãªãã128ãã€ããèªã¿åãããããã®åã«ãŠã³ããéå§ãã次ã«æ¬¡ã®ãã«ãã»ã«ãã¡ã¢ãªãèªã¿åããåã«ãŠã³ãããŸãã 1ã€ã®ãã«ãã»ã«ã¯ã128ãã€ãã®ã¡ã¢ãªãèªã¿åã£ãåŸãé åãåèšç®ããããã«7 * [128ãã€ãã®èªã¿åãæé]ãæã£ãŠããŸãã ãã®ãããªèªã¿åãã«ã¯16ãµã€ã¯ã«ãã€ãŸã åéèšã®ããã«112ã®æž¬å®ãè¡ãããŸãã ããã·ã³ã°é¢æ°ã®èšç®ã«ã¯ã»ãŒåãã¯ããã¯ãµã€ã¯ã«ãããããããS1ã¯ã¡ã¢ãªåž¯åå¹ ãšããã»ããµããã©ãŒãã³ã¹ã®çæ³çãªæ¯çã«è¿ããªããŸãã 2çªç®ã®æ®µéã§ã¯æéãç¡é§ã«ãªããªããããã¢ã«ãŽãªãºã ã®æ®ãã®éšåã¯ãããã©ãŒãã³ã¹ã«å®éã«åœ±é¿ãããããå¯èœãªéãæé©åããå¿ èŠããããŸãã
SHA-3ïŒKeccakïŒã®èšç®é床ãè©äŸ¡ããããã«ãCèšèªããã°ã©ã ãéçºããã³ãã¹ããããããã«åºã¥ããŠã¢ã»ã³ãã©ãŒã§ã®æé©ãªããŒãžã§ã³ãçŸåšäœæãããŠããŸããè©äŸ¡ããã°ã©ãã³ã°ã¯ã1ã€ã®ãã«ãã»ã«ã1550ã¯ããã¯ãµã€ã¯ã«ã§SHA-3ïŒã±ãã«ïŒèšç®ãå®è¡ããããšã瀺ããŠããŸãããããã£ãŠã1ã€ã®ãã«ãã»ã«ã§1ã€ã®ããã·ã¥ãèšç®ããããã®åèšæéã¯ã1550 + 64 *ïŒ16 + 112ïŒ= 9742ãµã€ã¯ã«ã«ãªããŸãã1.6 GHzã®åšæ³¢æ°ãš16åã®äžŠåãã«ãã»ã«ã§ãããã»ããµã®ããã·ã¥ã¬ãŒãã¯2.6 MHash / sã«ãªããŸãã
å éåš | MultiClet S1 | NVIDIA GeForce GTX 980 Ti | Radeon RX 470 | Radeon RX Vega 64 | NVIDIA GeForce GTX 1060 | NVIDIA GeForce GTX 1080 Ti |
---|---|---|---|---|---|---|
äŸ¡æ Œ | 650ãã« | 180ãã« | 500ãã« | 300ãã« | 700ãã« | |
ããã·ã¥ã¬ãŒã | 2.6 MHash / s | 21.6 MHash / s | 25.8 MHash / s | 43.5 MHash / s | 25 MHash / s | 55 MHash / s |
TDP | 6 W | 250 W | 120 W | 295 W | 120 W | 250 W |
ããã·ã¥ã¬ãŒã/ TDP | 0.43 | 0.09 | 0.22 | 0.15 | 0.22 | 0.21 |
ããã»ã¹æè¡ | 28 nm | 28 nm | 14 nm | 14 nm | 16 nm | 16 nm |
MultiClet S1ããã€ãã³ã°ããŒã«ãšããŠäœ¿çšããå Žåã20å以äžã®ããã»ããµãå®éã«ããŒãã«ã€ã³ã¹ããŒã«ã§ããŸãããã®å Žåããã®ãããªããŒãã®ããã·ã¥ã¬ãŒãã¯æ¢åã®ãããªã«ãŒãã®ããã·ã¥ã¬ãŒããšåãããããããé«ããªããŸãããS1ãæèŒããããŒãã®æ¶è²»é»åã¯ã16ããã³14 nmã®å°åœ¢æšæºãåãããããªã«ãŒãã®æ¶è²»é»åãããååã«ãªããŸãã
çµè«ãšããŠãçŸåšã®äž»ãªã¿ã¹ã¯ã¯ããã«ãã»ã«ã©ãŒæå·é貚ãã€ããŒããã³ã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãã€ããŒåãã®ãã«ãããã»ããµãŒããŒãã®è£œé ã§ãããšèšããªããã°ãªããŸãããæ¶è²»é»åãšã¢ãŒããã¯ãã£ãå°ãããããä»»æã®ã³ã³ãã¥ãŒãã£ã³ã°ã«é©ãã競äºåãå®çŸããäºå®ã§ãã
ããã»ããµã¯ãŸã éçºäžã§ãããã¢ã»ã³ããªèšèªã§ããã°ã©ãã³ã°ãéå§ããããã³ã³ãã€ã©ã®çŸåšã®ããŒãžã§ã³ãè©äŸ¡ãããã§ããŸããã¢ã»ã³ãã©ãŒããªã³ã«ãŒãã³ã³ãã€ã©ãŒãããã³æ©èœã¢ãã«ãå«ãæå°éã®SDKããã§ã«ããããããã䜿çšããŠããã°ã©ã ãéå§ããã³ãã¹ãã§ããŸãã