Warning: mkdir(): No space left on device in /var/www/tgoop/post.php on line 37

Warning: file_put_contents(aCache/aDaily/post/justcodeit_channel/--): Failed to open stream: No such file or directory in /var/www/tgoop/post.php on line 50
Just code IT@justcodeit_channel P.46
JUSTCODEIT_CHANNEL Telegram 46
Тайминги на Intel — плавают!

Ни для кого не секрет, что время исполнения инструкций или их последовательностей в общем случае не детерминировано на процессорах Intel. Всему виной сложный многоступенчатый конвейер, а также его начальное состояние к моменту исполнения макроинструкции (то есть инструкции из x86 ISA, которая превращается внутри ядра в набор микроинструкций для конкретной микроархитектуры).

Есть ли гипертрединг? Какая заполненность таблицы переименования регистров? Какая очередь на буфере переупорядочивания? Сколько свободных скорбордов? Все это сильно влияет на время нахождения макроинструкции на конвейере. Есть, кстати, интересные случаи, когда макроинструкция будет находиться на конвейере 0 тактов – например, когда происходит склеивание инструкции сравнения и перехода (cmp + jxx) в одну микроинструкцию.

А еще есть нюки (nukes). Это асинхронные события, которые стопорят весь конвейер. Простой пример - # PF при фетче памяти в инструкции mov. Примеры посложнее – это когда в эррате пишут «Under complex microarchitectural conditions».

Если выходить на макроуровень – у нас есть различные «режимы» работы процессора. Все, наверное, знают про ring0 и ring3. Часто при этом забывают про ортогональные режимы (или еще хуже – называют их ring -1 -2 и т.п.). Это, например, vmx (виртуализация); smm (system management mode), который до сих пор популярен в том же управлении питанием; sgx – анклавы, smx, probe mode и много-много других. Переход в эти режимы вытесняет исполнение в предыдущем: физическое ядро ведь одно и то же! И эти вытеснения в общем случае могут происходить когда угодно.

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

#digest
👍8



tgoop.com/justcodeit_channel/46
Create:
Last Update:

Тайминги на Intel — плавают!

Ни для кого не секрет, что время исполнения инструкций или их последовательностей в общем случае не детерминировано на процессорах Intel. Всему виной сложный многоступенчатый конвейер, а также его начальное состояние к моменту исполнения макроинструкции (то есть инструкции из x86 ISA, которая превращается внутри ядра в набор микроинструкций для конкретной микроархитектуры).

Есть ли гипертрединг? Какая заполненность таблицы переименования регистров? Какая очередь на буфере переупорядочивания? Сколько свободных скорбордов? Все это сильно влияет на время нахождения макроинструкции на конвейере. Есть, кстати, интересные случаи, когда макроинструкция будет находиться на конвейере 0 тактов – например, когда происходит склеивание инструкции сравнения и перехода (cmp + jxx) в одну микроинструкцию.

А еще есть нюки (nukes). Это асинхронные события, которые стопорят весь конвейер. Простой пример - # PF при фетче памяти в инструкции mov. Примеры посложнее – это когда в эррате пишут «Under complex microarchitectural conditions».

Если выходить на макроуровень – у нас есть различные «режимы» работы процессора. Все, наверное, знают про ring0 и ring3. Часто при этом забывают про ортогональные режимы (или еще хуже – называют их ring -1 -2 и т.п.). Это, например, vmx (виртуализация); smm (system management mode), который до сих пор популярен в том же управлении питанием; sgx – анклавы, smx, probe mode и много-много других. Переход в эти режимы вытесняет исполнение в предыдущем: физическое ядро ведь одно и то же! И эти вытеснения в общем случае могут происходить когда угодно.

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

#digest

BY Just code IT


Share with your friend now:
tgoop.com/justcodeit_channel/46

View MORE
Open in Telegram


Telegram News

Date: |

Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group. "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. Telegram is a leading cloud-based instant messages platform. It became popular in recent years for its privacy, speed, voice and video quality, and other unmatched features over its main competitor Whatsapp. Telegram iOS app: In the “Chats” tab, click the new message icon in the right upper corner. Select “New Channel.”
from us


Telegram Just code IT
FROM American