Каталог статей

Главная » Статьи » Статьи

Выбор процессора (часть 1)

Базовые критерии при выборе процессора

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

Производительность

«Теоретическая» производительность

Чисто теоретически, быстродействие (производительность, скорость — в данном случае мы рассматриваем все эти синонимы как равноправные) процессора вычисляется очень просто: процессор исполняет команды. Каждая команда имеет своё время исполнения. Даже не нужно иметь в руках сам процессор — соответствующие величины (время исполнения команд) можно, при желании, найти в документации, или кто-нибудь один раз не поленится вывести их эмпирическим путём и выложит результаты тестирования в интернет. На практике, как всегда, всё оказывается намного сложнее: некоторые команды, в зависимости от некоторых условий, исполняются за различное количество времени. Данные из памяти могут поступать не вовремя, и их приходится ждать, а тут ещё оказывается, что программа работает не в безвоздушном пространстве, а вместе с другими программами, и её выполнение может быть прервано, чтобы процессор уделил часть своего внимания другим программам, а ещё память может быть сегментирована, а ещё у операционной системы свои фоновые процессы есть… Чтобы завершить обсуждение теоретической производительности процессора, проще привести банальный пример: есть город, и нужно проехать из одного его конца в другой. Берём два процессора — ВАЗ-21099 и какой-нибудь навороченный спорткар. Кто быстрее проедет? Любой бывалый автомобилист скажет: Ну-у-у… Тут, знаете ли, столько факторов влияет, что модель автомобиля может оказаться из них самым малозначащим. И, конечно, будет прав — любые технические характеристики, как то: мощность двигателя, ширина дорожного просвета, габариты автомобиля, время разгона до 100 км/ч, жёсткость подвески, приёмистость и т.п. — в некой конкретной ситуации могут сыграть, а могут и не сыграть. А конкретных ситуаций — столько же, сколько городов, и все — не учтёшь.



Вся эта информация, скорее всего, ничего не скажет вам
о реальной производительности процессора

На этом простом примере мы закончим с попытками анализа потребительских свойств сложного технического устройства в условиях постоянно меняющейся окружающей среды: нет методов такого анализа, и вряд ли в ближайшее время они появятся. У процессора, как и у автомобиля, есть масса технических характеристик: частота работы ядра, частота работы кэша различных уровней и их объём, частота шины, частота контроллера памяти и количество каналов этого контроллера (не у всех процессоров), количество ядер, и так далее. Могут ли эти технические характеристики дать нам ответ на вопрос - какой из процессоров будет быстрее работать с некой конкретной программой? Нет, не могут. Ни одна из них по отдельности, и даже не все они в совокупности. Так же, как нет универсального и гарантированно правильного ответа на вопрос о том, какой автомобиль быстрее пересечёт случайно взятый город из одного конца в другой.

«Практическая» производительность

Именно поэтому скорость процессоров сейчас принято сравнивать на основании результатов тестов. Что такое в данном контексте тест? Это, по сути, — гоночный заезд. Правда, с одной оговоркой: водители у всех автомобилей абсолютно одинаковые, ибо водителем в данном случае является Операционная Система (вы почти наверняка знаете название хотя бы одной из них, самой популярной ОС — Microsoft Windows). Операционная система управляет исполнением программ, и в данном смысле она даже больше чем просто водитель. Она, в некотором смысле, — одновременно и водитель, и светофоры, и указатели, и даже транспортная артерия. Смысл гоночного заезда в том, что под управлением одной и той же операционной системы на разных процессорах запускаются одни и те же программы. А затем каждому процессору выставляется определённый балл, в зависимости от того, насколько удачно он справился с выполнением данной конкретной программы — быстрее других процессоров или медленнее. Программу, в данном случае, можно сравнить с неким городом, который нужно проехать — у каждой программы своя специфика, и вовсе не обязательно процессор, который хорошо справился с одной программой, хорошо справится с другой.



Даже в одной и той же программе соотношение
между скоростью процессоров может быть различным
в зависимости от используемых опций

Разумеется, такой метод оценки процессоров имеет свои недостатки. Один из них лежит на поверхности: мы не можем предсказать, как данный конкретный процессор себя поведёт с той программой, на которой он не был протестирован. Оправдание для использования такого метода тоже звучит очень просто: да, мы действительно не можем этого предсказать. И никто не может. Поэтому остаётся пользоваться теми данными, которые мы в состоянии проанализировать. Хорошая новость состоит в том, что если постепенно увеличивать количество программ, в которых проводится тестирование скорости, то, начиная с определённого этапа, мы замечаем появление некой закономерности: в среднем, по всем заездам, некоторые процессоры выигрывают чаще других. Чем больше программ используется в тестах — тем достовернее становится это усреднение. Конечно, мы всё так же не можем предсказать, как процессор поведёт себя с той программой, с которой его не тестировали. Но, по крайней мере, мы можем сказать, что, с достаточно большой вероятностью (на основании усреднения результатов уже проведенных тестов), он окажется быстрее или медленнее другого процессора и в данном случае тоже. Это, конечно, не способ гарантированно избежать ошибки в выборе — но это способ гарантированно избежать ошибки в выборе — но способ сделать её менее вероятной.

Кроме того, не следует забывать, что кроме глобальных тенденций, существуют ещё и локальные — относящиеся к определённым классам программ. Так, если архивация с помощью архиватора 7-Zip с большим размером словаря удаётся хорошо процессорам с большим кэшем и системам с малой латентностью памяти, и эта же тенденция подтверждается архиватором WinRAR — то мы вправе сделать предположение, что и другие архиваторы, использующие словарь большого объёма, предпочтут процессоры с большим кэшем и память с низкой латентностью. Здесь как раз уместно вспомнить предыдущий абзац о теоретической производительности: да, некая характеристика сама по себе лишь очень опосредовано говорит о скорости исполнения процессором реальных программ. Однако с помощью тестов мы вполне можем выявить закономерности влияния некоторых характеристик на скорость исполнения программ, объединённых некой общей задачей, и это позволяет нам быть точнее в прогнозах, даже если речь идёт о ПО, на котором тесты не проводились.

Подытоживая: скорость процессора при выполнении конкретных задач (программ) — в общем случае, достаточно неоднозначно зависит от того, какая цифра стоит напротив какой-то из его технических характеристик, будь то частота, объём кэша, или что-либо другое. По крайней мере, степень неоднозначности достаточно высока, чтобы отказаться от попыток объективно оценить скорость процессора на основании одних только его технических характеристик. Главным объективным критерием производительности по состоянию на сегодняшний день являются тесты. Чем больше тестов вы сможете проанализировать — тем лучше. Чем больше в списке тестов наименований тех программ, с которыми вы встречаетесь в своей повседневной деятельности — тем ещё лучше. Если список используемого в тестах ПО не просто взят с потолка по принципу абы побольше, а чётко структурирован по группам — это иногда позволяет нам сделать из анализа полученных результатов ещё больше интересных выводов. Иного пути, к сожалению, — не существует. По крайней мере, на данный момент времени.

Казалось бы, в данной главе сказано всё. Однако послесловие необходимо. Оно будет простым: да, скорость процессора является одним из объективных критериев для его выбора. Одним из. Но не стоит забывать, что весомость того или иного критерия определяете вы сами. Вполне может статься, что вы используете компьютер исключительно для просмотра страниц в браузере, чтения электронной почты, и, например, общения по ICQ. Тесты в этих приложениях вы вряд ли где-нибудь найдёте, и по одной простой причине: скорость любого более-менее современного процессора для такого класса приложений является даже не достаточной, а просто избыточной. Поэтому в окончании данной главы мы неспроста оставим вопрос: задумайтесь для начала — а так ли она для вас важна, эта скорость?

Функциональность

Данное понятие достаточно слабо применимо к CPU, так как по идее должно означать, что одни процессоры что-то могут, а другие — нет. Де-факто же практически любой x86(-64) процессор может справиться с любой задачей (то есть на компьютере с данным процессором можно будет запустить любую программу) — различие может состоять только в скорости исполнения. Правда, с другой стороны, фатально низкая скорость работы программного обеспечения может привести к существенному дискомфорту в работе, вплоть до полного её обессмысливания. Поэтому мы всё же рассмотрим вопрос о функциональности современных процессоров, но с оговоркой: речь будет идти не о том, что одни процессоры могут справиться с определённой практической задачей, а другие нет, а лишь о том, что процессоры, обладающие определённой функциональностью, справляются с некоторыми задачами существенно лучше (в частности, быстрее). Итак, какие различия в функциональности могут существовать между современными процессорами?

Поддержка дополнительных наборов инструкций

Некоторые процессоры могут не обладать поддержкой каких-нибудь дополнительных наборов инструкций. За всё время существования архитектуры x86 таких дополнений было достаточно много. Однако, поскольку мы всё-таки рассматриваем современные CPU, а не все x86-совместимые, начиная с 1978 года, когда Intel выпустила i8086, то нет смысла в данном списке перечислять такие дополнительные наборы инструкций как MMX, SSE, SSE2 и SSE3. Их поддерживают все CPU, которые сейчас можно купить в магазине (SSE3 не поддерживают только очень старые Pentium 4 и Athlon 64, но мы сомневаемся, что вы сможете их купить где-нибудь кроме как на барахолке). Соответственно, остались наборы SSE4, SSE4.1 и SSE4.2. Более-менее существенно влиять на скорость исполнения реального ПО они в 99% случаев не могут, так как содержат не так много команд (причём довольно специфических), да и компиляторы эти наборы поддерживают не так хорошо, как более старые. Таким образом, мы можем констатировать, что на момент написания данного материала существенные различия в функционале между x86-64 процессорами, с точки зрения поддержки дополнительных наборов команд, — отсутствуют (если кому-то очень захочется упрекнуть нас в излишней категоричности и рассказать, как лично он тоскует без SSE4.1 — нам останется лишь пожать плечами: а зачем человеку, доподлинно знающему, насколько важен для него SSE4.1, читать подобного рода статьи?)

Технологии виртуализации и Execute Disable (NX) Bit

Вкратце о данной функциональности современных десктопных процессоров применительно к среднестатистическому домашнему или офисному использованию, знать нужно следующее: поддержка Execute Disable (NX) Bit не является достоинством по той же причине, по которой не является достоинством поддержка дополнительных наборов инструкций MMX, SSE, SSE2 и SSE3 — данный функционал присутствует в любом современном процессоре. Поэтому мы даже не будем останавливаться на том, за что он отвечает: какая разница? С технологией виртуализации всё с точностью до наоборот: если вы знаете, что это такое — то наверняка сами можете ответить на вопрос о том, нужна вам её поддержка, или нет. Если не знаете — значит, с вероятностью 99,9% она вам не нужна. Поймите нас правильно: действительно не имеет смысла объяснять принципы функционирования технологии виртуализации в рамках подобного материала. Вы ровным счётом ничего не потеряли. Например, автор данного материала эти принципы знает — но в его практической деятельности, несмотря на постоянный контакт с самыми различными компьютерными системами, ему эти знания не пригодились ни разу, равно как и сама технология.

64-битность

Также процессоры могут поддерживать или не поддерживать возможность работы в 64-битном режиме (у AMD он называется AMD64, у Intel — EMT64). Имеет ли 64-битный режим какие-то осязаемые преимущества в скорости по отношению к 32-битному? Об этом до сих пор идут непрекращающиеся споры (несмотря на то, что первый 64-битный x86-процессор — Athlon 64 — был выпущен компанией AMD в 2003 году). Если попытаться быть беспристрастным, то итог этих споров на данный момент можно описать примерно следующим образом: с точки зрения чистой теории, 64-битный режим (и, соответственно, 64-битное ПО) имеет несколько особенностей, которые могут ускорить исполнение программ, и несколько особенностей, которые могут исполнение программ замедлить. Эффект ускорения (опять-таки, с чисто теоретической точки зрения) по идее, всё-таки должен быть больше, чем замедления, поэтому 64-битная программа, использующая все возможности 64-битного процессора, будет несколько быстрее, чем её 32-битный аналог. Это — теория. На практике, в большинстве случаев, для достижения более-менее серьёзного ускорения от перехода на 64 бита, программное обеспечение нужно соответствующим образом оптимизировать (а иногда и переписывать).И до тех пор, пока существуют вполне работоспособные компьютеры с 32-битными процессорами, заниматься специальной оптимизацией под 64-битность подавляющему количеству производителей и разработчиков ПО - лень. Большинство из них отделались отпиской — перекомпилировали старые программы 64-битными компиляторами, и бодро отрапортовали об освоении сектора 64-битного ПО. Очевидно, что толку от такого подхода, с точки зрения быстродействия, — никакого.



Старый и новый логотипы одного и того же процессора — AMD Athlon 64 X2
Отгадайте: в какие времена AMD больше гордилась тем, что это 64-битный процессор? :)

Тем не менее, несмотря на всё выше написанное, достаточно серьёзная польза от 64-битности есть, в том числе с точки зрения скорости, и в особенности, если речь идёт о действительно мощном ПК или рабочей станции, предназначенных для выполнения серьёзных, ресурсоёмких задач под управлением ОС последнего поколения (например, Microsoft Windows Vista). Компьютеры, оснащённые 32-битными процессорами, могут использовать максимум 4 ГБ ОЗУ (автор знает магическое сочетание из трёх букв — PAE — но намеренно упрощает ситуацию, считая подобное упрощение вполне оправданным, исходя из десктопной ориентированности данного материала). Более того, 32-битные ОС от Microsoft из установленных в системный блок 4 ГБ памяти могут использовать далеко не весь объём. Любой 64-битный процессор под управлением 64-битной операционной системы снимает это ограничение, в результате чего и 4 ГБ используются под Windows с большей пользой, и установка ещё большего объёма памяти не вызывает трудностей. В случае, когда на компьютере работают очень сложные и ресурсоёмкие приложения (или, например, очень требовательные к ресурсам компьютерные игры), возможность установки 4 и более ГБ ОЗУ может оказать настолько сильное влияние на общее быстродействие компьютера, что даже не важно, стал ли быстрее работать процессор. С такой точки зрения, поддержка процессором возможности работать в 64-битном режиме, безусловно, очень полезна — устраняется одно из ограничений, могущих действительно сильно повлиять на производительность ПК как комплексной системы. Нужно только чётко понимать, какой именно бонус даёт поддержка 64-битности на сегодняшний день: этот бонус состоит не столько в выросшей скорости работы процессора, сколько в снятии ограничения на максимальный объём ОЗУ.

Поддержка различных типов памяти

Ввиду того, что у AMD контроллер памяти встроен в процессор ещё со времён первых Athlon 64, да и Intel недавно решила пойти по тому же пути — возникла проблема, которую ещё 6-7 лет назад даже многие IT-специалисты назвали бы весьма странной: определённые процессоры стали совместимы исключительно с определёнными типами памяти. Так, ранние AMD Athlon 64 поддерживают исключительно стандарт DDR, более поздние Athlon 64/X2 и Phenom — DDR2, а новые процессоры Intel Core i7 так и вовсе — DDR3. Казалось бы, мы наблюдаем некое различие в функциональности. На самом деле, оно является совершенно надуманным. Какую память требует процессор — такую ему, естественно, и нужно установить. Но делать какие-то выводы о функциональности или быстродействии одновременно сосуществующих на рынке процессоров, исходя из того, какой тип памяти они поддерживают — это делание из мухи слона.

Разумеется, если мы будем сравнивать, например, процессоры AMD 4-5-летней давности с поддержкой DDR-400, с нынешними процессорами AMD с поддержкой DDR2-800/1066 — мы увидим разницу и (частично) в функциональности, и в быстродействии. Благодаря типу памяти? В том числе, но отнюдь не исключительно благодаря ему. Просто это новые процессоры, они быстрее старых (в том числе по частоте), и начиная с определённого периода, они смогли задействовать возможности новой памяти. Начиная с какого периода? Практика показывает, что начало такого периода наступает примерно тогда же, когда процессоры предыдущего поколения начинают уходить с рынка, так сказать, естественным путём — старые модели снимаются с производства, остатки распродаются, и т.п. Однако если мы начнём сравнивать равночастотные процессоры-одногодки, с примерно одной и той же архитектурой, один из которых поддерживает уже новый тип памяти, а второй — ещё старый, при этом они примерно равны по прочим техническим характеристикам — вряд ли мы сможем увидеть хоть сколько-нибудь существенную разницу.



Зато красиво смотрится...

Количество ядер

Сейчас тема многоядерности очень популярна, даже в low-end линейках обоих ведущих производителей (AMD Sempron, Intel Atom и Celeron) появились двухъядерные процессоры. Даёт ли наличие второго ядра какую-то существенную дополнительную функциональность или прирост быстродействия? Как это часто бывает, понять суть становится намного проще, если сначала распрощаться с Главным Мифом. Главный миф нашего времени звучит примерно так: сейчас даже у рядового пользователя в системе так много фоновых процессов, что чем больше ядер, тем лучше — как же иначе будут работать антивирусный монитор, файрволл, торрент-клиент, ICQ, Skype? Несостоятельность данного мифа доказывается самым очевидным образом: весь этот зоопарк у массы людей превосходно работает на одноядерных процессорах и по сей день. А до выхода первых многоядерных CPU примерно похожий зоопарк как-то работал вообще у всех — и никто не жаловался (те же антивирусные мониторы и файрволлы начали использовать задолго до выхода Pentium D и Athlon 64 X2). Автору данной статьи как-то пришлось играть на одноядерной системе в Quake 4 на фоне антивирусного монитора, uTorrent, eMule, QIP и Skype — и, честное слово, никаких особенных тормозов не ощущалось. Современные операционные системы достаточно умны, чтобы грамотно распределить между приложениями ресурсы даже одного вычислительного ядра. Поэтому, как минимум, стоит достаточно внимательно проанализировать активность ваших собственных фоновых процессов.

Также хотелось бы подробно остановиться на ещё одном… не совсем мифе, но, скажем так, — существенном преувеличении. Агрессивные сторонники многоядерности в своей агитации постоянно делают упор на то, что фоновый процесс может быть ресурсоемким, то есть потреблять более значимое количество ресурсов процессора, а не тот минимум, которым довольствуются прилично себя ведущие антивирусы или клиенты пиринговых сетей. В качестве доказательства приводятся произвольно взятые примеры двух параллельно исполняемых тяжёлых задач: от одновременного рендеринга трёхмерной сцены и работы в графическом редакторе до кодирования аудио или видео на фоне игры в какую-нибудь стрелялку. Мы не будем обвинять данных господ в нереалистичности и надуманности ситуаций — откуда нам знать, как кто развлекается? Однако позволим себе усомниться в том, что описанная ситуация является действительно типичной для большинства пользователей. Так, например, прямо сейчас, на фоне написания данной статьи, на том же компьютере происходит кодирование видео. Это действительно ресурсоёмкий фоновый процесс — но основной процесс (написание текста) при этом ресурсоёмким не является!

С другой стороны, сегодня уже трудно согласиться с популярной паранойей прошлых лет из серии всё это чистый маркетинг, и он нужен только производителям процессоров, чтобы вытянуть из пользователей больше денег. Количество программ, которые умеют в одиночку использовать несколько вычислительных ядер и получают от многоядерности реальную прибавку в скорости, растёт достаточно быстрыми темпами. С этой точки зрения, наиболее показательным нам кажется падение последнего одноядерного бастиона — компьютерных игр. На сегодняшний день почти все современные игровые движки обзавелись (или спешно обзаводятся) поддержкой многоядерных CPU, и эффект от неё виден в реальных тестах. Давно уже подтянулись всевозможные видеокодеки и графические редакторы, и даже некоторые системные утилиты. Процесс адаптации и оптимизации пользовательского ПО под многоядерные процессоры действительно идёт, и идёт активно. Поэтому наша общая рекомендация будет такой: двухъядерный процессор на данный момент является оптимальным выбором как в силу достаточно высокой применимости к реальным задачам, так и потому, что одноядерные процессоры скоро пропадут как класс. Но о процессоре с количеством ядер более двух, стоит задумываться исключительно тем, кто совершенно чётко себе представляет, для каких конкретных задач он будет его использовать.

Категория: Статьи | Добавил: SHADOW (03.07.2009)
Просмотров: 914 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Категории раздела
Статьи [4]
Компьютер и здоровье [10]
Обзоры [15]
Обзоры железа, софта, игр и т.п.
Превью [11]
Рецензии [11]
Меню сайта
Добавить
Узнай свой IP
Поиск
Мини-чат
Друзья сайта
Сайт СЕРЬЁЗНЫЕ ЛЮДИ С ЧУВСТВОМ ЮМОРА
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0