информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеЗа кого нас держат?Атака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / dnet
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Если с полной ответственностью подойти к этому вопросу, то... 16.11.07 16:19  Число просмотров: 3056
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 16.11.07 16:26  Количество правок: 4
<"чистая" ссылка>
> > Может что-то другое имеется в виду под фразой "однако у
> > Pentium 4 нет аппаратной реализации циклического сдвига"?
> Он хочет узнать, есть аппаратная реализация этой
> инструкции, или нет...

Если с полной ответственностью подойти к этому вопросу, то он окажется более сложным, чем покажется на первый взгляд.
В связи с тем, что такие операции как сложение, инкрементирование (увеличение на 1) и похожие реализовывались даже в самых первых процессорах на базе соответствующих логических элементах (регистр параллельного сложения и регистр-счетчик), то сдвиг не является исключением. Сдвиговые логические устройства (регистры) стары, как мир, и реализация их более, чем просто аппаратная. Примером тому может послужить последовательный порт, который построен на базе микросхемы "регистр сдвига" плюс "регистр счетчик".
В принципе если аппаратной реализацией считать наличие соответствующей инструкции, то все документированные инструкции являются аппаратными так как не требуют программной реализации, но если вдаваться в подробности, то некоторые инструкции выполняются не совсем аппаратно, хотя и без программной реализации с точки зрения программиста/компилятора. Например такая инструкция как умножение (или деление), несмотря на то, что у процессора она выделена отдельной инструкцией, сложнореализуема в виде логического устройства АЛУ и реализуется на микрокоде. То есть процессор, встретив ее, выполняет несколько специально прописанных в нем инструкций для этого случая, представляющих последовательность простых инструкций сдвигов, сложений и сравнений с нулем. Таким же образом реализованы инструкции математического сопроцессора типа вычисление тригонометрических функций и логарифмов. Поэтому эти инструкции являются долговыполняемыми, например у 386 процессора умножение 32 разрядных чисел занимает более 32 тактов, а деление чуть больше, чем умножение. 486 же процессор может складывать два 32 битных числа за один такт, даже если они располагаются не в регистрах а в кеше первого уровня.
Если же рассмотреть многократный сдвиг (количество прописано в регистре CL), то более вероятно, что такая инструкция выполняется на микрокоде и максимальное время ее выполнения может растянуться на 32 такта.
В принципе можно построить регистр сдвига, который будет выполнять эту операцию (сдвиг на N или N раз) за 1-2 такта, как, впрочем, можно реализовать и умножатель 32 битных чисел за 5 тактов, но идут ли разработчики процессоров на это - вопрос открыт. Я полагаю, что АМДшники копают в этом направлении, поскольку при тех же тактовых частотах арифметика у их процов всегда была быстрее, а в последних процах и сопроцессор не отстает от интеловского. Следует учесть, что все не так просто. В часности, чтоб убыстрить умножение в несколько раз нужно в АЛУ закатать хитрое устройство-умножатель, который потянет на много милионов транзисторов, а что самое сложное, так это соединить их так, чтоб выравнить время прохождения сигнала. Ну очень хочется любому производителю, чтоб его процессор был очень быстр, по сравнению с конкурентским, но убить четырех зайцев не так просто, чтоб и меньше тактов на инструкцию, и выше частота, и меньше затрат на разработку и производство, и чтоб дешевый был, и чтоб меньше энергии потреблял.
Интересно, используются ли в "клиентах" инструкции сдвига на N бит или только на 1?
Много я написал, но считайте, что если процессор интеловый или АМДшный не из очень старых, то сдвиг реазован аппаратно.
<dnet>
Нужен ответ коллективного разума))) 16.11.07 12:31  
Автор: Andy (IvanovoTeam) <Andy Kalinin> Статус: Member
Отредактировано 16.11.07 12:33  Количество правок: 1
<"чистая" ссылка>
Доброго дня

уламываем на всупление в проект одного человека (у него в обслуживании порядка 100 компов) но он странные вопросы задает

