4

Каким образом исполняемый файл может работать как на системах AMD, так и на Intel. Разве не отличаются наборы инструкций AMD и Intel? Как исполняемый файл работает на обоих? Как именно они компилируют файлы для работы именно так. И какова именно роль ОС во всем этом?Почему исполняемый файл может запускаться как на процессорах Intel, так и на процессорах AMD?

+2

Возможный дубликат [Есть ли у процессора Intel и AMD тот же ассемблер?] (Http://stackoverflow.com/questions/1109569/do-intel-and-amd-processor-have-the-same-assembler) – Jan

ответ

2

Единственная реальная разница между AMD и Intel на данной итерации процессора - это их реализация наборов инструкций, которые они поддерживают. x86 (32 бит) и x64 (64 бит) - два наиболее распространенных набора инструкций для процессоров Intel и AMD.

Различия возникают, когда Intel и AMD реализуют наборы инструкций в своих чипах, но эти реализации не должны влиять на сами наборы инструкций. Поэтому, если программа была скомпилирована для процессора x64, она может работать на любом процессоре, который реализует набор инструкций x64, который реализуется практически всеми современными процессорами Intel и AMD.

Отличным примером разницы в реализации является то, что Intel любит гиперпроецировать ядра, тогда как AMD любит просто добавлять больше ядер. Они делают это по множеству причин, таких как потребление энергии и лучшая параллельная обработка, но на самом деле это не влияет, если программы выполняются, потому что они не меняют набор инструкций. Еще одна разница между Intel и AMD - это количество этапов трубопровода, которые могут повлиять на скорость.

Огромные сложности приходят в игру, когда рассматриваются операционные системы. Windows имеет огромные библиотеки, которые должны использовать программы, если они хотят работать в Windows. То же самое касается Linux и Mac OS X. Поскольку эти библиотеки не разделяются между операционными системами, программы, написанные на одной операционной системе, вероятно, не будут работать на другом.

Смежные вопросы