Результаты поиска по запросу "assembly"

1 ответ

@HadiBrais: не стесняйтесь пытаться ответить на вопрос более просто. Я могу занять немного больше времени, чтобы сделать более простое резюме. Но, как я уже сказал, я не знаю, спрашивает ли OP о чистых барьерах памяти в теоретической чистой / простой архитектуре, или же они на самом деле спрашивают о барьерах x86 на реальных процессорах x86, которые осложняются всеми этими проблемами. Я не уверен, как сделать это более ясным, чем ответ BeeOnRope на предыдущий вопрос OP, который IMO четко объяснил разницу между OoO exec и переупорядочением памяти.

ал разные вещи о том, как работает барьер памяти. Например, пользовательJohanответ вэтот вопрос [https://stackoverflow.com/questions/42714599/is-a-memory-barrier-an-instruction-that-the-cpu-executes-or-is-it-just-a-marker] говорит, что барьер ...

1 ответ

@PeterCordes По словам Агнера, маскировка слиянием бесплатна при приземлении Рыцарей (за вычетом дополнительной зависимости). Но он не прокомментировал Скайлэйк. Я не использую маскировку достаточно, чтобы знать. Я не могу представить, что все по-другому.

тим, у вас есть значения вrax а такжеrdx Вы хотите загрузить вxmm регистр. Одним из способов будет: movq xmm0, rax pinsrq xmm0, rdx, 1Это довольно медленно, хотя! Есть ли способ лучше?

1 ответ

Спасибо, я понял. Я думал об этом. :)

рабатываю (NASM + GCC для ELF64)PoC [https://en.wikipedia.org/wiki/Proof_of_concept#Software_development]который использует гаджет-призрак, который измеряет время доступа к набору строк кэша ( FLUSH + ...

ТОП публикаций

2 ответа

Эта таблица, вероятно, будет неверно предсказана в первый раз. После этого это может или не может, в зависимости от модели и силы косвенного предсказателя ветвления.

отрим следующий цикл в x86: ; on entry, rdi has the number of iterations .top: ; some magic happens here to calculate a result in rax mov [array + rdi * 8], rax ; store result in output array dec rdi jnz .topЭто просто: что-то вычисляет ...

1 ответ

@ DavidC.Rankin: это было совсем недавно, что изменилось на Arch.

омпиляции кода ниже: global main extern printf, scanf section .data msg: db "Enter a number: ",10,0 format:db "%d",0 section .bss number resb 4 section .text main: mov rdi, msg mov al, 0 call printf mov rsi, number mov rdi, format mov al, 0 call ...

2 ответа

Я согласен с анализом @PeterCordes. Я забыл рассмотреть возможность «перезвонить».

лько я знаю, вызов функции действует как барьер компилятора, но не как барьер ЦП. Этотруководство [http://preshing.com/20120913/acquire-and-release-semantics/] говорит следующее: получение блокировки подразумевает семантику получения, в то ...

1 ответ

Ошибка компилятора SSE2

Я пытаюсь прорваться в SSE2 и пробовал следующеепример программы [http://www.developers.net/intelisnshowcase/view/116]: #include "stdafx.h" #include <emmintrin.h> int main(int argc, char* argv[]) { __declspec(align(16)) long mul; // multiply ...

1 ответ

Удивительный ответ. Я ценю ссылку на таблицы Fogs, они отличный ресурс! Я принял ваш ответ - я поражен его полнотой!

етно это: mov %eax, %dsМедленнее чем mov %eax, %ebxИли они с одинаковой скоростью. Я исследовал онлайн, но не смог найти однозначного ответа. Я не уверен, что это глупый вопрос, но я думаю, что вполне возможно, что изменение регистра ...

2 ответа

L2 - это ДЕВЯТЬ, это общий L3, который входит в состав Intel начиная с Nehalem. Таким образом, выселение потенциально может быть вызвано давлением со стороны других ядерных структур.

у вас есть 64-байтовый буфер, который интенсивно читается / записывается, то, вероятно, он будет сохранен в L1; но есть ли способ заставить это поведение? Например, предоставьте одному ядру монопольный доступ к этим 64 байтам и запретите им ...

1 ответ

 определить, был ли перенаправлен собственный вывод.)

чаю ассемблер, и для чтения пользовательского ввода использовались разные файловые дескрипторы. Для чтения ввода с клавиатуры я ожидал дескриптор файла 0 (stdin), но наткнулся на ...