Может ли гиперудирование влиять на атомность 32-битного int Read / Write на 32-битный процессор?

StackOverflow https://stackoverflow.com//questions/9715016

Вопрос

Я прочитал где-то, что гиперторизация может сделать 32-битное INT (на 32-разрядном процессоре).Может кто-нибудь объяснить, как это Hyperthreading эффект?

Это было полезно?

Решение

Если бы это было правдой, это будет какая-то ужасная ошибка CPU, которая была бы специфичной для одной конкретной модели или шага. Это 32-разрядные чтения и пишеты являются атомными являются фундаментальными для свойств платформы X86 и полагаются на Windows, Linux и лота и множество прикладных программ.

Единственное, о чем я могу думать о том, что это могло относиться к переходу от одноядерных процессоров без гиперрезной резьбы к однородно-сердечному процессору с гиперпотокой. На одном CPU CREX X86 без гиперрезной резьбы единичных инструкций (таких как прирост), которые выполняют операции по модификации чтения-записи в выровненных 32-битных переменных, являются атомными даже без префикса блокировки. (Они не гарантируются, они просто случится.) ЦП с гиперрезкой ведет себя очень похоже на ЦП с двумя физическими ядрами, поэтому операции с чтением - модифицируют операции (другие затем Exchange) не гарантируются атомным Префикс блокировки.

Это нерелевантное различие Теперь, поскольку подавляющее большинство CPU, которое ваше программное обеспечение будет встречаться, будет иметь более одного ядра, так или иначе. Таким образом, даже однозначные операции чтения-модификации-записи на выровненные 32-битные значения не будут атомными, если не заблокированы. (Обмен исключением, поскольку он заблокирован даже без префикса.)

Другие советы

Выровнены чтение или запись всегда атомная, даже на нескольких системах CPU.Что не такое атомное (и это, вероятно, то, что вы слышали - или, по крайней мере, что вы должны были услышать) - это инструкции по модификации чтения-модификации, например, увеличение или добавление с целью памяти.Это не атомные даже в системах HT, но они атомные (не являются гарантией, скорее случайно) на системы с одним логическим процессором, даже когда не заблокированы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top