ARM Cortex-A76๊ณผ ๊ฒฝ์Ÿํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• RISC-V ํ”„๋กœ์„ธ์„œ XiangShan์ด ์ค‘๊ตญ์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ค‘๊ตญ๊ณผํ•™์› ์ปดํ“จํ„ฐ ๊ธฐ์ˆ  ์—ฐ๊ตฌ์†Œ๋Š” 2020๋…„๋ถ€ํ„ฐ RISC-V ๋ช…๋ น์–ด ์„ธํŠธ ์•„ํ‚คํ…์ฒ˜(RV64GC)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ ์„ฑ๋Šฅ ๊ฐœ๋ฐฉํ˜• ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ฐœ๋ฐœํ•ด ์˜จ XiangShan ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ์€ ํ—ˆ์šฉ๋œ MulanPSL 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๊ณต๊ฐœ๋ฉ๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” FPGA ๊ธฐ๋ฐ˜ ์ฐธ์กฐ ๊ตฌํ˜„์ธ Verilog๋กœ ๋ณ€ํ™˜๋˜๋Š” Chisel ์–ธ์–ด์˜ ํ•˜๋“œ์›จ์–ด ๋ธ”๋ก์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ๊ฐœ๋ฐฉํ˜• Verilog ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ Verilator์—์„œ ์นฉ ์ž‘๋™์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ์„ค๋ช…๋„ ์ œ๊ณต๋˜์ง€๋งŒ(์ด 400๊ฐœ ์ด์ƒ์˜ ๋ฌธ์„œ์™€ 50๋งŒ ์ค„ ์ด์ƒ์˜ ์ฝ”๋“œ) ๋ฌธ์„œ์˜ ๋Œ€๋ถ€๋ถ„์€ ์ค‘๊ตญ์–ด๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Debian GNU/Linux๋Š” FPGA ๊ธฐ๋ฐ˜ ๊ตฌํ˜„์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ฐธ์กฐ ์šด์˜ ์ฒด์ œ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ARM Cortex-A76๊ณผ ๊ฒฝ์Ÿํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• RISC-V ํ”„๋กœ์„ธ์„œ XiangShan์ด ์ค‘๊ตญ์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

XiangShan์€ SiFive P550์„ ๋Šฅ๊ฐ€ํ•˜๋Š” ์ตœ๊ณ  ์„ฑ๋Šฅ์˜ RISC-V ์นฉ์ด๋ผ๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋‹ฌ์—๋Š” FPGA์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ์ฝ”๋“œ๋ช… "Yanqi Lake"๋ผ๋Š” 8nm ๊ณต์ • ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ TSMC์—์„œ ์ œ์กฐํ•˜๊ณ  1.3GHz์—์„œ ์ž‘๋™ํ•˜๋Š” 28์ฝ”์–ด ํ”„๋กœํ† ํƒ€์ž… ์นฉ์„ ์ถœ์‹œํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ์ด ์นฉ์—๋Š” 2MB ์บ์‹œ, DDR4 ๋ฉ”๋ชจ๋ฆฌ(์ตœ๋Œ€ 32GB RAM)๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ PCIe-3.0-x4 ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

SPEC2006 ํ…Œ์ŠคํŠธ์—์„œ ์ฒซ ๋ฒˆ์งธ ์นฉ์˜ ์„ฑ๋Šฅ์€ 7/Ghz๋กœ ์ถ”์ •๋˜๋ฉฐ ์ด๋Š” ARM Cortex-A72 ๋ฐ Cortex-A73 ์นฉ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๋ง๊นŒ์ง€ ๊ฐœ์„ ๋œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ–์ถ˜ ๋‘ ๋ฒˆ์งธ "South Lake" ํ”„๋กœํ† ํƒ€์ž…์˜ ์ƒ์‚ฐ์ด ๊ณ„ํš๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด ํ”„๋กœํ† ํƒ€์ž…์€ 14nm ๊ณต์ • ๊ธฐ์ˆ ๊ณผ 2GHz๋กœ ์ฃผํŒŒ์ˆ˜ ์ฆ๊ฐ€๋ฅผ ํ†ตํ•ด SMIC๋กœ ์ด์ „๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ํ”„๋กœํ† ํƒ€์ž…์€ SPEC2006 ํ…Œ์ŠคํŠธ์—์„œ 10/Ghz์˜ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š”๋ฐ, ์ด๋Š” ARM Cortex-A76 ๋ฐ Intel Core i9-10900K ํ”„๋กœ์„ธ์„œ์— ๊ฐ€๊น๊ณ , ๊ฐ€์žฅ ๋น ๋ฅธ RISC-V CPU์ธ SiFive P550๋ณด๋‹ค ์šฐ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. 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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€