Вот вопрос(ы):
Во многих других процессорах нет встроенных аппаратных команд циклического сдвига, и они должны эмулировать их (по крайней мере) двумя сдвигами и логическим ИЛИ. Эта фора является причиной того, что многие процессоры считают RC5 медленнее, чем этого можно было бы ожидать, основываясь на обычных тестах. Это также является основной причиной того, что клиент RC5 не годится на роль программы тестирования производительности процессора.
Заметим, что архитектура IA32 используется в процессорах Intel 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III и Pentium 4, однако у Pentium 4 нет аппаратной реализации циклического сдвига.
А Core2Duo?


Что ему ответить или ссылки какие дать

Спасибо
Ответить, что для тестирования производительности существуют... 24.11.07 01:08  
Автор: :о) Статус: Незарегистрированный пользователь
<"чистая" ссылка>

>
> Вот вопрос(ы):
> Во многих других процессорах нет встроенных аппаратных
> команд циклического сдвига, и они должны эмулировать их (по
> крайней мере) двумя сдвигами и логическим ИЛИ. Эта фора
> является причиной того, что многие процессоры считают RC5
> медленнее, чем этого можно было бы ожидать, основываясь на
> обычных тестах. Это также является основной причиной того,
> что клиент RC5 не годится на роль программы тестирования
> производительности процессора.
> Заметим, что архитектура IA32 используется в процессорах
> Intel 80386, 80486, Pentium, Pentium Pro, Pentium II,
> Pentium III и Pentium 4, однако у Pentium 4 нет аппаратной
> реализации циклического сдвига.
> А Core2Duo?
>
>
> Что ему ответить или ссылки какие дать
>
Ответить, что для тестирования производительности существуют специальные программные пакеты. Использовать для этого первую попавшуюся софтину как-то неправильно :о)
Что касается аппаратного сдвига - насколько я помню, его реализация отсутствовала в самом первой релизе P4, Northwood. Позже, то ли при выпуске Willamette, то ли еще в какой-то момент, аппаратный сдвиг прикрутили и все встало на место.
Вилламетте был как раз самым первым. С Нортвудом изменились... 29.11.07 12:55  
Автор: aLEXt <Alex Trusty> Статус: Member
Отредактировано 29.11.07 13:01  Количество правок: 1
<"чистая" ссылка>
> Ответить, что для тестирования производительности
> существуют специальные программные пакеты. Использовать для
> этого первую попавшуюся софтину как-то неправильно :о)
> Что касается аппаратного сдвига - насколько я помню, его
> реализация отсутствовала в самом первой релизе P4,
> Northwood. Позже, то ли при выпуске Willamette, то ли еще в
> какой-то момент, аппаратный сдвиг прикрутили и все встало
> на место.
Вилламетте был как раз самым первым. С Нортвудом изменились только техпроцесс, частота и обьем L2 кеша. В Прескоте кое что таки поменяли, но в сторону ухудшения - латентность L1 возросла, некоторых инструкций - явно из рассчета на дальнейшую частотную гонку. Реализация сдвигов не изменилась.
Лучше темы тестирования и сравнения производительности не... 26.11.07 09:47  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 26.11.07 09:59  Количество правок: 2
<"чистая" ссылка>
> Ответить, что для тестирования производительности
> существуют специальные программные пакеты. Использовать для
> этого первую попавшуюся софтину как-то неправильно :о)

Лучше темы тестирования и сравнения производительности не касаться, уже было много споров, сейчас поутихло. Все сводилось к тому, для чего процессор выбирался. Если проц покупался под широкий спектр задач, то можно ориентироваться на характеристики производительности, построенные на основе синтетических тестов. Если под конкретную задачу, а остальные постольку поскольку, то именно ей и надо тестировать. АМДшники всегда вплоть до седьмых Атлонов проигрывали Интелам по плавающей запятой и выигрывали по целочисленным операциям, а в среднем процы были эквивалентны.

> Что касается аппаратного сдвига - насколько я помню, его
> реализация отсутствовала в самом первой релизе P4,
> Northwood. Позже, то ли при выпуске Willamette, то ли еще в
> какой-то момент, аппаратный сдвиг прикрутили и все встало
> на место.

Сдвиг на 1 в любом случае абсолютно аппаратный, других не бывает. Чтобы заменить регистр, состоящий из 32 тригеров на устройство, состоящее из 32 демультиплексоров на 32 выхода, 32 "ИЛИ" с 32 входами, требуется уже серьезно над ядром поработать. Полагаю, что вся эта линейка отличается друг от друга либо нормами, либо материалом изолятора или подложки, либо параметрами питения/энергопотребления, либо разводкой (несколько дорожек по другому пути прокинули). Хотя последнее уже вряд ли. Скорее всего регистр и много чего еще заменили только в Коре. Точно на этот вопрос могут ответить либо разработчики, либо тестеры, у которых под руками есть необходимые процессоры.
Заменили вроде бы его в Prescott-е, вместо 4 тактов в 1/2. 29.11.07 17:42  
Автор: :о) Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Скорее всего регистр и много чего
> еще заменили только в Коре. Точно на этот вопрос могут
> ответить либо разработчики, либо тестеры, у которых под
> руками есть необходимые процессоры.
Заменили вроде бы его в Prescott-е, вместо 4 тактов в 1/2.
А, скажем, Core 2 - это вообще другая архитектура, из ветки Ppro-P2-P3-PM. там отродясь все было в порядке с этими делами.
[OGR] Нужен ответ коллективного разума))) 19.11.07 11:37  
Автор: aLEXt <Alex Trusty> Статус: Member
<"чистая" ссылка>
С core2 все в порядке. а вот p4 действительно считает RC5 в существенно медленнее равночастотных core2, Athlon, и даже pentium III
Если Athlon 2200 делает под 10Mkeys/sec, то P4-3000 чуть переваливает за 5. Я делал мониторинг показателя IPC, так вот - на Athlon он почти равняется 3 инструкциям за такт, а на netburst где-то 1.2
Это все-таки не вопрос, а утверждение, причем не совсем... 19.11.07 10:55  
Автор: stream Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Вот вопрос(ы):
> Во многих других процессорах нет встроенных аппаратных
> команд циклического сдвига, и они должны эмулировать их (по
> крайней мере) двумя сдвигами и логическим ИЛИ. Эта фора
> является причиной того, что многие процессоры считают RC5
> медленнее, чем этого можно было бы ожидать, основываясь на
> обычных тестах. Это также является основной причиной того,
> что клиент RC5 не годится на роль программы тестирования
> производительности процессора.
> Заметим, что архитектура IA32 используется в процессорах
> Intel 80386, 80486, Pentium, Pentium Pro, Pentium II,
> Pentium III и Pentium 4, однако у Pentium 4 нет аппаратной
> реализации циклического сдвига.

Это все-таки не вопрос, а утверждение, причем не совсем точное. В P4 есть, как он называет, "аппаратная реализация циклического сдвига" (см. "microcode 0" ниже), только она какая-то кривая и тормозная.

ROR r32,i => 1 uop, microcode 0, latency 4
ROR r32,cl => 2 uop, microcode 0, latency 6

Т.е. популярный сдвиг на переменное кол-во бит в регистре CL исполняется 2 такта вместо одного на остальных процессорах, а также у этих команд жуткая латентность - если написать два сдвига подряд, между ними будут доп. тормоза в 4/6 тактов.

И в P4 так везде. Совершенно дерьмовая архитектура, дутые мегагерцы - латентность на самых банальных командах (грубо говоря, процессор на самом деле не может полноценно работать на такой частоте, и поэтому сам вставляет в критических точках задержки).

> А Core2Duo?

Это очень правильная архитектура, как я понимаю, они отказались от идей P4 и развивают линию PII/PIII. Любой сдвиг там исполняется один такт без доп. задержек. При меньших мегагерцах тактовой все работает гораздо быстрее.

> Что ему ответить или ссылки какие дать

www.agner.org/optimize/ - мануалы по всем растактовкам всех команд всех процессоров.
Схемы регистров сдвига на "1" видел, даже для сдвига в любую... 19.11.07 12:02  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> Это все-таки не вопрос, а утверждение, причем не совсем
> точное. В P4 есть, как он называет, "аппаратная реализация
> циклического сдвига" (см. "microcode 0" ниже), только она
> какая-то кривая и тормозная.
>
> И в P4 так везде. Совершенно дерьмовая архитектура, дутые
> мегагерцы - латентность на самых банальных командах (грубо
> говоря, процессор на самом деле не может полноценно
> работать на такой частоте, и поэтому сам вставляет в
> критических точках задержки).

Схемы регистров сдвига на "1" видел, даже для сдвига в любую сторону. Не сложно было бы и самому сочинить. А попробуйте составить из тригеров схему регистра сдвига на N, да так, чтоб меньше N (32) тактов требовалось. Это куда сложнее, чем архитектуру дерьмовой назвать.
Не смешно. Потому что схема примитивна. Берем... 19.11.07 17:01  
Автор: stream Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > Это все-таки не вопрос, а утверждение, причем не
> совсем
> > точное. В P4 есть, как он называет, "аппаратная
> реализация
> > циклического сдвига" (см. "microcode 0" ниже), только
> она
> > какая-то кривая и тормозная.
> >
> > И в P4 так везде. Совершенно дерьмовая архитектура,
> дутые
> > мегагерцы - латентность на самых банальных командах
> (грубо
> > говоря, процессор на самом деле не может полноценно
> > работать на такой частоте, и поэтому сам вставляет в
> > критических точках задержки).
>
> Схемы регистров сдвига на "1" видел, даже для сдвига в
> любую сторону. Не сложно было бы и самому сочинить. А
> попробуйте составить из тригеров схему регистра сдвига на
> N, да так, чтоб меньше N (32) тактов требовалось.

Не смешно. Потому что схема примитивна. Берем демультиплексоры (? - в общем, тот логический элемент, который входной бит на один из многих выходных согласно входному счетчику переключает) по количеству входных бит, объединяем их выходы по "или", N подаем на счетный вход. На входе конструкции будут исходное число и N, на выходе - сдвинутое.

> Это куда сложнее, чем архитектуру дерьмовой назвать.

Я понимаю, что им пришлось на чем-то экономить, чтобы добиться этих дутых мегагерц и влезть в техпроцесс (2 такта вместо одного на "ROR r32,CL", 6 !!! тактов латентности вместо одного на MOV "MMx, MMy", и т.п.).

А вы просто возьмите OGR (он для тестов повеселее, чем RC5 - работа с памятью есть), и поделите тактовую процессора на меганоды. И сравните число тактов на ноду. А получится примерно так:

PII, PIII - 75
P4 - 120
Core Duo - 60.

Вот и делайте вывод о крутости и дерьмовости архитектур.
Согласен. Отсюда, собственно, и латентность. 20.11.07 09:51  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
атлонов не хватает :) 20.11.07 09:07  
Автор: michaek Статус: Незарегистрированный пользователь
<"чистая" ссылка>
[RC5] атлонов не хватает :) 23.11.07 18:02  
Автор: aLEXt <Alex Trusty> Статус: Member
<"чистая" ссылка>
Атлоны чуууть медленне core2 - там кэш L2 (х)уже.
IPC на ограх атлонов - 1.3, корок - 1.5
Смотря на каких! ;) 23.11.07 19:55  
Автор: Алекс <Алексей aka cosmo_vk> Статус: Member
<"чистая" ссылка>
> Атлоны чуууть медленне core2 - там кэш L2 (х)уже.
> IPC на ограх атлонов - 1.3, корок - 1.5
Смотря на каких! ;)
Самый нижний процессор в списке мой(Athlon64 3200+ Venice(939 sock) up to 2.16Ghz).
Если сравнить с Core2 на соответсвующей частоте(2160Mhz), то выходит что Athlon быстрее.

http://n0cgi.distributed.net/speed/query.php?cputype=112&cpumhz=3200&recordid=1&contest=rc572&multi=0
[OGR] Ни на каких 27.11.07 16:36  
Автор: aLEXt <Alex Trusty> Статус: Member
<"чистая" ссылка>
> > Атлоны чуууть медленне core2 - там кэш L2 (х)уже.
> > IPC на ограх атлонов - 1.3, корок - 1.5
> Смотря на каких! ;)
> Самый нижний процессор в списке мой(Athlon64 3200+
> Venice(939 sock) up to 2.16Ghz).
> Если сравнить с Core2 на соответсвующей частоте(2160Mhz),
> то выходит что Athlon быстрее.
Ни на каких :) Во-первых речь о ограх. Во вторых - IPC - показатель безотносительный к частоте. Про RC5 - не спорю, у меня о томже написано выше :)
у меня большинство атлонов и семпронов! 27.11.07 11:00  
Автор: maestro_sochi <maestro> Статус: Member
<"чистая" ссылка>
> > Атлоны чуууть медленне core2 - там кэш L2 (х)уже.
> > IPC на ограх атлонов - 1.3, корок - 1.5
> Смотря на каких! ;)
> Самый нижний процессор в списке мой(Athlon64 3200+
> Venice(939 sock) up to 2.16Ghz).
> Если сравнить с Core2 на соответсвующей частоте(2160Mhz),
> то выходит что Athlon быстрее.
у меня большинство атлонов и семпронов!
даже ноутбук был с целероном поменял на атлон, ток аради коров:)
в ограх не уверен а в рс5 атлоны не уступают даже сейчас 2х ядерный интел 2.66 21мегакей, 2.8 атлон 2 ядра 25 мегакей!

жду пока цена упадет на интел 4х ядерный, возьму:)
хотя ждал выхода 3-4 процесорных атлонов, посомтрел тесты и что то они ну очень плохи по остальным параметрам, насчет коров еще узнаем:)))
[RC5] у меня большинство атлонов и семпронов! 27.11.07 16:43  
Автор: aLEXt <Alex Trusty> Статус: Member
<"чистая" ссылка>
> у меня большинство атлонов и семпронов!
> даже ноутбук был с целероном поменял на атлон, ток аради
> коров:)
> в ограх не уверен а в рс5 атлоны не уступают даже сейчас 2х
> ядерный интел 2.66 21мегакей, 2.8 атлон 2 ядра 25 мегакей!
>
> жду пока цена упадет на интел 4х ядерный, возьму:)
> хотя ждал выхода 3-4 процесорных атлонов, посомтрел тесты и
> что то они ну очень плохи по остальным параметрам, насчет
> коров еще узнаем:)))
Ну, в RC5 то они действительно хороши. И нет оснований полагать, что barcelona будет хуже :) Хуже они - в OGR.
У кого есть 4-ядерные интел? Кто покажет бенчмарк на нем... 27.11.07 18:33  
Автор: SergNe0 <Sergey> Статус: Member
<"чистая" ссылка>
У кого есть 4-ядерные интел? Кто покажет бенчмарк на нем огров?
я же показывал, примерно 150 меганод на 2.33 ГГц 28.11.07 18:38  
Автор: michaek Статус: Незарегистрированный пользователь
Отредактировано 28.11.07 18:47  Количество правок: 1
<"чистая" ссылка>
это на amd64 linux
А не проще результат Core2 Duo умножить на 2, ведь... 27.11.07 18:50  
Автор: Алекс <Алексей aka cosmo_vk> Статус: Member
<"чистая" ссылка>
> У кого есть 4-ядерные интел? Кто покажет бенчмарк на нем
> огров?
А не проще результат Core2 Duo умножить на 2, ведь архитектура то не менялась.
Покажите результат Core2 Duo :) 28.11.07 08:01  
Автор: SergNe0 <Sergey> Статус: Member
<"чистая" ссылка>
1  |  2 >>  »  




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach