2010-04-29 2 views
1

В сообществах Crypto обычно измеряется производительность алгоритма в циклах/байтах. Мой вопрос в том, какие параметры в архитектуре ЦП влияют на этот номер? За исключением тактовой Ofcourse :)Вычисления циклов/байтов

ответ

0

два важных фактора:

  1. ЕГО процессор, или более конкретно, как тесно инструкция процессора сопоставить операции, которые вам нужно выполнить, - если вы можете выполнить заданную операцию в одной команде одного процессора, но для этого требуется 3 инструкции для другого ЦП, тогда первый процессор будет , вероятно, быстрее. Если у вас есть определенные криптографические инструкции для CPU или расширения, такие как SIMD, которые можно использовать, то тем лучше.

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

0

Вот некоторые особенности процессора, которые могут повлиять на циклы/байты:

  • глубину трубопровода
  • количество МА и/или FPU, способного работать параллельно размер
  • из кэш-памяти
  • алгоритмы предсказания ветвлений
  • алгоритмы для обработки промахов кэша

Кроме того, вы можете быть заинтересованы в общей проблеме оценки WCET (в худшем случае время выполнения)

0

в основном:

  • пропускной способности шины памяти
  • инструкции процессора на цикл

Сколько памяти может иметь процессор в секунду в секунду ограничивающий фактор. Это зависит от алгоритма и того, насколько большая часть работы связана с доступом к памяти. Кроме того, какие части памяти, к которым обращаются, повлияют на то, насколько хорошо работает кеш памяти.

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