ΠΠ½ΡΡΠΈΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΎΠΉ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΠΈ Π½Π°ΡΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΠΏΡΠΎΠ΅ΠΊΡ XiangShan, Ρ 2020 Π³ΠΎΠ΄Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΠΉ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΡΠΊΡΡΡΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ RISC-V (RV64GC). ΠΠ°ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΡΠΊΡΡΡΡ ΠΏΠΎΠ΄ ΠΏΠ΅ΡΠΌΠΈΡΡΠΈΠ²Π½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MulanPSL 2.0.
ΠΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Chisel, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² Verilog, ΡΡΠ°Π»ΠΎΠ½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π±Π°Π·Π΅ FPGA ΠΈ ΠΎΠ±ΡΠ°Π·Ρ Π΄Π»Ρ ΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠΈΠΏΠ° Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Verilog-ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅ Verilator. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΡ Π΅ΠΌΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ (Π²ΡΠ΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ 400 Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ 50 ΡΡΡΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°), Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΊΠΈΡΠ°ΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π»ΠΎΠ½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π±Π°Π·Π΅ FPGA, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Debian GNU/Linux.
XiangShan ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° RISC-V, ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ SiFive P550. Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ FPGA ΠΈ Π²ΡΠΏΡΡΡΠΈΡΡ ΠΏΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ «Yanqi Lake» 8-ΡΠ΄Π΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΡΠΈΠΏΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° ΡΠ°ΡΡΠΎΡΠ΅ 1.3 GHz ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΠ½Π½ΡΠΉ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ TSMC Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° 28nm. Π§ΠΈΠΏ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΊΡΡ 2ΠΠ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ DDR4 (Π΄ΠΎ 32GB ΠΠΠ£) ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ PCIe-3.0-x4.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π² ΡΠ΅ΡΡΠ΅ SPEC2006 ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ Π² 7/Ghz, ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΠΏΠ°ΠΌ ARM Cortex-A72 ΠΈ Cortex-A73. ΠΠΎ ΠΊΠΎΠ½ΡΠ° Π³ΠΎΠ΄Π° Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° «South Lake» Ρ ΡΠ»ΡΡΡΠ΅Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ SMIC Ρ ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ 14nm ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΡΠΎΡΡ Π΄ΠΎ 2 GHz. ΠΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° Π² ΡΠ΅ΡΡΠ΅ SPEC2006 ΡΠΎΡΡΠ°Π²ΠΈΡ 10/Ghz, ΡΡΠΎ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌ ARM Cortex-A76 ΠΈ Intel Core i9-10900K, ΠΈ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ SiFive P550, ΡΠ°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ CPU RISC-V, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ 8.65/Ghz.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ RISC-V ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠΊΡΡΡΡΡ ΠΈ Π³ΠΈΠ±ΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ
ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ ΡΡΠ΅Π±ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ Π½Π΅ Π½Π°Π»Π°Π³Π°Ρ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. RISC-V ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΡΡΡΡΠ΅ SoC ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π±Π°Π·Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ RISC-V ΡΠ°Π·Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΏΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌΠΈ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠΌΠΈ (BSD, MIT, Apache 2.0) ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΡΡΡΠΊΠΎΠ² Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ΄Π΅Ρ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², SoC ΠΈ ΡΠΆΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΡ
ΡΠΈΠΏΠΎΠ². ΠΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ RISC-V ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Linux (ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²ΡΠΏΡΡΠΊΠΎΠ² Glibc 2.27, binutils 2.30, gcc 7 ΠΈ ΡΠ΄ΡΠ° Linux 4.15) ΠΈ FreeBSD.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru