RISC-V супротив PowerPC
2026-04-20 21:29Сам я горячий поклонник RISC-V и считаю, что это лучшая компьютерная архитектура, придуманная человечеством. Но для программиста, насколько революционные изменения привнёс RISC-V по сравнению с предшественниками? Давайте сравним хотя бы с тем же PowerPC. Тоже ведь неплохая была архитектура. Возьмём простую программу на Си, скажем суммирование массива.
int sum(int *arr, int n) {
int s = 0;
for (int i = 0; i < n; i++) {
s += arr[i];
}
return s;
}
Перепишем эту программу на ассемблеры RISC-V и PowerPC, и сравним.Не то чтобы много различий можно углядеть. Условный переход делается в одну команду вместо двух. Остальное чисто разница мнемоник. Выходит, не такой уж оригинальный этот RISC-V как его превозносят.
# a0 = arr # a1 = n # return value in a0 sum: li t0, 0 # s = 0 li t1, 0 # i = 0 loop: bge t1, a1, done # if i >= n, exit slli t2, t1, 2 # offset = i * 4 add t3, a0, t2 # addr = arr + offset lw t4, 0(t3) # load arr[i] add t0, t0, t4 # s += arr[i] addi t1, t1, 1 # i++ j loop done: mv a0, t0 # return s ret# r3 = arr # r4 = n # return value in r3 sum: li r5, 0 # s = 0 li r6, 0 # i = 0 loop: cmpw r6, r4 # compare i, n bge done # if i >= n, exit slwi r7, r6, 2 # offset = i * 4 add r8, r3, r7 # addr = arr + offset lwz r9, 0(r8) # load arr[i] add r5, r5, r9 # s += arr[i] addi r6, r6, 1 # i++ b loop done: mr r3, r5 # return s blr # return
