RISC vs CISC

Feb 03, 2023 02:47

интересно, что архитектуры делят строго на CISC и RISC, и нет вот ничего между ними.
Вот вроде бы все классические CISC архитектуры вымерли (ну разве что кроме какого-нибудь STM8), а x86 жива, хотя вроде как тоже CISC.
Но всё же разделение не такое чёткое. Все CISC, которых уже нет - PDP, 68k и т.п. - имеют такую неприятную для реализации вещь, как indirect адресация. Адрес операнда читать по указанному адресу из памяти. Такая же неприятная вещь, как условный переход. Конвейер останавливается, пока не приедут данные из памяти, отправляется второй запрос и ждём уже операнд.
А вот в x86 такого режима нет. Как и, тем более, в RISC.
Но, собственно, для конвейера какой-нибудь "load" в регистр из памяти мало отличается от add ax,[dx] - усложнение логики лишь рутинное, учесть и добавить фиксированное время работы АЛУ.
Собственно, тяжёлой инструкцией остаётся только что-то в стиле add [dx],ax - где надо сначала прочитать из памяти и затем записать обратно - без таких инструкций отличие от RISC было бы лишь номинальным. Но по сравнению с классическими CISC ортогональными архитектурами это разница в разы.
Previous post Next post
Up