> есть ли адекватная (по количеству софта хотя бы) альтернатива?
По кол-ву закрытого софта - нет. НО это не всем надо.
А ещё нет адекватной альтернативы по доступности и соотношению цена/скорость при некоторой желательной минимальной скорости. А вот это уже намного хуже, чем отсутствие тех же виндов и софта под них.
если ты хотя бы раз брал в руки интеловский систем девелопер мануал, то ты бы не задавал таких вопросов, х86 невероятно разжирело за десятилетия существования из-за желания обеспечивать обратную совместимость со всеми своими предыдущими версиями
по количеству софта искать альтернативу набору инструкций глупо, потому что уже почти 40 лет на ассемблере пишут только те, кому очень надо
мысль и наполняющие ее заблуждения понятны - месье отождествляет набор инструкций с его реализацией
вряд ли кто-то сейчас будет спорить, что убогость х86 портит жизнь всего лишь навсего писателям микрокода х86-процов и разработчикам компиляторов и ядер ОС, т.е. весьма незначительной прослойке людей, гипотетический выигрыш в производительности, энергопотреблении и тепловыделении за счет выбрасывания с кристалла транслятора х86 в микроинструкции никого не интересует
Есть ли среди этих процессоров сравнимые скажем с Athlon X2 по скорости? На ARM я только мобильные устройства видел - не быстро отнюдь, Power - где его сейчас ставят? В маках был, но там сейчас Интел.
>Кстати, ни разу не видел книг по ассемблеру НЕ для Х86. Мне и сравнить-то не с чем...
Для RISC процов писать на асме могли только наркоманы. В Альфе было порядка 60 регистров, и комманды выглядели просто писецово.
.title div divides two arguments and returns the result
.data # Data section
temp1: .quad 0 # temporary variable
temp2: .quad 0 # temporary variable
temp3: .quad 0 # temporary variable
REGS = 1 # How many registers have to be saved
STACK = REGS # this registers will be put on the stack
FRAME = ((STACK*8+8)/16)*16 # Stack size
.text # text section
.align 4
.set noreorder # disallow rearrangements
.globl div # these 3 lines mark the
.ent div # mandatory function
div: # entry
ldgp $gp,0($27) # load the global pointer
lda $sp,-FRAME($sp) # load the stack pointer
stq $26,0($sp) # save our own exit address
.frame $sp,FRAME,$26,0 # describe the stack frame
.prologue 1
stq $16,temp1 # save register $16 (first argument)
stq $17,temp2 # save register $17 (second argument)
ldt $f2,temp1 # load 1st argument in floating point register
ldt $f3,temp2 # load 2nd argument in floating point register
cvtqt $f2,$f2 # convert integer to floating point
cvtqt $f3,$f3 # convert integer to floating point
divt $f2,$f3,$f4 # $f4 <-- $f2 / $f3
cvttq $f4,$f4 # convert floating point to integer
stt $f4,temp3 # store integer
ldq $0,temp3 # load integer in integer register
done: ldq $26,0($sp) # restore exit address
lda $sp,FRAME($sp) # Restore stack level
ret $31,($26),1 # Back to c-program
.end div # Mark end of function
> Есть ли среди этих процессоров сравнимые скажем с Athlon X2 по скорости?
А на ..я, пардон? Дальше кормить программистов, творения которых тормозят на 3GHz процессорах? Для многих, очень многих задач (начиная от домашнего роутера и офисной печатной машинки) скорость тех же ARM'ов выглядит вполне достаточной. Да, само собой про Word 2000+ речь не идёт.
Другой вопрос, толку от процессора очень мало, руками его не распаяешь, а готовых коробочек которые можно купить, включить, загрузить с подручного носителя и иметь результат, нет. Покупать D-Link'овский роутер ради процессора+материнки — это автогеном и через задницу.
x86 как и СISC вообще начал становится ненужным ещё до своего рождения - в 1969 году, когда появился C. Окончательно ненужным x86 стал примерно во времена Pentium.
So? А мне например за время писания на асме x86 под дос до смерти надоела его черезжопная сегментная адресация и постоянная нехватка регистров для производства хоть каких-то вычислений превышающих по сложности Hello World. Когда понадобилось написать кусочек кода под арм (на асме), ассемблер RISC мне почему-то понравился куда больше.
1) Как уже сказали, в x86 много костылей
2) В RISC много регистров общего назначения (в противовес неприлично малому в x86), что позволяет не лезть в стек каждую милисекунду.
3) Из-за особой гениальности Intel-овцев, числа в x86 хранятся через задницу, т.е. число 0xA1B2C3 там хранится как 0xC3B2A1, т.е. внутри байта биты идут в одном порядке, а байты в числе - в другом. Т.е. получается каша, которую потом приходится каждый раз приводить к нормальному виду, чтобы ее можно было отправить по TCP/IP.
4) RISC никогда не гнался за мегагерцами, чтобы как Intel было какие циферки быдлу кинуть, которое кроме слова "герц" в компах ничего не понимают. Они делали нормальные процессоры, а не гнали их.
5) Переход на 64 разряда в RISC был еще тогда, когда на x86 не было 32 разрядной Венды.
6) В RISC упрощенный набор команд, а не куча тупых SSE<большое число>, из-за которых только проблемы совместимости возникают, да и для разбиения CISC команд x86 требуется дополнительная микропрограмма в процессоре.
7) Фиксированная длина машинных инструкций и простой формат команды.
И книга по RISC ассемблеру есть: Д. Кнут уже выпустил исправления для первого тома своих трудов, заменив MIX на RISC.
Читал по ссылкам так в первой сказано что это был пиар против intel..
По теме, сколько будет примерно стоить произведённый в Китае/Тайване чип POWER6L и POWER6UL по технологии 80-45нм, то есть ~5Gz? Если их сделать в раёне ~100-200$ то появились бы мамки и весьма доступная альтернатива x86-говну...