Чипы x86/x64 все еще используют микропрограммирование?

Если я понимаю эти две статьи, архитектура Intel на самом низком уровне перешла к использованию инструкций RISC вместо традиционного набора команд CISC, которым Intel известна:

http://www.hardwaresecrets.com/article/235/4

http://www.tomshardware.com/reviews/intel,264-6.html

Если это так, то микропрограммы микросхем x86/x64 все еще микропрограммированы или они используют аппаратное управление, как традиционные чипы RISC? Я предполагаю, что он все еще микропрограммирован, но хотел проверить.

5 ответов

Микрокод существует уже давно, если вы на это ссылаетесь. Так что я не знаю, о чем статья HardwareSecrets, если только Intel не создает процессоры RISC поверх процессоров CISC.

Даже статья HardwareSecrets называет их микро-инструкциями. Картофель, потахто.

http://en.wikipedia.org/wiki/Microcode

На современных процессорах x86 большинство инструкций выполняется без микрокода (*), но некоторые сложные или редко выполняемые используют микрокод.

(*) Не путать с микрооперациями - в процессорах x86 вне очереди команды x86 обычно декодируются в одну или несколько микроопераций, которые затем ставятся в очередь для выполнения (без микрокода!) порядок исполнения трубопровода.

Также интересно отметить, что современные процессоры x86 имеют возможность исправлять / обновлять микрокод для исправления ошибок в полевых условиях.

Просто нашел ответ. Ссылка на "ОРГАНИЗАЦИЯ КОМПЬЮТЕРНЫХ СИСТЕМ" Эндрю Таненбаума, стр. 54 на стр. 59. Микросхемы Intel основаны на CISC, и все микросхемы на основе CISC имеют интерпретатор (микрокод), который разбивает сложные инструкции на маленькие шаги. Раньше все чипы содержали микропрограмму. не было никакого термина CISC, до того момента, как в 1980 году Дэвид Паттерсон и Карло Секин представили концепцию RISC. RISC означает компьютер с сокращенным набором команд. В настоящее время размер набора инструкций не имеет значения. Что важно в дизайне RISC, так это простота инструкций, но название "уменьшенный". Дизайн RISC - это быстрое издание все более простых инструкций. сколько времени заняло указание, имело значение меньше, чем сколько можно было запустить в секунду. Кроме того, преимущество использования более быстрой CPU ROM по сравнению с более медленной основной памятью, имеющейся в CISC, исчезло благодаря появлению такой же более быстрой основной памяти. RISC определенно лучше, чем производительность CISC. тогда почему производитель микросхем Intel не перешел на RISC? по двум причинам. Прежде всего, существует проблема обратной совместимости, и компании на миллиарды долларов вложили средства в программное обеспечение для линейки Intel. Во-вторых, Intel удалось использовать идею RISC в своих чипах CISC. начиная с 486, процессоры Intel содержат ядро ​​RISC, которое выполняет самые простые и наиболее распространенные инструкции в одном цикле передачи данных, в то же время интерпретируя более сложные инструкции обычным способом CISC. Я предполагаю, что Intel поверхностно перешла к гибридному подходу, чтобы сохранить лицо / славу / доброжелательность на рынке в соответствии с технологическими достижениями. Я бы взял чипы Intel только на основе CISC.

Современные процессоры x86 все еще используют микрокод, потому что набор команд x86 очень сложен по сравнению с типичными процессорами RISC. Это верно по крайней мере для некоторых инструкций.

Внутренне сложные инструкции разбиты на простые RISC-подобные инструкции, которые затем обрабатываются сложным RISC-подобным ядром. RISC-подобные инструкции иногда переупорядочиваются или выполняются параллельно.

Типичными примерами микрокодированных инструкций являются деление и умножение, и это относится как к CISC, так и к RISC. Просто не стоит внедрять аппаратное деление, учитывая, как (относительно) редко оно используется. Умножения гораздо проще реализовать, но они также микрокодированы, хотя, конечно, не в той же степени. В соответствии с этим документом Задержки инструкций и пропускная способность для... процессоров x86 задержки для mul и div для процессора K10 составляют 5 и 77 или 15,4X. Для intel SBR(?) Соответствующие значения равны 4 и 92 или 23X. Дополнительным пониманием их относительной сложности является их соответствующая пропускная способность: на K10 может поддерживаться умножение каждого второго тактового цикла (2,5–5/2 - в работе одновременно), но выдерживается только одно деление в каждом 77-м тактовом цикле (то же самое, что и задержка деления),

Другими примерами являются sh? D (shift? Double) и bs? (бит сканирования?).

Другие вопросы по тегам