Автор пытается передать, что ISA CISC лучше скрывают детали микроархитектуры от программиста, чем RISC. CISC ISA предоставляет инструкции, которые обозначают конкретную операцию, которая не обязательно связана с тем, как реализация микроархитектуры может выполнить эту операцию.
Допустим, мы хотим переместить данные из позиции A памяти в другую B - архитектура CISC представит эту операцию как инструкцию, подобную этой: "mov B, A" ( macro-op ). Теперь один из способов реализовать это на уровне микроархитектуры - сделать это в два этапа, т.е. выполнить две инструкции ( micro-ops ) - загрузить данные из A в регистр и затем сохранить из которые записываются в позицию памяти B. Другой способ сделать это - переложить перемещение данных в сопроцессор, который мог бы быть более эффективным при перемещении данных в памяти (механизм DMA ). В любом случае, программист кодирует операцию как отдельную инструкцию (инструкция mov), не требуя знания о том, как эта операция будет фактически выполняться на уровне микроархитектуры
С другой стороны, ISA RISC имеют тенденцию (хотя не всегда ) представлять операции, поскольку они фактически выполняются в процессоре (т.е. в форме микроопераций), и задача программиста состоит в том, чтобы объединить эти операции в более сложные, которые делают то, что программист хочет, чтобы программа делала. Операция перемещения, описанная выше в качестве примера, должна быть явно закодирована как две инструкции или с использованием DMA.
Пример, который автор приводит в качестве RISC ISA, раскрывающего детали реализации ("артефакты"), касается интервалов задержки ветвления , где инструкция, следующая за ветвью, всегда будет выполняться независимо, независимо от того, выбрана ветвь или нет. Это связано с конвейерной обработкой инструкций , которая является техникой микроархитектуры, используемой для ускорения выполнения. В этом случае ISA раскрывает детали микроархитектуры, которые программист должен знать, чтобы гарантировать корректность программы. Инструкции по конвейерной обработке могут также создавать другие конвейерные опасности , что, как я думаю, автор имеет в виду как "запрещенные последовательности команд" Эти последовательности инструкций сами по себе не запрещены, вы можете выполнять их, но они будут давать неверные результаты.
Надеюсь, это поможет.