Производительность компьютера — больше, чем просто тактовая частота

0
1

Если бы мне пришлось спросить, какой процессор имеет лучшую производительность: Intel Celeron 2,4 ГГц или Core 2 Duo 1,8 ГГц, большинство из вас слышали достаточно о популярных двухъядерных чудесах Intel, чтобы понять, что это вопрос с подвохом. Более того, многие из вас даже знали бы причины, по которым двухъядерная архитектура более эффективна, и смогли бы объяснить, что Core 2 Duo способен работать над несколькими задачами одновременно. Однако, если это предел ваших знаний о микропроцессорах, эта статья для вас. При оценке производительности компьютерного процессора следует учитывать четыре основные концепции аппаратного обеспечения. Они есть:

  • Кэш
  • Тактовая частота
  • Трубопроводы
  • Параллелизм

Однако прежде чем мы перейдем к этим темам, важно понять основы работы процессора. Большинство компьютеров имеют 32-разрядные процессоры, и термин «32-разрядный», вероятно, вы часто слышали. По сути, это означает, что компьютер понимает только 32-битные инструкции. В типичной инструкции первые шесть битов сообщают процессору, какой тип задачи выполнять и как обрабатывать оставшиеся 26 бит инструкции. Например, если оператор должен был выполнить сложение двух чисел и сохранить результат в ячейке памяти, оператор мог бы выглядеть следующим образом:

На этом рисунке первые 6 бит образуют код, который сообщает процессору выполнить сложение, следующие 9 бит определяют расположение в памяти первого операнда, следующие 9 бит определяют расположение в памяти второго операнда, а последние 8 бит биты определяют место в памяти, где будет сохранен результат. Конечно, разные инструкции будут по-разному использовать оставшиеся 26 бит, а в некоторых случаях они даже не будут использовать их все. Важно помнить, что эти инструкции о том, как работает компьютер, и хранятся вместе на вашем жестком диске в виде программы. При запуске программы данные (включая инструкции) копируются с жесткого диска в оперативную память, и аналогичным образом часть этих данных копируется в кэш, с которым может работать процессор. Таким образом, все данные архивируются на более крупном (и более медленном) носителе.

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

Скорость компьютерных часов — это то, что дает компьютеру ощущение времени. Стандартной единицей времени для компьютеров является один цикл, который может длиться от нескольких микросекунд до нескольких наносекунд. Задачи, которые инструкции предписывают компьютеру выполнять, разбиваются и планируются в эти циклы, чтобы аппаратные компоненты никогда не пытались обрабатывать разные вещи одновременно. Иллюстрация того, как выглядит тактовый сигнал, показана ниже.

Для выполнения инструкции множество различных аппаратных средств должны выполнить определенные шаги. Например, одна аппаратная секция будет отвечать за выборку инструкции из памяти, другая секция будет декодировать инструкцию, чтобы выяснить, где в памяти находятся нужные ей данные, еще одна секция будет выполнять вычисления с этими данными, а еще одна секция будет отвечать за сохранение результата в памяти. Вместо того, чтобы выполнять все эти шаги за один такт (и, следовательно, иметь одну инструкцию за цикл), более эффективно запланировать каждый из этих аппаратных шагов на отдельные циклы. Таким образом, мы можем каскадировать инструкции, чтобы максимально использовать доступное нам оборудование. Если бы мы этого не сделали, аппаратному обеспечению, ответственному за получение инструкций, пришлось бы ждать и ничего не делать, пока остальные процессы не будут завершены. Следующий рисунок иллюстрирует этот каскадный эффект:

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

Наконец, параллелизм — это идея наличия двух процессоров, работающих синхронно, чтобы теоретически удвоить производительность компьютера (многоядерность). Это здорово, потому что двум или более программам, работающим одновременно, не придется попеременно использовать ваш процессор. Кроме того, одна программа может разделить свои инструкции и заставить одни из них идти к одному ядру, а другие к другому ядру, что сокращает время выполнения. Однако у параллелизма есть недостатки и ограничения, которые не позволяют нам иметь более 100 базовых супермашин. Во-первых, несколько инструкций в одной программе требуют данных из результатов предыдущих инструкций. Однако, если инструкции обрабатываются на разных ядрах, одному ядру придется ждать завершения другого, и будут применяться штрафы за задержку. Кроме того, существует ограничение на количество программ, которые может использовать один пользователь одновременно. 64-ядерный ЦП был бы неэффективен для ПК, так как большинство ядер будут бездействовать в любой момент времени.

Так что, когда вы покупаете персональный компьютер, количество конвейеров, скорее всего, не будет указано на корпусе, и даже размер кэша, возможно, потребуется найти в Интернете, так как же мы узнаем, какие процессоры работают лучше всего?

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

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

Кроме того, для более подробной статьи по этой теме, пожалуйста, прочитайте эту статью [http://andersondevs.com/ComputerPaper.htm]

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь