Сейчас на форуме: tyns777 (+4 невидимых)

 eXeL@B —› Программирование —› инструкция PAUSE
Посл.ответ Сообщение


Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 27 июля 2010 20:39
· Личное сообщение · #1

Почитал немного советы по оптимизации кода от Intel. Так вот, оказывается что есть инструкция с опкодом F3 90, которая многими дизассемблерами интерпретируется как REP NOP. Поверил, что на относительно новых процах (спустя 15 лет со времен Питера Абеля) эта инструкция есть. Ведь и NOP - это XCHG EAX, EAX, то есть пустая инструкция, коих много можно насчитать. Я на этой фразе "Use the PAUSE instruction in spin-wait loops." спотыкаюсь, нигде нет доходчивого объяснения, что такое spin-wait loops...
Просьба помочь ссылками или разъяснениями...

-----
IZ.RU





Ранг: 192.7 (ветеран), 154thx
Активность: 0.070
Статус: Участник
The ONE

Создано: 27 июля 2010 20:54
· Личное сообщение · #2

При выполнении подобных циклов процессор Pentium 4 испытывает
проблему при завершении цикла, обнаруживая возможное нарушение доступа к
памяти. Команда PAUSE подсказывает процессору, что данная кодовая
последовательность — цикл ожидания-занятости. Процессор использует эту
подсказку, чтобы игнорировать возможную ситуацию нарушения доступа к памяти
в большинстве случаев. Это улучшает работу процессора вплоть до
значительного снижения его энергопотребления. По этой причине рекомендуется
включать команду PAUSE во все циклы ожидания-занятости.

-----
Сотрудник DHARMA





Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 27 июля 2010 21:11 · Поправил: DenCoder
· Личное сообщение · #3

Хм... а что за цикл ожидания-занятости? Это перевод "spin-wait loop"? Что оно означает?

И... может из-за нехватки этой инструкции у меня жжется проц?

-----
IZ.RU





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 27 июля 2010 22:28
· Личное сообщение · #4

Ман читай, спинлок через lock cmpxchg, пример кода есть в мане интела.


 eXeL@B —› Программирование —› инструкция PAUSE
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати