Как стать автором
Обновить
39
0
Евгений Юлюгин @yulyugin

Пользователь

Отправить сообщение

На тему молока в стеклянных бутылках:
Много где в Европе работает система "аренды" тары при покупки газировки, пива и т.д. При покупке напитка платится некая сумма сверху, потом при возврате бутылки в специальный автомат можно получить деньги обратно. Точнее обычно это не деньги, а чек, которым можно оплатить покупки в супермаркете.

А почему Вы решили, что SSE регистров только 8? В 64-битном их 16.

Intel® 64 and IA-32 Architectures Software Developer’s Manual:
In 64-bit mode, eight additional XMM registers are accessible. Registers XMM8-XMM15 are accessed by using REX prefixes
Посмотрите чуть выше.
Скрин шот
Это не «стоны» Intel.
Это лично я, как один из создателей CPU моделей Intel, высказываю свое мнение о сложившейся ситуации. Мнение компании может отличаться от моего.
Я могу сказать, что проблему виртуализации это бы решило.
Получив это прерывание мы могли бы выполнить эту инструкцию в интерпретаторе и потом снова вернуться к прямому исполнению.
Я бы сказал, что в данном случае это не безопасно.

AVX наверно не лучший пример, вот Вам другой — AVX2. Ядро может знать о существовании AVX, но не подозревать о AVX2. При этом использование AVX2 будет абсолютно безопасным, но в /proc/cpuinfo оно отображено не будет.

Моя идея состоит в том, что на /proc/cpuinfo пологаться не стоит.
В /proc/cpuinfo может не быть всей информации о процессоре.
Например, если ядро у вас достаточно старое и не знает о существовании AVX, то оно разумеется не сможет отобразить AVX в /proc/cpuinfo даже, если железо его поддерживает.
66 f3 f2 0f 59 ff и 66 f2 f3 0f 59 ff здесь 66 игнорируется согласно 2.2.1. Использование f3 и f2 unpredictable behavior согласно:

Repeat prefixes (F2H, F3H) cause an instruction to be repeated for each element of a string. Use these prefixes only with string and I/O instructions (MOVS, CMPS, SCAS,LODS, STOS, INS, and OUTS). Use of repeat prefixes and/or undefined opcodes with other Intel 64 or IA-32 instructions is reserved; such use may cause unpredictable behavior.

В данном случае это уже не repeat префиксы. Они несут совсем другую смысловую нагрузку.
f2 66 0f 59 ff — это MULSD согласно 2.2.1 REX Prefixes:

When a REX prefix is used in conjunction with an instruction containing a mandatory prefix, the mandatory prefix must come before the REX so the REX prefix can be immediately preceding the opcode or the escape byte. For example, CVTDQ2PD with REX prefix should have REX placed between F3 and 0F E6. Other placements are ignored.

Не понял вашей аргументации, если честно. Тут говорится про REX префикс. В приведенном примере его просто нет.
Вы правы, стоит попробовать им написать.

Но я лично не уверен, что это баг, есть подозрение, что это фича :)
На AMD не проверял, так как нету таких под рукой.
Если кто-то может проверить — сообщите, было бы очень интересно.
Да нет же. AVX3 появится уже в Knights Landing. Вот, посмотрите сюда.

Intel AVX-512 will be first implemented in the future Intel® Xeon Phi™ processor and coprocessor known by the code name Knights Landing


На сколько я знаю, расширение SSE5, в котором появились XOP префиксы, было анонсировано даже раньше, чем AVX с VEX префиксами. Но AVX оказался более гибким и удобным, поэтому AMD оказалось вынужденным поддерживать AVX, тогда как Intel не стал поддерживать SSE5.
Мне все-таки кажется, что на это решение повлияло именно присутствие аналогичных и более совершенных инструкций. Тем более, что поддержка старых вариантов INC и DEC осталось во всех режимах, кроме 64-битного.
Сейчас в системе команд IA-32 больше тысячи инструкций. Однобайтных кодов всего 2^8 = 256, и все они уже давным давно заняты. Поэтому их действительно дефицит.

Например, когда-то байт 0x0f соответствовал инструкции POP CS, которая никогда не использовалась. Его начали использовать как код, соответствующий первому байту двухбайтовых инструкций, тем самым добавив еще 256 возможных кодировок.
Можно еще упомянуть о другом, схожем AES расширении для x86, предложенным компанией VIA TechnologiesPadLock engine, которое между прочим появилось раньше, чем AESNI.
В таком случае, может стоить добавить в приложение некоторую функциональность, которая будет помогать человеку определить диагноз. Например, он может отметить, что у него кружится голова, его тошнит и т.д. А tool может подсказать, что возможно у него сердечный приступ.
Идея замечательная, надеюсь у вас получится. Желаю удачи. Но есть один вопрос:

все окружающие получат на свои смартфоны вместе с просьбой о помощи еще и инструкцию, как оказать помощь именно этому больному

Как сервис определит какая помощью нужна конкретно этому человеку? Ну допустим у кого-то случился сердечный приступ. Ему самому надо будет понять, что с ним произошло, потом написать это в сервис? Я просто действительно не представляю как вы хотите поддержать данную функциональность.
Отличная статья! Много картинок, мало текста и все понятно) Побольше бы таких.
а это не умножение на ноль, а число в шестнадцатеричной системе исчисления.
1

Информация

В рейтинге
Не участвует
Откуда
Долгопрудный, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность