Разница между размером слова и тактовой частотой? - PullRequest
2 голосов
/ 23 февраля 2011

Я понятия не имею, является ли мой вопрос актуальным или нет. Но я хотел бы знать, как оба эти фактора влияют на производительность процессора? Единственное, что я знаю для процессора с той же архитектурой, - чем выше тактовая частотачем быстрее процессорная способность процессора, но как насчет размера слова? Как это повлияет на скорость процессора и какой из них действительно определяет скорость процессора? Противоречит ли это друг другу? Спасибо.

Ответы [ 5 ]

1 голос
/ 24 февраля 2011

Теоретически, больший размер слова делает код немного медленнее . Причина в том, что в 64-битной архитектуре указатели являются 64-битными словами, поэтому структуры данных, которые полны указателей (списки, деревья, хеш-таблицы ...), как правило, используют больше оперативной памяти, чем эквивалентный код на 32 архитектура Общая ОЗУ медленная (она не реагирует так быстро, как хотелось бы ЦПУ), поэтому ЦП встраивает небольшой объем быстрой ОЗУ, называемый кешем, где хранятся наиболее часто используемые данные. Размер кэша ограничен (обычно 32 кБ на современном x86 от Intel). 64-разрядные указатели затрудняют хранение процессором столько элементов данных, что снижает производительность.

Однако ...

Есть несколько предостережений, особенно на платформах x86:

  1. Во многих приложениях основная часть данных не указатели. Например. в трехмерном приложении (игре) большинство данных - это изображения (текстуры) и координаты объекта. На такие данные не влияет размер слова по умолчанию для платформы.

  2. 64-разрядные указатели позволяют приложению легко обращаться к более чем 4 ГБ ОЗУ. Для приложений, требующих ОЗУ (например, редактирования фотографий) на машине, имеющей более 4 ГБ ОЗУ, 64-разрядные слова позволяют использовать больше ОЗУ, которое, несмотря на свою медлительность, все же значительно быстрее, чем жесткий диск. В той же ситуации 32-разрядное приложение должно было бы манипулировать блоками данных между оперативной памятью и жестким диском.

  3. На процессорах x86 (именно так и происходит на всех современных ПК и Mac) по историческим причинам 64-битный режим поставляется не только с 64-битными регистрами; он также предлагает вдвое больше регистров приложению, и это значительно повышает производительность. 64-битный режим также поставляется с SSE2, который обеспечивает более быструю обработку данных с плавающей запятой, чем те, которые использовались ранее процессорами x86.

Поэтому на ПК или Mac, по возможности, предпочитают 64-битные ОС и приложения. Лучшая производительность 64-битного кода , а не является следствием большего размера слова; это следствие других особенностей, которые исторически сложились в 64-битном режиме на этих архитектурах.

В других системах (например, PowerPC), когда доступны как 32-битный, так и 64-битный режимы, обычно предпочтительнее 32-битный, за исключением приложений, требующих памяти (которые хотят получить доступ к более чем 4 ГБ ОЗУ, при условии, что этот объем ОЗУ доступен) и для очень немногих приложений, которые хотят выполнять вычисления с использованием более чем 32-битных целых чисел (например, это происходит с некоторыми криптографическими алгоритмами).

0 голосов
/ 24 февраля 2011

на тактовую частоту не влияет размер слова, поскольку размер слова определяется размером шины данных, поэтому процессор считывает / записывает из / в память только один раз, независимо от того, включен он на 32 или 64бит.

0 голосов
/ 23 февраля 2011

В теории ...

Когда мы измеряем передачу данных чтения / записи памяти ЦП, поток памяти в байтах в секунду составляется:

  1. Размер слова памяти (ширина)в байтах
  2. Тактовая частота процессора
  3. тактов процессора на одно чтение / запись

DataTransfer = WordSize * CpuClock / RW_Cycles

РЕДАКТИРОВАТЬ:

Я сидел в теории!Теоретически это уравнение работает на 100%, а также на процессорах DSP или логике FPGL.В современных процессорах это верно для логики DMA, так почему же -1?

0 голосов
/ 23 февраля 2011

Ну, все это влияет на скорость ... У вас есть размер шины памяти, размер шины процессора, размер строки кэша, размер регистра, тактовые частоты (могут различаться в разных частях ЦП), различное количество циклов винструкции, задержки команд, многопоточность микросхем, суперскалярные исполнительные единицы и т. д. Нет простой формулы для определения тактовой частоты и размера слова для сравнения единиц и определения, что быстрее.Очевидно, что 8-разрядный процессор с частотой 1 МГц будет медленнее, чем 64-разрядный процессор с частотой 3,2 ГГц, но определение того, является ли 64-разрядный процессор с частотой 1,8 ГГц быстрее, чем 32-разрядный компьютер с частотой 2,4 ГГц, представляет большую проблему и может зависетьна точную рабочую нагрузку.Профилирование вашей рабочей нагрузки - единственный верный способ узнать.

0 голосов
/ 23 февраля 2011

В большинстве случаев процессор копирует данные из одного места в другое. Если он может сделать это с гранулярностью 64 бита вместо 8 бит, он идет в 8 раз быстрее.

Это тот же принцип с операциями. 32-разрядное добавление может выполняться в 4 раза быстрее на 32-разрядном ЦП, чем на 8-разрядном ЦП (не считая усиления при доступе к памяти).

РЕДАКТИРОВАТЬ (о тактовой частоте): Все операции ЦП (загрузка из памяти, сохранение в памяти, добавление значений ...) требуют заданного количества тактов, которые обычно выполняются, обычно один такт для процессора RISC. Длительность такта часов напрямую зависит от частоты часов. Частота 1 ГГц означает 1 миллиард тактов в секунду, то есть один миллиард операций с ЦП, выполняемых каждую секунду. С тактовой частотой 2 ГГц процессор может выполнять вдвое больше операций за одну секунду.

...