Информация об изменениях

Сообщение Re[6]: Как Apple так быстро сделали Xcode для ARM? Сможет ли от 18.01.2024 7:09

Изменено 18.01.2024 7:21 Serginio1

Re[6]: Как Apple так быстро сделали Xcode для ARM? Сможет ли
Здравствуйте, CreatorCray, Вы писали:

S>>Если будут запускаться x86 приложения и будут выполняться с такой же скоростью как и на x86

CC>Вот только это "если" реализовать в железе и софте довольно нетривиально, особенно пункт про скорость.
CC>Apple M в отличие от обычных ARM умеет избирательно включать memory ordering model как в x86, так что все гарантии остаются теми же, и потому достаточно отAOT/JITить код в другую архитектуру.
CC>Так что без поддержки железом не обойтись.
Так для этого и делается Snapdragon X Elite
Qualcomm с новым 64-битным процессором Snapdragon X Elite под ОС Windows легко обошла Intel и AMD

Qualcomm: Snapdragon X Elite заметно превосходит Apple M3

Принцип работы эмуляции x86 на архитектуре ARM
Re[6]: Как Apple так быстро сделали Xcode для ARM? Сможет ли
Здравствуйте, CreatorCray, Вы писали:

S>>Если будут запускаться x86 приложения и будут выполняться с такой же скоростью как и на x86

CC>Вот только это "если" реализовать в железе и софте довольно нетривиально, особенно пункт про скорость.
CC>Apple M в отличие от обычных ARM умеет избирательно включать memory ordering model как в x86, так что все гарантии остаются теми же, и потому достаточно отAOT/JITить код в другую архитектуру.
CC>Так что без поддержки железом не обойтись.
Так для этого и делается Snapdragon X Elite
Qualcomm с новым 64-битным процессором Snapdragon X Elite под ОС Windows легко обошла Intel и AMD

Qualcomm: Snapdragon X Elite заметно превосходит Apple M3

Принцип работы эмуляции x86 на архитектуре ARM

Приложение x86 (или x64) даже не знает, что оно работает на компьютере Windows на компьютере Arm, если он не вызывает определенные API (IsWoW64Process2).

Уровень WOW64 Windows позволяет выполнять код x86 в версии Arm64 Windows. Эмуляция x86 работает путем компиляции блоков инструкций x86 в инструкции Arm64 с оптимизацией для повышения производительности. Служба кэширует эти переведенные блоки кода, чтобы сократить затраты на перевод инструкций и разрешить оптимизацию при повторном запуске кода. Кэши создаются для каждого модуля, чтобы другие приложения могли использовать их при первом запуске.