RISC-V
èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãã®å®è£ ã®å¤æ´ãè¡ã£ã¦æ§è½ãããªã伸ã³ãããã«ãªã£ãã Coremarkã®ç°å¢ãæ§ç¯ãã¦æ¸¬å®ã§ããããã«ãã¦ãããæ大æ§æã§ã¯ã³ã³ãã¤ã«ã«æéããããã®ã§ã4種é¡ã®æ§æã§æ§è½ã測å®ããã ãã¨ã¯RV64ã«éå®ãã¦ãããITERâ¦
èªä½RISC-V CPUã³ã¢ã§æ§æãå¤ããªããæ§è½ã測å®ãã¦ãã (4. Dhrystoneå測å®)
èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãã®å®è£ ã®å¤æ´ãè¡ã£ã¦æ§è½ãããªã伸ã³ãããã«ãªã£ãã GShareã®å®è£ LDQ/STQã®ã¹ã±ã¸ã¥ã¼ãªã³ã°ã®èª¿æ´ ãã©ãã·ã¥ä¿¡å·ã®æé©å Dhrystoneã®ã³ã³ãã¤ã«ãªãã·ã§ã³æé©å ããããé å¼µã£ãçµæãStandardã³ã³ãã£ã°ã¬ã¼ã·â¦
èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãæ§æãæ¹åãã¦GShareåå²äºæ¸¬å¨ãæ£ããåãããã«ãªã£ãã GShareã®åä»ãªã¨ããã¯ãè¤æ°ã®å½ä»¤ããã§ããããéã«åæã«åå²äºæ¸¬ãããã®ãããªãé£ããã å®éåé¡ããªãè¤éãªè«çã«ãªã£ã¦ãã¾ãããããããã®ã¾ã¾â¦
èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãã®æ§æãå¤æ´ãã¦RASã®æ¹é ãè¡ã£ãã RASã®ã¬ã¤ãã³ã·ã¯å¤§ãããªã£ããå®å®ãã¦äºæ¸¬ã§ããããã«ãªã£ãã®ã§ãDhrystoneã測å®ãã¦ã¿ãã åã®è¨æ¸¬çµæããã®ãããªæãã ã Configuration IPC tiny 0.56 small 0.84 stanâ¦
èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãã®ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ã«ããã¦Dhrystoneãå®èµ°ããããã¨ãã§ãããããã«ãªã£ã¦ããã ãã¤ãã©ã¤ã³ãã¬ã¼ã¹ã®ãã°çæãå®è£ ãããåºæ¬ã¨ãã¦ã¯åã¢ã¸ã¥ã¼ã«ã®ãã¤ãã©ã¤ã³ã¹ãã¼ã¸æ¯ã«DPI-Cãéãã¦C++å´ã«æ å ±ãåâ¦
èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãã®ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ã«ããã¦Dhrystoneãå®èµ°ããããã¨ãã§ãããããã«ãªã£ã¦ããã ã¡ãã£ã¨ãã¤ãã©ã¤ã³ã®ããã«ããã¯ãè¦ããªãã®ã§ãPipeline Visualizerãå°å ¥ãã¦ã¿ããã¨ã«ããã 使ã£ã¦ã¿ãã®ã¯Kanataã¨ãâ¦
èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãã®ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ã«ããã¦Dhrystoneãå®èµ°ããããã¨ãã§ãããããã«ãªã£ã¦ããã ååã®çµæã«åºã¥ãã¦ãã©ã®é¨åã§ã¹ãã¼ã«ãçºçãã¦ãããã¨ããã®ããã§ãã¯ããã ã¾ããå½ä»¤ãããã¡ãåã¾ãåã£ã¦ããã¿ã¤â¦
èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãã®ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ã«ããã¦Dhrystoneãå®èµ°ããããã¨ãã§ãããããã«ãªã£ã¦ããã 次ã«ãã©ããããã«ããã¯ã«ãªã£ã¦ããã®ããè¦ã¦ã¿ãããã«ãããã¤ãæ§è½ãã³ãã¼ã追å ãããã¨ã«ããã åºæ¬çã«è¦ã¦ã¿ããã®â¦
èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãã®ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ã«ããã¦Dhrystoneãå®èµ°ããããã¨ãã§ãããããã«ãªã£ã¦ããã RASã®å®è£ ãå¤æ´ãã¦ããCALL/RETã§ã®åå²äºæ¸¬ãã¹ãæ¸ã£ãã®ã§å¤å°æ§è½ãä¸ãã£ãã¨æãã®ã ããä¹ ãã¶ãã«Dhrystoneã測å®ãã¦â¦
èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãã®ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ã«ããã¦Dhrystoneãå®èµ°ããããã¨ãã§ãããããã«ãªã£ã¦ããã RASã®å®è£ ãå¤æ´ãã¦ããCALL/RETã§ã®åå²äºæ¸¬ãã¹ãæ¸ã£ãã®ã§å¤å°æ§è½ãä¸ãã£ãã¨æãã®ã ããä¹ ãã¶ãã«Dhrystoneã測å®ãã¦â¦
æµ®åå°æ°ç¹å½ä»¤ã¨ã¬ã¸ã¹ã¿ããµãã¼ãããããã«ããªãã¼ã ã¨ç©çã¬ã¸ã¹ã¿ã®å®è£ ãå¤æ´ããã ç©çã¬ã¸ã¹ã¿ã«ã¤ãã¦ã¯ãx0(=ft0)ã¬ã¸ã¹ã¿ã«æ¸ãè¾¼ã¿ãã§ããããã«å¤æ´ãããã¾ãããªãã¼ã ã«ããã¦ã¯x0(=ft0)ããªãã¼ã ãå®è¡ããã æ±ç¨ã¬ã¸ã¹ã¿ã«å¯¾ããç¹â¦
æµ®åå°æ°ç¹å½ä»¤ããµãã¼ãããããã«ã¯ãã¾ãã¯ã¬ã¸ã¹ã¿ãã¡ã¤ã«ãããã¦æ¤è¨¼ç°å¢ã®æ´æ°ãå¿ è¦ã ã ã¾ããSpikeã«ãããFPUå½ä»¤ã®ãã¬ã¼ã¹ãã°ã®åãæ±ãã«ã¤ãã¦ã¯ãæµ®åå°æ°ç¹å½ä»¤ã¬ã¸ã¹ã¿ã¸ã®æ¸ãè¾¼ã¿ãè¡ãããã¨ãã¬ã¸ã¹ã¿ã®ç¨®é¡ã®ããããå¤æ´ããããâ¦
èªä½RISC-V CPUã³ã¢ã«æµ®åå°æ°ç¹å½ä»¤ããµãã¼ãããããæµ®åå°æ°ç¹å½ä»¤ã¯å¤§ããåãã¦å精度浮åå°æ°ç¹ã¨å精度浮åå°æ°ç¹å½ä»¤ããããããããã®å½ä»¤ã追å ãã¦ããã èªä½CPUã³ã¢ã§ã¯å½ä»¤å®ç¾©ãJSONã§ç®¡çãã¦ããã³ã¼ããèªåçæããããã«ãã¦ããã®ã§â¦
CVA6ã¯ãªã¼ãã³ã½ã¼ã¹ã®RISC-V CPUã³ã¢ã§ãChipyardã«ãçµã¿è¾¼ã¾ãã¦ããã¤ã³ãªã¼ããã¤ãã©ã¤ã³ã®CPUã ã CPUã®é¨åã¯ã½ã¼ã¹ã³ã¼ããèªããã¨ãã§ããããè¤éãªLSUããã£ãã·ã¥å¨ãã¯ã¡ããã¨Verilogã®å®è£ ãèªããã¨ããã¨æéãããã£ã¦ãã¾ããã¡ããã©â¦
ãã°ããããã°ãæ¸ãã¦ããªãã£ããä¹ ãã¶ãã«åéããã èªä½RISC-V CPUã³ã¢ã®æ¹ã¯ãããã¤ãã®ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ã«ããã¦Dhrystoneãå®èµ°ããããã¨ãã§ãããããã«ãªã£ã¦ãããæ§è½ã¯å°ããã»ãããé 調ã«ã¹ã±ã¼ãªã³ã°ãã¦ããããæ§æã大ãããã¦â¦
èªä½CPUã®ãããã°ãããããé²ãã¦ããã TLBã®åé¡ã«ã¤ãã¦ã¯ã¨ããããç½®ãã¦ããã¦ããã¹ããã¿ã³ãåãããªããåé¡ç¹ãæ´ãåºãã¦ããã ã¨ããããç°å¢çã®åé¡ãæ´ãåºãã¦ãåºæ¬çãªã±ã¼ã¹ã¯åããããªã¨ããã¾ã§ç´ãã¦ãã£ãã 巨大ãªã³ã³ãã£ã°ã¬â¦
riscv-torture(ã©ã³ãã ãã¹ããã¿ã³)ã¯ãã°ããã¡ã³ããã³ã¹ããã¦ããªãã£ãã®ã ããæè¿ã¢ãããã¼ãããã¦ä¸å¿makeãéãããã«ãªã£ãã èªä½CPUã®ã©ã³ãã ãã¹ããã¿ã³ã¨ãã¦ä½¿ç¨ãããã¨ã«ããã github.com RISC-V Tortureã®Configuration Tortureã®â¦
SonicBOOMã®åä½è§£æã次ã¯LSUã«ãããã¼ãå½ä»¤ã®åä½ãè¦ã¦ã¿ããããã¼ãå½ä»¤ã¯LSUã«ããçºè¡ãããããå½ä»¤èªä½ã¯æ´æ°ã¦ãããã¨ã¯å¥ã®ã¤ã·ã¥ã¼ã¦ãããã§çºè¡ãããã 以ä¸ã®ã¢ã»ã³ããªå½ä»¤ãå®è¡ãã¦æ³¢å½¢ãåå¾ããã .section .text .global simple_loâ¦
ååã®è§£æã§ãã¤ã·ã¥ã¼ã¦ãããã§å½ä»¤ãããµãã¦ãã¾ã£ãå ´åã«ã©ã®ããã«åä½ããã®ãã解æã§ããªãã£ããããã¤ãæ§æãå¤ãã¦æ°ããã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ãçæãã¦ã¿ãã StrangeBoomConfigã¨ããæ°ããã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ãä½ã£ã¦ãã®åä½ã確ããâ¦
次ã«ã以ä¸ã®ããã«ALUã®ãªã½ã¼ã¹ãä¸æ°ã«ä½¿ãåããããªã³ã¼ããè¦ã¦ã¿ãããããã¯DispatcherãC.ADDIã8å½ä»¤ãã«ã«DispatchãããALUã®æ°ã足ããããã¹ã¦ã®å½ä»¤ãçºè¡ãããã¨ãã§ããªãå ´åã«Fetcherãã©ã®ããã«ãªãã¼ãããã®ãã観å¯ããã 00000000â¦
SonicBOOMã®ãã¶ã¤ã³ãèªã¿è§£ãã¦ãããå¼ãç¶ã以ä¸ã®ãããªããã°ã©ã ãåããã¦å½ä»¤ãã§ããã£ã¼ã®åãã観å¯ãã¦ããã 000000008000322e <simple_add>: 8000322e: b0002573 csrr a0,mcycle 80003232: 301025f3 csrr a1,misa 80003236: 0205e593 ori a1,a1,32 800032</simple_add>â¦
SonicBOOMã®ãã¶ã¤ã³ãèªã¿è§£ãã¦ãããå°ãã¯ãªãã£ã«ã«ãªé¨åã«ã¤ãã¦è§£æããããã«ä»¥ä¸ã®ãããªããã°ã©ã ãåããã¦ã¿ããã 000000008000322e <simple_add>: 8000322e: b0002573 csrr a0,mcycle 80003232: 301025f3 csrr a1,misa 80003236: 0205e593 ori a1,a1,32 </simple_add>â¦
å¼ãç¶ãSonicBOOMã®ãã¶ã¤ã³ãèªãã§ãããSonicBOOMã§ã¯f3ã«ã¦ç°¡åãªãã³ã¼ããå®äºããã¨ãããã¯ã¨ã³ãã«å½ä»¤ã渡ãããããã®æã®ããã³ãã¨ã³ãã¨ããã¯ã¨ã³ãã®ã¤ã³ã¿ãã§ã¼ã¹ã¨ãã¦FetchBuffer(fb)ã«æ ¼ç´ããããFetchBufferããããã¯ã¨ã³ãã«å½ä»¤â¦
SonicBOOMã®ãã¶ã¤ã³ãèªãã§ããã次ã¯TLBã«ã¤ãã¦èª¿æ»ããã TLBã¯ä»®æ³ã¢ãã¬ã¹ããç©çã¢ãã¬ã¹ãå¼ãã¦ããããã®æ©æ§ãªã®ã ãããã¼ãã«ãµã¼ãé¨åã¯ä»¥ä¸ã®ãããªæ§æã«ãªã£ã¦ããã 1ã¤ã®ä»®æ³ã¢ãã¬ã¹ã«å¯¾ãã¦4-WAYåæã«æ ¼ç´ã§ããæ§æã«ãªã£ã¦ãããâ¦
RISC-Vã®OoOã³ã¢SonicBOOMã®ãã¶ã¤ã³ãèªã¿è§£ãã¦ãããããã³ãã¨ã³ãã®ãã¤ãã©ã¤ã³æ§æã«ã¤ãã¦èªã¿è§£ãã¦ããããã SonicBOOMã®ãã§ããé¨ã«ã¤ãã¦ã¯å¤§ã¾ãã«è¨ã£ã¦3ã¹ãã¼ã¸ã«åããã¦ããã¨è¨ã£ã¦è¯ãã s0ï¼ããã°ã©ã ã«ã¦ã³ã¿ããä»®æ³ã¢ãã¬ã¹ãå½â¦
SonicBOOMã®åºæ¬çãªæ§è½ãè¦ãããã«ã次ã¯Coremarkãå®è¡ãã¦ã¿ããã¨ã«ãããSonicBOOMã¯ãã©ã¡ã¼ã¿ã«å¿ãã¦ä»¥ä¸ã®æ§æãåããã¨ãã§ããã Coremarkã®ã½ã¼ã¹ã³ã¼ãã¨ã³ã³ãã¤ã«ã«ã¤ãã¦ã¯ã以ä¸ã®ãªãã¸ããªãæ´»ç¨ãããã¨ã«ãããããã©ã«ãã§ã¯Coremaâ¦
RISC-Vã®OoOã³ã¢ã§ããSonicBOOMã®ãã¶ã¤ã³ãåå¼·ãã¦ãããååã«ç¶ãã¦ã以ä¸ã®ãã¹ããã¿ã³ãç¨ãã¦ALUã®ãã¼ã¿ãã¹ãã©ã®ããã«ãã¦é¸æããã¦ããã®ãã観å¯ãã¦ããã .section .text .global simple_add simple_add: addi x10, x0, 1 addi x11, x10, â¦
SonicBOOMã®åºæ¬çãªæ§è½ãè¦ãããã«ãDhrystoneãå®è¡ãã¦ã¿ããã¨ã«ãããSonicBOOMã¯ãã©ã¡ã¼ã¿ã«å¿ãã¦ä»¥ä¸ã®æ§æãåããã¨ãã§ããã ãããã®æ§æã®éãã¯ãBOOMã®confix-mixins.scalaã«å®ç¾©ããã¦ãããGigaBoomConfigã¯ä»¥ä¸ã®ããã«å®ç¾©ããã¦ããâ¦
2020å¹´ãçµããã«è¿ã¥ãã¦ãããä»å¹´ã¯ã¨ã«ããã³ããã¦ã¤ã«ã¹ã«æ¯ãåãããæ¥ã ã ã£ãããã¾ãã¯ç¡äºã«2020å¹´ãçµãããã¨ãã§ãã¦è¯ãã£ãã¨æã£ã¦ããããã®èª¿åã§ããã¨æ¥å¹´ã¯ã©ããªãã®ãã¯æ³åãã¤ããªãããèªåã®ã¢ããã¼ã§ãããå¶å¾¡ã§ããªããã¨â¦
SonicBOOM (BOOMv3)ã®ãã¶ã¤ã³ãèªã¿è§£ãã¦ããããã¨æããã¾ãã¯ããã¤ãå°ããªãã¤ã¯ããã³ããã¼ã¯ããã°ã©ã ãæµãã¦ããã¼ã¿ãã¹ã®æµãã追ã£ã¦ããããã¨æãã ä¸çªåºæ¬ã¨ãªãã®ã¯å ç®ããã§ã¤ã³ã ãããä¾åé¢ä¿ã®å ç®ãé£ç¶ãã¦å®è¡ããã¨å ç®å¨ã®â¦