Если разрабатывается операционная система, например, «Linux», будет ли она написана немного по-другому там, где это необходимо (профилирована) для различных микроархитектур (Intel Pentium и AMD Athlon)?
Из одной из веток обмена стеками я узнал, что двоичный файл Linux для архитектуры AMD x64 может быть запущен и на архитектуре Intel x64. введите описание ссылки здесь
т.е. разве не должен быть разный исходный код Linux для Intel Pentium и AMD Athlon, хотя они используют один и тот же ISA (x86)? Причина в том, что их реализация ISA будет разной, использующей разный набор регистров управления и данных!
решение1
Я не смог вникнуть в суть концепции, однако собрал достаточно информации, необходимой для того, чтобы убедиться, что операционные системы различаются в зависимости от ISA (например, x86 и x64), а не от микроархитектуры (Intel Pentium и AMD Athlon).
Простая аналогия -
ЭТОкакязык С; «стандарт», которому необходимо следовать при выполнении чего-либо.
тогда какмикроархитектуракакКомпилятор С; «реализация» для обеспечения соблюдения этих правил или стандартов.
Выдержка из вики -Микроархитектура
Одну и ту же ISA можно реализовать с использованием различных микроархитектур; реализации могут различаться из-за различных целей данной конструкции или из-за изменений в технологиях.
ISA примерно соответствует модели программирования процессора с точки зрения программиста на языке ассемблера или разработчика компилятора.ISA включает в себя, среди прочего, модель исполнения, регистры процессора, адреса и форматы данных.Микроархитектура включает в себя составные части процессора и то, как они взаимодействуют и взаимодействуют для реализации ISA.
Машины с различной микроархитектурой могут иметь одинаковую архитектуру набора команд и, таким образом, быть способны выполнять одни и те же программы.Новые микроархитектуры и/или схемотехнические решения, а также достижения в производстве полупроводников позволяют новым поколениям процессоров достигать более высокой производительности при использовании той же ISA.
Факторы, которые отличают разные микроархитектуры, но при этом реализуют одну и ту же ISA:
Исполнительные блоки также важны для микроархитектуры. Исполнительные блоки включают арифметико-логические блоки (ALU), блоки с плавающей точкой (FPU), блоки загрузки/хранения, предсказания ветвлений и SIMD. Эти блоки выполняют операции или вычисления процессора. Выбор количества исполнительных блоков, их задержки и пропускной способности является центральной задачей микроархитектурного проектирования. Размер, задержка, пропускная способность и подключение памяти в системе также являются микроархитектурными решениями.
Решения по проектированию на уровне системы, такие как включение или невключение периферийных устройств, таких как контроллеры памяти, можно считать частью процесса микроархитектурного проектирования. Это включает решения по уровню производительности и подключению этих периферийных устройств.