[RISC-V как предел софткорного процессоростроения]. Текущие результаты капиталистического соревнования. Плотность кода RISC-V очень хорошая по меркам сегодняшнего дня.
1. Плотность кода RISC-V как у Cortex-M3
http://caxapa.ru/836107.html
2. f32c retargetable 32-bit processor core RISC-V or MIPS показал, что плотность кода у RISC-V почти как у некоего подмножества MIPS. Стр. 6 презентации
http://caxapa.ru/835933.html
3. Есть сжатая система команд RISC-V RVC, экономит 30%. У MIPS то же самое
http://caxapa.ru/836094.html
4. Особняком стоят стековые процессоры, ZPU как один из. Авторы порта GCC на ZPU говорят, что у него код 10-15% плотнее, чем у ARMv7m, но эффективность компилятора там невысока по причине эмуляции 4-х регистров на стеке. Потенциально у стековых процов плотность кода запредельная.
FPGA реализации RISC-V и стековых процов имеют самые маленькие размеры и приемлемую скорость.
1.
ZPU http://caxapa.ru/835702.html - он особняком. Spartan-6 639 LUT 100 MHz 0.5 DMIPS/MHz или 1162 LUT 80 MHz 2.6 DMIPS/MHz
2.
VexRiscv http://caxapa.ru/835960.html самый мелкий Cyclone IV - 190 Mhz 673 LUT 529 FF - 0.52 DMIPS/Mhz, самый толстый без MMU - 84 Mhz 2,642 LUT 1,711 FF - 1.44 DMIPS/Mhz, 16KB-I$,16KB-D$, single cycle barrel shifter, debug module, catch exceptions, dynamic branch prediction in the fetch stage, branch and shift operations done in the Execute stage
3.
f32c http://caxapa.ru/835929.html CPU + 1 UART 1048 6-input LUTs 3.06 CoreMark/MHz and 1.63 DMIPS/MHz. Минимальный вариант 697 LUT.
4.
uRV (Micro RISC-V)
http://caxapa.ru/655544.html GPIO port, UART and 64 kilobytes of RAM 1210 LUTs, 954 FFs, 34 Block RAMs and 3 DSP cells on a Spartan-6 series FPGA, achieving a clock speed of 100 MHz (toolchain set up to minimize area).
5.
PicoRV32 http://caxapa.ru/830514.html все данные для 7 серии Xilinx
PicoRV32 (small): The picorv32 module without counter instructions, without two-stage shifts, with externally latched mem_rdata, and without catching of misaligned memory accesses and illegal instructions.
PicoRV32 (regular): The picorv32 module in its default configuration.
PicoRV32 (large): The picorv32 module with enabled PCPI, IRQ, MUL, DIV, BARREL_SHIFTER, and COMPRESSED_ISA features.
Core Variant LUTs LUTs as Memory Slice Registers
PicoRV32 (small) 761 48 442
PicoRV32 (regular) 917 48 583
PicoRV32 (large) 2019 88 1085
Таким образом,
минимальный софткор - 600 LUT-6 и 0.5 DMIPS/MHz ~ 50 DMIPS в реале
максимальный софткор - 1000-1200 LUT-6, 2000-2500 LUT-4 ~150 DMIPS в реале