Популярно про процессоры. Часть 3

Сегодня мы продолжим рассказ об основных характеристиках процессоров (начало см. в «МБ» №20'2006, №21'2006). На сей раз речь пойдет о не слишком пока известных параметрах — количестве ядер и технологии Hyper-Threading.

Характеристика четвертая: два ядра и Hyper-Threading
За последние несколько лет бешеная некогда гонка частот (см. предыдущую часть статьи) сильно замедлилась, и перед производителями встал резонный вопрос – как же еще можно увеличить производительность процессора? Конечно, можно пойти по пути добавления функций, наращивания объема кэша (что, кстати, и сделала Intel в своем Pentium EE) и т.д. Но самым кардинальным решением, впервые в массово примененном в 2005 году, оказалось увеличение числа физических ядер на процессоре – два ядра фактически соответствуют двум процессорам в одном компьютере. Технология Hyper-Threading, применяемая Intel в старших моделях Pentium 4, работает схожим образом, однако там фактически имеется два виртуальных (!) процессора, тогда как физически ядро – одно.

Давайте попробуем чисто теоретически оценить преимущества двухъядерных процессоров. Как вы, быть может, помните, идея размещения двух процессоров в одном компьютере далеко не нова, но только в 2005 году мы получили два ядра в одной процессорной упаковке. В принципе, все положительные свойства традиционных двухпроцессорных систем перетекают на двухъядерные. Как, впрочем, и недостатки.
Начнем с многозадачности. Все современные операционные системы поддерживают параллельную работу нескольких приложений. Как это обеспечивается, спросите вы, ведь процессор ведь может выполнять только одно приложение в один момент времени? На самом деле все довольно просто: каждому приложению поочередно выделяются краткие временные промежутки. Так, если вы играете, а в фоне работает антивирус, то игра незаметно, но постоянно прерывается, чтобы процессор обработал и антивирусную задачу. Скорость игры несколько падает, да и отзывчивость (время реакции на действия пользователя) – тоже. Переход на два процессора сразу же дает преимущество: система способна выполнять два приложения одновременно. Игра будет “крутиться” на первом ядре, а антивирус с другими фоновыми задачами – на втором, ничему не мешая. Посмотрите, сколько приложений вы используете одновременно? Если больше одного (считая антивирус), то двухъядерный процессор обеспечит вашей системе преимущество в скорости, не говоря уже о великолепной отзывчивости. После работы за двухъядерной системой вам вряд ли захочется сесть обратно за традиционную неповоротливую одноядерку.
Теперь давайте разберемся с многопоточностью. Программистам должно быть хорошо известно, что с каждым приложением четко ассоциируется поток кода. В традиционной системе поток кода у приложения один; а значит, будь в системе хоть двадцать процессоров, приложение все равно будет работать на одном процессоре и в одном потоке. Соответственно, прироста в скорости работы приложения по сравнению с однопроцессорной системой вы не получите. Другое дело, если приложение разбивает себя на два или больше потоков. В этом случае каждый из них может выполняться на собственном процессоре (реальном или виртуальном), и прирост будет уже достаточно ощутимым. Скажем больше: переход на двухъядерный процессор в многопоточных приложениях дает прирост больший, чем банальное увеличение тактовой частоты – двухъядерный процессор с меньшей частотой оказывается быстрее, чем одноядерный с большей.
Возникает резонный вопрос: а какие приложение сегодня поддерживают работу в многопоточном режиме? Их уже немало, и число их продолжает расти. Назовем лишь самые распространенные: Adobe Photoshop CS 2, ABBYY FineReader 8.0, 3D Studio Max 8, кодеры DivX, Windows Media Encoder 9 и т.д. В играх ситуация немного похуже (сказывается долгое время разработки таковых), но и здесь есть примеры: “Периметр”, King Kong.
Все вышесказанное применимо не только к двухъядерным процессорам, но и к моделям Pentium 4, поддерживающим технологию Hyper-Threading. Эта технология в описанных выше условиях также дает прирост производительности, хотя и намного меньший, чем двухъядерные процессоры – все-таки два физических ядра работают быстрее двух виртуальных собратьев.
Кстати, 2006 год объявлен годом многоядерных процессоров. К концу года Intel планирует перевести все модели для массового рынка на два ядра, а одно ядро останется уделом лишь самых дешевых процессоров. Так что большинство новых игр и приложений уже будут поддерживать многопоточность, не говоря уже о том, что в многозадачной среде преимущество будет заметно сразу.
Единственным недостатком двухъядерных решений остается цена: такие процессоры дороже одноядерных собратьев аналогичного сегмента рынка. Однако как нам кажется, сейчас лучше выбирать младшую двухъядерную модель за $200-$300, чем одноядерного “середнячка” в том же ценовом диапазоне.

P.S. На стр. 18 вы можете прочитать отчёт о тестировании двухъядерного процессора Athlon64 X2, проведённом некоторое время назад в нашей тестовой лаборатории.


Рекомендуем почитать: