Параметры, влияющие на производительность пк
Производительность ПК является важнейшей его характеристикой. Все факторы и параметры, влияющие на производительность ПК, можно в общем случае разделить на программные и аппаратные.
Влияние программных факторов на производительность ПК определяется правильным выбором и настройкой как операционной системы, так и конкретных программных приложений.
Среди множества аппаратных параметров, влияющих на производительность ПК, наиболее важными являются:
быстродействие микропроцессора — определяется тактовой частотой;
пропускная способность системной шины — определяется скоростью обмена с внешними устройствами ПК;
время обращения к внешним и внутренним запоминающим устройствам;
емкость памяти внешних и внутренних запоминающих устройств;
быстродействие внешних устройств, подключаемых к ПК.
Следует также отметить, что на производительность ПК большое влияние оказывает подготовленность и компетентность пользователя.
Повысить производительность ПК можно не только за счет выбора процессора с большей тактовой частотой — можно установить второй процессор (при наличии соответствующей материнской платы и программного обеспечения). На сегодня многопроцессорный режим могут использовать профессиональные версии ОС, а также ряд программ для обработки графики и видео (Adobe Premiere, 3D Max и др.). Существует и еще один (более распространенный) подход — использование нескольких процессорных ядер в одном корпусе.
Вопросы для самопроверки
Как можно классифицировать ЭВМ и ПК?
Что является основными и дополнительными устройствами ПК?
Что такое микропроцессор и какие функции он выполняет?
Какие основные разъемы находятся на материнской плате?
Что такое порт ввода-вывода?
Какие функции выполняет видеоадаптер (видеокарта)?
Какая память является внутренней памятью компьютера?
Какова тенденция развития внешних запоминающих устройств?
Что такое разрешающая способность монитора?
Какие основные характеристики имеет принтер?
По каким признакам можно классифицировать сканеры?
Для чего предназначены плоттер и дигитайзер?
Какие функции выполняет модем?
Что понимают под конфигурацией компьютера?
От чего зависит производительность ПК?
3. Программное обеспечение информационных технологий
3.1. Программное обеспечение и его классификация
Программное обеспечение (англ. software)— это совокупность программ, обеспечивающих функционирование компьютеров и решение задач предметных областей.
Программное обеспечение (ПО) представляет собой неотъемлемую часть компьютерной системы, является логическим продолжением технических средств и определяет сферу применения компьютера.
ПО современных компьютеров включает множество разнообразных программ, которое можно условно разделить на три группы:
Системное программное обеспечение (системные программы)— управляет работой компьютера и выполняет различные вспомогательные функции, например, управление ресурсами компьютера, создание копий информации, проверка работоспособности устройств компьютера, выдача справочной информации о компьютере и др.
Прикладное программное обеспечение (прикладные программы)— предназначено для решения конкретных задач пользователя в предметных областях.
Инструментальное программное обеспечение (инструментальные системы)— это средства для создания программного обеспечения и информационных систем. К нему относят системы программирования (для разработки новых программ), инструментальные среды (для разработки приложений) и системы моделирования.
По условиям распространенияпрограммное обеспечение подразделяется на следующие категории:
1. Коммерческое ПО— распространяется на платной основе. Клиент обязан приобрести у производителя или собственника пакета программ сам пакет и лицензию на его использование. Подавляющее большинство популярных программ относится именно к этому классу.
2. Общедоступное ПО— совершенно бесплатно и распространяется без всяких ограничений.
3. Бесплатное ПО— может свободно использоваться, но его создатели сохраняют за собой авторские права.
4. Условно-бесплатное ПО— любой пользователь может инсталлировать его на своем компьютере и оговоренное время свободно использовать, по истечении которого необходимо приобрести данное ПО (либо у регионального дилера, либо непосредственно у производителя), в противном случае оно перестает работать.
5. «Рекламно-оплачиваемое» ПО— это ПО с внедренной рекламой либо ПО, при получении которого пользователь обязан заполнить мини-анкету (об интересах, о работе и т.п.), на основании которой формируются «рекламные рассылки» — в обоих случаях пользователь приобретает ПО бесплатно, а автор получает деньги от рекламодателя.
Также существуют так называемые демонстрационные (демо-версии)ибета-версии (пробные версии)коммерческого ПО, которые распространяются свободно. Обычно демо-версии предназначены для рекламных целей или обучения и в них часто имеются какие-либо ограничения, не позволяющие использовать данное ПО в полном объеме. Бета-версии выпускаются фирмами-производителями немного раньше, чем полные версии программ с целью тестирования ПО.
ПО как предмет купли-продажи характеризуется:
эффективностью работы;
полнотой и системностью реализованных функций;
качеством технической документации;
внутренней архитектурой;
удобством интерфейса пользователя;
требованиями к техническим параметрам ПК (типу процессора, объему оперативной и дисковой памяти и др.)
требованиям к операционной системе;
и т.д.
В условиях существования рынка программных продуктов важными характеристиками ПО также являются стоимость; известность фирмы-разработчика и самого ПО; количество и длительность продаж; наличие на рынке аналогичных программных продуктов и т.п.
Аппаратные составляющие производительности компьютера
Многие пользователи задаются вопросом, что в наибольшей степени влияет на производительность компьютера?
Оказывается, однозначного ответа на этот вопрос дать нельзя. Компьютер – это набор подсистем (памяти, вычислительная, графическая, хранения), взаимодействующих друг с другом через материнскую плату и драйверы устройств. При неправильной настройке подсистем они не обеспечивают максимальную производительность, которую могли бы выдать.
Комплексная производительность складывается из программных и аппаратных настроек и особенностей.
Перечислим их.
- Количество ядер процессора – 1, 2, 3 или 4
- Частота процессора и частота системной шины (FSB) процессора – 533, 667, 800, 1066, 1333 или 1600 МГц
- Объем и количество кэш-памяти процессора (CPU) – 256, 512 Кбайт; 1, 2, 3, 4, 6, 12 Мбайт.
- Совпадение частоты системной шины CPU и материнской платы
- Частота оперативной памяти (RAM) и частота шины памяти материнской платы – DDR2-667, 800, 1066
- Объем оперативной памяти – 512 и более Мбайт
- Используемый на материнской плате чипсет (Intel, VIA, SIS, nVidia, ATI/AMD)
- Используемая графическая подсистема – встроенная в материнскую плату или дискретная (внешняя видеокарта со своей видеопамятью и графическим процессором)
- Тип интерфейса винчестера (HDD) – параллельный IDE или последовательные SATA и SATA-2
- Кэш винчестера – 8, 16 или 32 МБ.
Увеличение перечисленных технических характеристик всегда увеличивает производительность.
На данный момент большинство выпускаемые процессоров имеют как минимум 2 ядра (кроме AMD Sempron, Athlon 64 и Intel Celeron D, Celeron 4xx). Количество ядер актуально в задачах 3D-рендеринга или кодирования видео, а также в программах, код которых оптимизирован под многопоточность нескольких ядер. В остальных случаях (например, в офисных и интернет-задачах) они бесполезны.
Четыре ядра имеют процессоры Intel Core 2 Extreme и Core 2 Quad со следующими маркировками: QX9xxx, Q9xxx, Q8xxx, QX6xxx;
AMD Phenom X3 – 3 ядра;
AMD Phenom X4 – 4 ядра.
Надо помнить, что количество ядер значительно увеличивает энергопотребление CPU и повышает требования по питанию к материнской плате и блоку питания!
А вот поколение и архитектура ядра сильно влияют на производительность любого процессора.
К примеру, если взять двухядерные Intel Pentium D и Core 2 Duo с одинаковой частой, системной шиной и кэш-памятью, то Core 2 Duo несомненно выиграет.
Также очень важно, чтобы совпадение частот различных комплектующих.
Скажем, если ваша материнская плата поддерживает частоту шины памяти 800 МГц, а установлен модуль памяти DDR2-677, то частота модуля памяти будет снижать производительность.
В то же время, если материнская плата не поддерживает частоту 800 МГц, а в то время как установлен модуль DDR2-800, то он работать будет, но на меньшей частоте.
Кэш памяти процессора в первую очередь сказывается при работе с CAD-системами, большими базами данных и графикой. Кэш — это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ, жёсткими дисками, браузерами и веб-серверами.
Когда CPU обращается к данным, прежде всего исследуется кэш. Если в кэше найдена запись с идентификатором, совпадающим с идентификатором затребованного элемента данных, то используются элементы данных в кэше. Такой случай называется попаданием кэша. Если в кэше не найдено записей, содержащих затребованный элемент данных, то он читается из основной памяти в кэш, и становятся доступным для последующих обращений. Такой случай называется промахом кэша. Процент обращений к кэшу, когда в нём найден результат, называется уровнем попаданий или коэффициентом попаданий в кэш.
Процент попаданий в кэш у процессоров Intel выше.
Все CPU отличаются количеством кэшей (до 3) и их объемом. Самый быстрый кэш – первого уровня (L1), самый медленный – третьего (L3). Кэш L3 имеют только процессоры AMD Phenom Так что очень важно, чтобы именно кэш L1 имел большой объем.
Мы протестировали зависимость производительности от объема кэш-памяти. Если вы сравните результаты 3D-шутеров Prey и Quake 4, являющих типичными игровыми приложениями, разница в производительности между 1 и 4 Мбайт примерно такова, как между процессорами с разницей по частоте 200 МГц. То же самое касается тестов кодирования видео для кодеков DivX 6.6 и XviD 1.1.2, а также архиватора WinRAR 3.7. Однако, такие интенсивно нагружающие CPU приложения, как 3DStudio Max 8, Lame MP3 Encoder или H.264 Encoder V2 от MainConcept не слишком сильно выигрывают от увеличения размера кэша.
Напомним, что кэш L2 гораздо больше влияет на производительность CPU Intel Core 2, чем AMD Athlon 64 X2 или Phenom, так как у Intel кэш L2 общий для всех ядер, а у AMD отдельный для каждого ядра! В этом плане, Phenom оптимальнее работают с кэшем.
Как уже было сказано, оперативная память характеризуется частотой и объемом. В то же время сейчас выпускается 2 типа памяти DDR2 и DDR3, которые различаются архитектурной, производительностью, частотой и напряжением питания – то есть всем!
Частота модуля памяти должна совпадать с частотой самого модуля.
Объем оперативной памяти также влияет на производительность операционной системы и на ресурсоемкие приложения.
Расчеты просты – ОС Windows XP занимает в оперативной памяти после загрузки 300-350 МБ. Если в автозагрузке находятся дополнительные программы, то они также загружают RAM. То есть свободных остается 150-200 МБ. Туда могут поместиться только легкие офисные приложения.
Для комфортной работы с AutoCAD, графическими приложениями, 3DMax, кодированием и графикой требуется не менее 1 ГБ оперативной памяти. Если же используется Windows Vista – то не менее 2 ГБ.
Часто в офисных компьютерах используются матерински платы, имеющие встроенную графику. Материнские платы на таких чипсетах (G31, G45, AMD 770G и т.д.) имеют букву G в маркировке.
Такие встроенные видеокарты используются часть RAM для видеопамяти, тем самым уменьшая объем доступного для пользователя пространства RAM.
Соответственно, для увеличения производительности встроенную видеокарту надо отключать в BIOS материнской платы, а в слот PCI-Express устанавливать внешнюю (дискретную) видеокарту.
Все видеокарты различаются графическим чипсетом, частотой работы его конвейеров, количеством конвейеров, частотой видеопамяти, разрядностью шины видеопамяти.
Производительность накопителей очень сильно сказывается при обращении к большим объемам данных – видео, аудио, а также при открытии большого количества маленьких файлов.
Из технических характеристик, влияющих на скорость доступа к файлам надо отметить Тип интерфейса винчестера (HDD) – параллельный IDE или последовательные SATA и SATA-2 и кэш винчестера – 8, 16 или 32 МБ.
На данный момент рекомендуется устанавливать винчестеры только с интерфейсом SATA-2, имеющим наибольшую пропускную способность и с наибольшим кэшем.
- Количество установленных программ
- Фрагментация файловой системы
- Ошибки файловой системы, bad-секторы
- Фрагментация реестра ОС
- Ошибки реестра ОС
- Размер файла подкачки (объем виртуальной памяти)
- Включенные элементы визуализации графического интерфейса ОС
- Программы и службы Windows, загружающие в автозагрузке
Это далеко не полный список, но именно эти особенности ОС Windows могут сильно тормозить её работу.
Но об этих характеристиках, настройках и параметрах мы поговорим в следующей статье.
Характеристики компьютера, влияющие на его производительность

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

Величина измерения данного параметра – мегагерцы и гигагерцы. Показатель тактовой частоты не отображает количество выполненных операций за секунду. Дело в том, что на выполнение определенных операций может тратиться по несколько тактов. Естественно, что компьютер с процессором с большей тактовой частотой, чем у идентичного по другим параметрам компьютера, сможет выполнять больше задач за единицу времени.
Возможно, Вам будет интересно:
Оперативная память
Второй по важности параметр компьютера, оказывающий влияние на производительность – это объем оперативной памяти. Это второй по скорости компонент в компьютере, уступающий лишь процессору. Однако разница в показателях скорости у этих устройств существенная. Следует учитывать, что чем больше у вас будет оперативной памяти, тем более полно сможет задействоваться процессор.

Обмен информации с оперативной памятью проходит куда быстрее, чем с другими устройствами, например, с жестким диском. Именно поэтому повышение объема ОЗУ приведет к существенному ускорению работы компьютера.
Жесткий диск
На производительность компьютера также оказывает существенное влияние объем жесткого диска и скорость его работы. Объем винчестера не так важен, главное, чтобы на системном диске оставалось до 10% свободного места. А вот скорость связи шины жесткого диска – это куда более значительный фактор.

Сегодня на смену обычным жестким дискам пришли более скоростные SSD диски, в которых отсутствуют движущиеся части. Они работают по принципу флешки. Скорость обмена информации в них в разы превышают аналогичный параметр для винчестеров. Происходит это из-за того, что большие файлы считываются одновременно из нескольких микросхем, за счет этого и увеличивается производительность компьютера. Кроме того, здесь нет головок, которые перемещаются по диску и тормозят весь процесс считывания/записи информации. Однако главный недостаток SSD дисков остается по-прежнему актуальным – высокая цена.
Дефрагментация файлов
В результате того, что файлы с жесткого диска периодически удаляются, на их месте остаются пустые места, и потом новые файлы загружаются именно в эти ячейки памяти, а не в одном месте – происходит так называемая фрагментация диска. В результате этого, системе приходится обращаться к разным участкам накопителя, тем самым замедляя работу.
Чтобы избежать этого процесса, следует периодически проводить дефрагментацию диска – компоновка аналогичных файлов по соседним секторам с целью их более быстрого считывания.
Чтобы выполнить дефрагментацию диска в операционной системе Windows 7, необходимо зайти в меню Пуск, выбрать Все программы – Стандартные – Служебные – Дефрагментация диска.

Одновременно выполняемые задачи в ОС
Чем больше ваш компьютер будет одновременно выполнять задач, тем сильнее он будет тормозить. Поэтому, если у вас возникают проблемы со скоростью ПК, следует закрыть все приложения и программы, которыми вы не пользуетесь в данный момент. Также поможет закрытие некоторых процессов в диспетчере задач. Работу каких процессов можно прекратить, читайте в этой статье.
Снижать производительность компьютера могут и вирусы, поэтому установите надежное антивирусное ПО, и сканируйте систему на наличие вредоносных программ. Также вы можете воспользоваться рекомендациями из статьи Как ускорить работу компьютера на Windows 10.
20. Факторы, влияющие на производительность компьютера:
Конвейерные прерывания — Один из методов увеличения производительности компьютера — выполнение нескольких команд одновременно. Это достигается при помощи конвейерной технологии: несколько последовательных команд находятся на разных стадиях выполнения — от декодирования до запоминания результата. В этом случае при передаче управления происходит отбрасывание частично выполненных команд, оставшихся на конвейере. Такие прерывания существенно ограничивают производительность.
Быстродействие ОЗУ — Если процессор по своей производительности значительно превосходит оперативную память системы, то при каждом обращении к ней процессор несколько циклов отрабатывает «вхолостую». В случае, когда 32-разрядный процессор работает с 16-разрядным ОЗУ, процессор должен ожидать завершения обработки двух последовательных запросов.
Исчезновение циклов памяти — В компьютерах, где системное ОЗУ используется центральным процессором и видеоадаптером совместно, то, поскольку, эти обращения не могут происходить одновременно, в самом простом случае, процессору и видеоадаптеру присваиваются альтернативные циклы доступа к памяти. По сути дела видеоадаптер как бы ворует циклы процессора по мере необходимости.
Низкая эффективность программного обеспечения — Программное обеспечение не может само по себе научиться использовать преимущества новейших достижений в сфере увеличения производительности аппаратуры. Если операционные системы обычно проверяют наличие сопроцессора или расширенной системы команд, то прикладные пакеты, как правило, такой проверки не производят, и, соответственно, все дополнительные возможности аппаратуры просто игнорируются.
Немаловажным фактором, влияющим на производительность системы, является и то, что время, необходимое на выполнение одной операции доступа к памяти или к диску, подвержено влиянию других операций доступа. В данном случае ограничения налагает полоса пропускания сигналов. С другой стороны дисковый накопитель может обрабатывать одновременно только один запрос, таким образом образуется очередь, в которой новые запросы ожидают завершения обработки предыдущих программ.
Наилучшим способом измерения производительности вычислительной системы является временная оценка работы тех прикладных программ, которые в дальнейшем будут на ней использоваться. Это основа тестирования, которое действительно будет иметь смысл для конкретного пользователя.
Быстродействие дисковой памяти — Производительность дисковой подсистемы очень сильно влияет на общую производительность компьютера.
Основные причины, приводящие к замедлению работы диска:
— неправильный выбор фактора чередования при форматировании диска на низком уровне;
— сильная фрагментация файлов;
— отсутствие буферизации дискового ввода/вывода или неправильное использование такой буферизации;
— отсутствие драйвера кэширования дисковой памяти;
— неправильная установка переменной среды PATH операционной системы MS-DOS;
Фактор чередования — Обычно секторы на дорожке располагаются в порядке возрастания и порядковых номеров. Процедура чтения заключается в том, что контроллер диска устанавливает головки на нужную дорожку и начинает сканировать подряд все секторы для того чтобы найти требуемый сектор. Контроллер при поиске пользуется номером сектора, записанным в области служебной информации. После того как головка окажется над искомым сектором, начинается процесс считывания данных (512 байт) и записи их в оперативную память, как только все данные записаны в память, компьютер выдает контроллеру команду чтения следующего сектора.
Однако пока контроллер записывал данные пока компьютер выдавал команду на чтение следующего сектора, диск, разумеется, продол жал вращаться. И если производительность контроллера диска недостаточна, к моменту начала чтения второго сектора головка уже может проскочить управляющую запись второго сектора. Поэтому следующий сектор, который обнаружит контроллер, будет иметь номер 3.
Теперь контроллер будет ждать, пока диск повернется на один оборот, и только тогда он сможет прочитать второй сектор. Таким образом, если программа будет читать несколько секторов подряд, на чтение каждого сектора будет потрачено время равное времени оборота диска.
Чтобы улучшить временные характеристики можно, например, располагать секторы через один, в таком случае после чтения одного сектора будет достаточно времени для чтения следующего и вся дорожка может быть считана за 2 оборота диска.
Кэширование дисковой памяти — Во время работы операционная система и прикладные программы часто обращаются к одним и тем же файлам или к одним и тем же областям диска. Чтобы избежать повторения операции чтения диска при обращении к наиболее часто используемым программам применяется кэширование дисковой памяти: в области оперативной памяти выделяется некоторое пространство для хранения содержимого секторов диска – кэш буфер. Вначале вся эта область свободна. Когда программа начинает работать с диском, затребованные ею секторы копируются в кэш буфер. Теперь если программе нужен сектор, кэш драйвер проверяет, нет ли его в кэш буфере. Если есть, физическое чтение диска не выполняется, программа пользуется копией сектора из буфера.
Если требуемого сектора в кэш буфере нет, он читается с диска и записывается в кэш буфер. Кэширование диска для некоторых программ дает увеличение быстродействия в несколько раз.
Электронный диск — Если в вашем компьютере имеется расширенная или дополнительная память, вы можете организовать так называемый электронный диск. Подключив в файле CONFIG.SYS драйвер RAMDRIVE.SYS, вы получите дополнительный псевдодиск, организованный в оперативной памяти. От обычного диска он будет отличаться более высоким быстродействием. Кроме того, т. к. данные, записанные на электронный диск, хранятся в оперативной памяти, при выключении питания компьютера содержимое электронного диска будет потеряно.
Буферизация — Еще один путь к увеличению быстродействия дисковой подсистемы лежит в использовании буферизации ввода/вывода. Команда BUFFERS имеет следующий формат: BUFFERS=n
n задает количество буферов, которые MS-DOS использует для ввода/вывода. Буфера используются следующим образом: все читаемые с диска секторы записываются в буферы. Если в последствии какой-либо программе требуются прочитанный ранее и записанный в буфер сектор, он извлекается из буфера. Физического чтения сектора с диска не происходит.
От чего зависит производительность (быстродействие) компьютера
Самые основные параметры, которые влияют на скорость работы компьютера – аппаратные. Именно от того, какое железо установлено на ПК зависит как он будет работать.
Процессор
Его можно назвать сердцем компьютера. Многие просто уверенны, что основной параметр, который влияет на скорость работы ПК – тактовая частота и это правильно, но не полностью.
Конечно, количество Ггц важно, но и количество ядер процессора, также играет немаловажную роль. Не стоит сильно углубляться в подробности, упростим: чем выше частота и больше ядер – тем быстрее ваш компьютер.
Оперативная память
Опять же, чем больше гигабайт этой памяти тем лучше. Оперативная память или сокращенно ОЗУ – временная память, куда записываются данные программ для быстрого доступа. Однако, после выключения ПК все они стираются, то есть, она является непостоянной – динамической.
И тут имеются свои нюансы. Большинство в погоне за количеством памяти ставят кучу планок разных производителей и с разными параметрами, тем самым не получают нужного эффекта. Чтобы прирост производительности был максимальный, нужно ставить планки с одинаковыми характеристиками.
Данная память также обладает тактовой частотой, и чем она большем, тем лучше.
Видеоадаптер
Он может быть дискретный и встроенный. Встроенный находится на материнской плате и его характеристики весьма скудны. Их хватает лишь для обычной офисной работы.
Если вы планируете играть в современные игры, пользоваться программами, которые обрабатывают графику, то вам нужна дискретная видеокарта. Тем самым вы поднимите производительность вашего ПК. Это отдельная плата, которую нужно вставлять в специальный разъем, который находится на материнской плате.
Материнская плата
Она является самой большой платой в блоке. От нее напрямую зависит производительность всего компьютера, так как все его компоненты располагаются на ней или подключаются именно к ней.
Жесткий диск
Это запоминающее устройство, где мы храним все свои файлы, установленные игры и программы. Они бывают двух видов: HDD и SSD. Вторые работают намного быстрее, потребляют меньше энергии и они тихие. У первых, также, есть параметры влияющие на производительность ПК – скорость вращения и объем. И опять, чем они выше тем лучше.
Блок питания
Он должен снабжать энергией все компоненты ПК в достаточном объеме иначе производительность в разы снизится.
Программные параметры
Также, на скорость работы компьютера влияют:
- Состояние установленной операционной системы.
- Версия ОС.
Установленная ОС и программное обеспечение должны быть правильно настроенными и не содержать вирусов, тогда производительность будет отличной.
Конечно, время от времени нужно переустанавливать систему и все программное обеспечение, дабы компьютер работал быстрее. Также, нужно следить за версиями ПО, ведь старые могут работать медленно из-за содержащихся в них ошибках. Нужно использовать утилиты, очищающие систему от мусора и повышающие ее производительность.
Читайте также:
Влияние параметров памяти на производительность системы
анонс новой утилиты измерения производительности с точки зрения приложений, зависимых от скорости работы памятиКак правило, при тестировании производительности платформ акцент делается на процессорозависимые приложения. Но скорость системы зависит не только от центрального процессора. И сейчас мы даже не вспоминаем о графически насыщенных приложениях и использовании GPU для вычислений общего назначения, в которых значимую роль играет выбор видеокарты. Речь, как нетрудно догадаться, пойдет о влиянии производительности памяти, и нашей попытке количественно оценить это влияние.
Зависимость общей производительности системы от памяти имеет сложный характер, что затрудняет прямую оценку скорости памяти, то есть сравнения различных модулей. Например, память с частотой 1600 МГц имеет вдвое большую пропускную способность, чем 800-мегагерцовая. И синтетические тесты памяти прилежно выведут столбик в два раза выше. Но если вы протестируете целую систему с этими двумя видами памяти с помощью популярных тестовых приложений, на которых обычно тестируют процессоры, то и близко не получите двухкратной разницы в производительности. Интегральный индекс быстродействия может отличаться максимум на несколько десятков процентов.
Это делает синтетические тесты памяти малоинформативными с практической точки зрения. Нельзя, однако, поручиться и за то, что подход с применением реальных приложений дает нам стопроцентно достоверную картину, поскольку велика вероятность, что какие-то режимы, где производительность памяти действительно критична, остались без внимания и не были учтены.
Краткая теория
Чтобы понять специфику проблемы, рассмотрим принципиальную схему взаимодействия приложения, ЦП и подсистемы памяти. Уже давно для описания работы центрального процесса считается удачной аналогия с заводским конвейером. И движутся по этому конвейеру инструкции из программного кода, а функциональные модули процессора обрабатывают их словно станки. Тогда современные многоядерные ЦП будут подобны заводам с несколькими цехами. Например, работу технологии Hyper-Threading можно сравнить с конвейером, по которому едут вперемешку детали сразу нескольких автомобилей, и умные станки обрабатывают их одновременно, по метке на деталях определяя, к какой модели машины они относятся. Например, собирается красная и синяя машины, тогда красящий станок использует красную краску для деталей красной машины и синюю краску для синей. И поток деталей сразу для двух моделей позволяет лучше загрузить станки. А если аппарат для покраски будет иметь два распылителя, и сможет красить одновременно две детали в разные цвета, конвейер сможет работать на полную мощность вне зависимости от того, в каком порядке будут поступать детали. Наконец, последний писк моды, реализуемый в будущих процессорах AMD, в которых различные ядра ЦП будут иметь некоторые общие функциональные блоки, можно сравнить с идеей сделать часть особо громоздких и дорогих станков общей для двух цехов, чтобы сэкономить заводскую площадь и сократить капитальные затраты.
С точки зрения данной аналогии, системная память будет являться внешним миром, который поставляет на завод сырье и принимает готовый продукт, а кэш-память — это некий склад непосредственно на заводской территории. Чем больше у нас системной памяти, тем больший виртуальный мир мы можем обеспечивать выпускаемой продукцией, и чем больше частота ЦП и количество ядер, тем мощнее и производительнее наш завод. А чем больше размер кэш-памяти, то есть заводского склада, тем меньше будет обращений в системную память — запросов на поставку сырья и комплектующих.
Производительность памяти в этой аналогии будет соответствовать скорости транспортной системы по доставке сырья и отправке деталей во внешний мир. Допустим, доставка на завод осуществляется при помощи грузовиков. Тогда параметрами транспортной системы будут вместимость грузовика и скорость движения, то есть время доставки. Это хорошая аналогия, так как работа ЦП с памятью осуществляется с помощью отдельных транзакций с блоками памяти фиксированного размера, причем данные блоки расположены рядом, в одном участке памяти, а не произвольно. И для общей производительности завода важна не только скорость работы конвейера, но и оперативность подвоза компонентов и вывоза готовых изделий.
Произведение объема кузова на скорость движения, то есть количество грузов, которые можно перевезти в единицу времени, будет соответствовать пропускной способности памяти (ПСП). Но очевидно, что системы с одинаковой ПСП не обязательно равноценны. Важно значение каждого компонента. Скоростной маневренный грузовичок может оказаться лучше, чем большой, но медленный транспорт, так как необходимые данные могут лежать в различных участках памяти, расположенных далеко друг от друга, а вместимость грузовика (или объем транзакции) много меньше общего объема (памяти), и тогда даже большому грузовику придется совершить два рейса, и его вместимость не будет востребована.
Другие же программы имеют так называемый локальный доступ к памяти, то есть они читают или пишут в близко расположенные ячейки памяти — им относительно безразлична скорость случайного доступа. Это свойство программ объясняет эффект от наращивания объемов кэш-памяти в процессорах, которая, благодаря близкому расположению к ядру, в десятки раз быстрее. Даже если программа требует, например, 512 МБ общей памяти, в каждый отдельный небольшой промежуток времени (например, миллион тактов, то есть одна миллисекунда), программа может работать только с несколькими мегабайтами данных, которые успешно помещаются в кэше. И потребуется только обновлять время от времени содержимое кэша, что, в общем, происходит быстро. Но может быть и обратная ситуация: программа занимает всего 50 МБ памяти, но постоянно работает со всем этим объемом. А 50 МБ значительно превышают типичный размер кэша существующих настольных процессоров, и, условно говоря, 90% обращений к памяти (при размере кэша в 5 МБ) не кэшируются, то есть 9 из 10 обращений идут непосредственно в память, так как необходимых данных нет в кэше. И общая производительность будет почти полностью лимитирована скоростью памяти, так как процессор практически всегда будет находиться в ожидании данных.
Время доступа к памяти в случае, когда данных нет в кэше, составляет сотни тактов. И одна инструкция обращения к памяти по времени равноценна десяткам арифметических.
«Памятенезависимые» приложения
Позволим себе один раз использовать такой корявый термин для приложений, производительность в которых на практике не зависит от смены модулей на более высокочастотные и низколатентные. Откуда вообще такие приложения берутся? Как мы уже отметили, все программы имеют различные требования к памяти, в зависимости от используемого объема и характера доступа. Каким-то программам важна только общая ПСП, другие, наоборот, критичны к скорости доступа к случайным участкам памяти, которая иначе называется латентностью памяти. Но очень важно также, что степень зависимости программы от параметров памяти во многом определяется характеристиками центрального процессора — прежде всего, размером его кэша, так как при увеличении объема кэш-памяти рабочая область программы (наиболее часто используемые данные) может поместиться целиком в кэш процессора, что качественно ускорит программу и сделает её малочувствительной к характеристикам памяти.
Кроме того, важно, как часто в коде программы встречаются сами инструкции обращения к памяти. Если значительная часть вычислений происходит с регистрами, велик процент арифметических операций, то влияние скорости памяти снижается. Тем более что современные ЦП умеют изменять порядок выполнения инструкций и начинают загружать данные из памяти задолго до того, как те реально понадобятся для вычислений. Такая технология называется предвыборкой данных (prefetch). Качество реализации данной технологии также влияет на памятезависимость приложения. Теоретически, ЦП с идеальным prefetch не потребуется быстрая память, так как он не будет простаивать в ожидании данных.
Активно развиваются технологии спекулятивной предвыборки, когда процессор, даже ещё не имея точного значения адреса памяти, уже посылает запрос на чтение. Например, процессор для номера некоторой инструкции обращения к памяти запоминает последний адрес ячейки памяти, которая читалась. И когда ЦП видит, что скоро потребуется исполнить данную инструкцию, он посылает запрос на чтение данных по последнему запомненному адресу. Если повезет, то адрес чтения памяти не изменится, или изменится в пределах читаемого за одно обращение к памяти блока. Тогда латентность доступа к памяти отчасти скрадывается, поскольку параллельно с доставкой данных процессор исполняет инструкции, предшествующие чтению из памяти. Но, разумеется, такой подход не является универсальным и эффективность предвыборки сильно зависит от особенностей алгоритма программы.
Однако разработчики программ также в курсе характеристик современного поколения процессоров, и зачастую в их силах (при желании) оптимизировать объем данных таким образом, чтобы он помещался в кэш-памяти даже бюджетных процессоров. Если мы работаем с хорошо оптимизированным приложением — для примера можно вспомнить некоторые программы кодирования видео, графические или трехмерные редакторы, — у памяти, с практической точки зрения, не будет такого параметра, как производительность, будет только объем.
Еще одна причина, по которой пользователь может не обнаружить разницы при смене памяти, состоит в том, что она и так слишком быстрая для используемого процессора. Если бы сейчас все процессоры вдруг замедлились в 10 раз, то для производительности системы в большинстве программ стало бы абсолютно все равно, какой тип памяти в ней установлен — хоть DDR-400, хоть DDR3-1600. А если бы ЦП радикально ускорились, то производительность значительной части программ наоборот стала бы гораздо существеннее зависеть от характеристик памяти.
Таким образом, реальная производительность памяти есть величина относительная, и определяется в том числе и используемым процессором, а также особенностями ПО.
«Памятезависимые» приложения
А в каких пользовательских задачах производительность памяти имеет большее значение? По странной, но на самом деле имеющей глубокие основания причине — в случаях, которые сложно тестировать.
Тут сразу вспоминаются игрушки-стратегии со сложным и «медленным» искусственным интеллектом (ИИ). Ими никто не любит тестировать ЦП, так как инструменты для оценки либо отсутствуют, либо характеризуются большими погрешностями. На скорость выработки решения алгоритмом ИИ влияют множество факторов — например, иногда закладываемая в ИИ вариативность решений, чтобы сами решения выглядели более «человеческими». Соответственно, и реализация различных вариантов поведения занимает разное время.
Но это не значит, что у системы в данной задаче нет производительности, что она не определена. Просто её сложно точно вычислить, для этого потребуется собрать большое количество статистических данных, то есть провести множество испытаний. Кроме того, такие приложения сильно зависят от скорости памяти из-за использования сложной структуры данных, распределенных по оперативной памяти зачастую непредсказуемым образом, поэтому упомянутые выше оптимизации могут просто не работать или действовать неэффективно.
Достаточно сильно от производительности памяти могут зависеть и игры других жанров, пусть не со столь умным искусственным интеллектом, зато с собственными алгоритмами имитации виртуального мира, включая физическую модель. Впрочем, они на практике чаще всего упираются в производительность видеокарты, поэтому тестировать на них память также бывает не очень удобно. Кроме того, важным параметром комфортного игрового процесса в трехмерных играх от «первого лица» является минимальное значение fps: его возможное проседание в пылу жестокой битвы может иметь самые плачевные для виртуального героя последствия. А минимальный fps тоже, можно сказать, невозможно измерить. Опять же — из-за вариативного поведения ИИ, особенностей расчета «физики» и случайных системных событий, которые тоже могут приводить к проседанию. Как прикажете в таком случае анализировать полученные данные?
Тестирование скорости игр в демо-роликах имеет ограниченное применение еще и потому, что не все части игрового движка бывают задействованы для воспроизведения демки, и в реальной игре на скорость могут влиять иные факторы. Причем даже в таких наполовину искусственных условиях минимальный fps непостоянен, и его редко приводят в отчетах о тестировании. Хотя, повторимся, это наиболее важный параметр, и в тех случаях, когда идет обращение к данным, проседание fps весьма вероятно. Ведь современные игры, в силу своей сложности, разнообразия кода, включающего помимо поддержки физического движка и искусственного интеллекта также подготовку графической модели, обработку звука, передачу данных через сеть и пр., очень зависят как от объема, так и от производительности памяти. Кстати, будет заблуждением считать, что графический процессор обрабатывает сам всю графику: он только рисует треугольники, текстуры и тени, а формированием команд все равно занимается ЦП, и для сложной сцены это вычислительно емкая задача. К примеру, когда вышел Athlon 64 с интегрированным контроллером памяти, наибольший прирост в скорости по сравнению со старым Athlon был именно в играх, хотя там не использовались 64-битность, SSE2 и другие новые «фишки» Athlon 64. Именно существенное повышение эффективности работы с памятью благодаря интегрированному контроллеру сделало тогдашний новый процессор AMD чемпионом и лидером по производительности в первую очередь в играх.
Многие другие сложные приложения, прежде всего серверные, в случае которых имеет место обработка случайного потока событий, также существенно зависят от производительности подсистемы памяти. Вообще, используемое в организациях ПО, с точки зрения характера кода программы, зачастую не имеет аналогов среди популярных приложений для домашних персоналок, и поэтому весьма существенный пласт задач остается без адекватной оценки.
Ещё одним принципиальным случаем усиленной зависимости от памяти является режим многозадачности, то есть запуск нескольких ресурсоемких приложений одновременно. Вспомним снова все тот же AMD Athlon 64 с интегрированным контроллером памяти, который к моменту анонса Intel Core выпускался уже в двухъядерном варианте. Когда вышел Intel Core на новом ядре, процессоры AMD стали проигрывать везде, кроме SPEC rate — многопоточном варианте SPEC CPU, когда запускается столько копий тестовой задачи, сколько ядер в системе. Новое интеловское ядро, обладая большей вычислительной мощностью, тупо затыкалось в этом тесте в производительность памяти, и даже большой кэш и широкая шина памяти не помогали.
Но почему это не проявлялось в отдельных пользовательских задачах, в том числе многопоточных? Главной причиной было то, что большинство пользовательских приложений, которые в принципе хорошо поддерживают многоядерность, всячески оптимизированы. Вспомним в очередной раз пакеты для работы с видео и графикой, которые больше всех получают прирост от многопоточности — всё это оптимизированные приложения. К тому же объем используемой памяти меньше, когда код параллелится внутри программы — по сравнению с вариантом, когда запускаются несколько копий одной задачи, а тем более — разные приложения.
А вот если запустить на ПК сразу несколько различных приложений, нагрузка на память возрастет многократно. Это произойдет по двум причинам: во-первых, кэш-память будет поделена между несколькими задачами, то есть каждой достанется только часть. В современных ЦП кэш L2 или L3 — общий для всех ядер, и если одна программа использует много потоков, то они все могут выполняться на своем ядре и работать с общим массивом данных в L3-кэше, а если программа однопоточна, то ей достается весь объем L3 целиком. Но если потоки принадлежат различным задачам, объем кэша будет вынужденно делиться между ними.
Вторая причина заключается в том, что большее количество потоков создаст больше запросов на чтение-запись памяти. Возвращаясь к аналогии с заводом, понятно, что если на заводе работают все цеха на полную мощность, то сырья потребуется больше. А если они делают различные машины, то заводской склад будет переполнен различными деталями, и конвейер каждого цеха не сможет воспользоваться деталями, предназначенными для другого цеха, так как они от разных моделей.
Вообще, проблемы с ограниченной производительностью памяти — главная причина низкой масштабируемости многоядерных систем (после, собственно, приципиальных ограничений возможности распараллеливания алгоритмов).
Типичным примером такой ситуации на ПК будет одновременный запуск игры, «скайпа», антивируса и программы кодирования видеофайла. Пусть не типичная, но совсем не фантастическая ситуация, в которой очень сложно корректно измерить скорость работы, так как на результат влияют действия планировщика в составе ОС, который при каждом замере может по-иному распределять задачи и потоки по разным ядрам и давать им различные приоритеты, временны́е интервалы и делать это в разной последовательности. И опять-таки, наиболее важным параметром будет пресловутая плавность работы — характеристика, по аналогии с минимальным fps в играх, которую в данном случае измерить еще сложнее. Что толку от запуска игры или какой-то другой программы одновременно с кодированием видеофайла, если поиграть нормально не удастся из-за рывков изображения? Пусть даже видеофайл быстро сконвертируется, поскольку многоядерный процессор в данном случае может быть и недогружен. Здесь нагрузка на систему памяти будет гораздо больше, чем при исполнении каждой из перечисленных задач по отдельности.
В случае использования ПК как рабочей станции, ситуация одновременного исполнения нескольких приложений даже более типична, чем для домашнего ПК, и сама скорость работы ещё более важна.
Проблемы тестирования
Сразу целая группа факторов снижает чувствительность ЦП-ориентированных тестов к скорости памяти. Очень чувствительные к памяти программы представляют собой плохие тесты ЦП — в том смысле, что они слабо реагируют на модель ЦП. Такие программы могут различать процессоры с контроллером памяти, снижающим латентность доступа к памяти, и без оного, но при этом в пределах одного семейства почти не реагировать на частоту процессора, показывая сходные результаты при работе на частоте 2500 и 3000 МГц. Часто такие приложения отбраковываются как тесты ЦП, ибо тестеру просто непонятно, что лимитирует их производительность, и кажется, что дело в «чудачествах» самой программы. Будет удивительно, если все процессоры (и AMD, и Intel) покажут в тесте одинаковый результат, но такое вполне возможно для приложения, очень сильно зависимого от памяти.
Чтобы избежать упреков в необъективности и вопросов, почему выбрана та или иная программа, в тесты стараются включать только наиболее популярные приложения, которыми все пользуются. Но такая выборка не совсем репрезентативна: наиболее популярные приложения из-за своей массовости часто очень хорошо оптимизированы, а оптимизация программы начинается с оптимизации её работы с памятью — она важнее, например, чем оптимизация под SSE1-2-3-4. Но совсем не все на свете программы так хорошо оптимизируются; попросту на все программы не хватит программистов, которые умеют писать быстрый код. Опять возвращаясь к популярным программам кодирования, многие из них были написаны при непосредственном активном участии инженеров фирм-изготовителей ЦП. Как и некоторые другие популярные ресурсоемкие программы, в частности медленные фильтры двухмерных графических редакторов и движки рендеринга студий трехмерного моделирования.
В свое время было популярно сравнивать компьютерные программы с дорогами. Эта аналогия потребовалась, чтобы объяснить, почему на некоторых программах быстрее работает Pentium 4, а на некоторых Athlon. Интеловский процессор не любил ветвления и быстрее «ехал» по прямым дорогам. Это очень упрощенная аналогия, но она удивительно хорошо передает суть. Особенно интересно, когда две точки на карте соединяют две дороги — «оптимизированная» прямая качественная дорога и «неоптимизированная» кривая ухабистая. В зависимости от выбора одной из дорог, ведущих к цели, выигрывает тот или иной процессор, хотя в каждом случае они делают одно и тоже. То есть на неоптимизированном коде выигрывает Athlon, а при простой оптимизации приложения выигрывает Pentium 4 — и сейчас мы даже не говорим о специальной оптимизации под архитектуру Netburst: в таком случае Pentium 4 мог бы посоревноваться даже с Сore. Другое дело, что хорошие «оптимизированные» дороги строить дорого и долго, и это обстоятельство во многом предопределило печальную участь Netburst.
Но если мы отойдем от популярных наезженных трасс, то окажемся в лесу — там вообще нет никаких дорог. И немало приложений написаны безо всякой оптимизации, что почти неминуемо влечет сильную зависимость от скорости памяти в случае, если объем рабочих данных превышает размер кэша ЦП. К тому же множество программ пишутся на языках программирования, которые в принципе не поддерживают оптимизацию.
Специальный тест памяти
Для того чтобы корректно оценить влияние скорости памяти на производительность системы в случае, когда память имеет значение (для упомянутых «памятезависимых» приложений, мультизадачности и т. п.), исходя из всех вышеперечисленных обстоятельств и решено было создать специальный тест памяти, который по структуре кода представляет собой некое обобщенное сложное, зависимое от памяти приложение и имеет режим запуска нескольких программ.
Какие плюсы есть у такого подхода? Их очень много. В отличие от «натуральных» программ, возможен контроль над объемом используемой памяти, контроль над её распределением, контроль над количеством потоков. Специальное контролируемое выделение памяти позволяет нивелировать влияние особенностей менеджера памяти программы и операционной системы на производительность, чтобы результаты были не зашумлены, и можно было корректно и быстро тестировать. Точность измерения позволяет производить тест за относительно небольшое время и оценить большее количество конфигураций.
Тест основан на измерении скорости работы алгоритмов из типичных для сложных приложений программных конструкций, работающих с нелокальными структурами данных. То есть данные распределены в памяти достаточно хаотично, а не составляют один небольшой блок, и доступ в память не является последовательным.
В качестве модельной задачи была взята модификация теста Astar из SPEC CPU 2006 Int (кстати, предложенный для включения в этот пакет автором статьи; для теста памяти использован адаптированный для графов алгоритм) и задача сортировки данных с помощью различных алгоритмов. Программа Astar имеет сложный алгоритм с комплексным доступом к памяти, а алгоритмы сортировки числового массива — базовая задача программирования, использующаяся во множестве приложений; она включена, в том числе, для дополнительного подтверждения результатов сложного теста данными производительности простой, но распространенной и классической задачи.
Интересно, что существует несколько алгоритмов сортировки, но они отличаются по типу шаблона доступа к памяти. В некоторых доступ к памяти в целом локален, а другие используют сложные структуры данных (например, бинарные деревья), и доступ к памяти хаотичен. Интересно сравнить, насколько параметры памяти влияют при различном типе доступа — при том, что обрабатывается одинаковый размер данных и количество операций не сильно отличается.
Согласно исследованиям набора тестов SPEC CPU 2006, тест Astar — один из нескольких, в наибольшей мере коррелирующих с общим результатом пакета на x86-совместимых процессорах. Но в нашем тесте памяти объем используемых программой данных был увеличен, так как со времени выпуска теста SPEC CPU 2006 типичный объем памяти возрос. Также программа приобрела внутреннюю многопоточность.
Программа Astar реализует алгоритм нахождения пути на карте с помощью одноименного алгоритма. Сама по себе задача типична для компьютерных игр, прежде всего стратегий. Но используемые программные конструкции, в частности множественное применение указателей, также типичны для сложных приложений — например, серверного кода, баз данных или просто кода компьютерной игры, не обязательно искусственного интеллекта.
Программа осуществляет операции с графом, соединяющим пункты карты. То есть каждый элемент содержит ссылки на соседние, они как бы соединены дорогами. Есть два подтеста: в одном граф строится на основе двухмерной матрицы, то есть плоской карты, а во втором — на основе трехмерной матрицы, которая представляет собой некий сложный массив данных. Структура данных аналогична так называемым спискам — популярному способу организации данных в программах с динамическим созданием объектов. Такой тип адресации в целом характерен для объектно-ориентированного ПО. В частности, это практически все финансовые, бухгалтерские, экспертные приложения. И характер их обращений к памяти разительно контрастирует с типом доступа у оптимизированных на низком уровне вычислительных программ, вроде программ видеокодирования.
Каждый из подтестов имеет два варианта реализации многопоточности. В каждом из вариантов запускается N потоков, но в одном каждая из нитей осуществляет поиск пути на собственной карте, а в другом все нити ищут пути одновременно на одной карте. Так получаются несколько различных шаблонов доступа, что делает тест более показательным. Объем используемой памяти по умолчанию в обоих вариантах одинаков.
Таким образом, в первой версии теста получается 6 подтестов:
- Поиск пути на 2D-матрице, общая карта
- Поиск пути на 2D-матрице, отдельная карта для каждого потока
- Поиск пути на 3D-матрице, общая карта
- Поиск пути на 3D-матрице, отдельная карта для каждого потока
- Сортировка массива с использованием алгоритма quicksort (локальный доступ к памяти)
- Сортировка массива с использованием алгоритма heapsort (сложный доступ к памяти)
Результаты теста
Результаты теста отражают время нахождения заданного количества путей и время сортировки массива, то есть меньшее значение соответствует лучшему результату. В первую очередь качественно оценивается: реагирует ли в принципе данный процессор на заданной частоте на изменение частоты памяти или её настройки, частоту шины, тайминги и т. п. То есть отличаются ли результаты теста на данной системе при использовании различных типов памяти, или процессору хватает минимальной скорости.
Количественные результаты в процентах относительно конфигурации по умолчанию дают оценку прироста или падения скорости работы памятезависимых приложений или мультизадачной конфигурации при использовании различных типов памяти.
Тест сам по себе не предназначен для точного сравнения различных моделей ЦП, так как из-за того, что организация кэшей и алгоритмы предвыборки данных могут у них существенно отличаться, тест может отчасти благоволить определенным моделям. Но качественная оценка семейств ЦП между собой вполне возможна. А память производства различных компаний устроена одинаково, поэтому здесь субъективная составляющая исключена.
Также тест может быть использован для оценки масштабируемости процессоров по частоте при разгоне или внутри модельного ряда. Он позволяет понять, с какой частоты процессор начинает «затыкаться» в память. Часто процессор формально разгоняется сильно, и синтетические тесты, основанные на выполнении простых арифметических операций, показывают соответствующий изменению частоты прирост, но в памятезависимом приложении прироста может и не быть вообще из-за отсутствия соответствующего прироста в скорости памяти. Другая причина заключается в том, что ядро ЦП теоретически может потреблять больше энергии в случае сложного приложения и начнет либо сбоить, либо само снижать частоту, что не всегда возможно выявить в простых арифметических тестах.
Заключение
Если бы платформы и сокеты не менялись столь часто, то всегда можно было бы рекомендовать покупать самую быструю память, так как после апгрейда на новый более мощный и быстрый процессор возрастут и требования к памяти. Однако оптимальной стратегией все же является покупка сбалансированной конфигурации, поскольку сама память тоже прогрессирует, пусть и не так быстро, но ко времени смены процессора, вполне возможно, потребуется обновить и память. Поэтому тестирование производительности подсистемы памяти в сочетании с разными процессорами, в том числе в режиме разгона, остается актуальной и даже насущной задачей, которая позволит выбрать оптимальную связку, не переплачивая за лишние мегагерцы.
На самом деле, проблема ускорения доступа к данным — краеугольный камень современного процессоростроения. Узкое место здесь будет всегда, если только, конечно, сам процессор не будет состоять полностью из кэш-памяти, что, кстати, недалеко от истины — львиную долю площади кристаллов современных ЦП занимает как раз кэш-память разных уровней. (В частности, Intel заработал свои рекордные миллиарды, в том числе, благодаря тому, что в свое время разработал метод более плотного размещения кэшей на кристалле, то есть на единицу площади кристалла помещается больше ячеек кэша и больше байт кэш-памяти.) Однако всегда будут существовать приложения, которые либо невозможно оптимизировать таким образом, чтобы данные умещались в кэш-памяти, либо этим просто некому заниматься.
Поэтому быстрая память зачастую является столь же практичным выбором, как покупка внедорожника для человека, который хочет иметь возможность с комфортом передвигаться как по асфальту, так и по дорогам с «неоптимизированным» покрытием.
Производительность эвм
Основа для сравнения ЭВМ различных типов – это производительность ЭВМ, то есть время, которое затрачивает ЭВМ на выполнение некоторого объёма работы.
Самую точную практическую оценку производительности конкретной ЭВМ можно получить лишь из времени работы реальной программы, для выполнения которой нужна данная ЭВМ.
Однако поскольку ЭВМ используются, как правило, для решения различных задач, то существуют многообразные тесты, с помощью которых можно оценить возможности ЭВМ.
Самой простой (и самой неточной) характеристикой производительности является число MIPS[MillionInstructionsPerSecond] — миллион команд в секунду. В общем случаеMIPSопределяется как отношение количества команд в программе ко времени её выполнения. Большее числоMIPSна практике не значит более высокой производительности ЭВМ. Это число, вообще говоря, может меняться при выполнении разных программ даже на одной ЭВМ. Операции с плавающей точкой состоят из нескольких десятков обычных целочисленных операций, поэтому если ЭВМ с низким числомMIPSимеет боле эффективную реализацию плавающей арифметики, то такая ЭВМ может быть более производительной, чем ЭВМ с высоким числомMIPS.
Для оценки производительности ЭВМ, предназначенных для решения научно-технических задач, в которых существенно используется плавающая арифметика, применяется оценка по числу MFLOPS[MillionFloatingPointOperationsPerSecond] — миллион плавающих операций в секунду. Эта оценка гораздо более точна, чем оценка поMIPS, но справедлива только для оценки возможностей ЭВМ при работе с плавающими числами.
Другие способы оценки производительности основаны на использовании специально подобранных тестовых задач. Наиболее известными являются тесты LINPACK,SpecInt92 иSpecFp92,AIM.
Пример
Производительность современных суперЭВМ достигает десятков GFLOPS. Производительность ПЭВМ имеет порядок десятковMFLOPS.
Аппаратные компоненты персональных эвм Структура пэвм
Главная особенность структуры ПЭВМ заключается в том, все устройства ПЭВМ обмениваются информацией через системную шину (см. рис.2.3). К системной шине подключён центральный процессор (или несколько процессоров), оперативная, постоянная и кеш-память, которые выполнены в виде микросхем. Упомянутые компоненты монтируются на материнской плате[motherboard]. К материнской плате присоединяются платы (карты) внешних устройств (ВУ): видеоадаптер, звуковая плата, сетевая плата и др. В зависимости от сложности устройств на этих платах могут располагаться другие специализированные процессоры: математический, графический и др. С помощью проводов к материнской плате подключены жёсткий диск, гибкий диск и устройство чтения оптических дисков.
Рис.2.9 Структурная
схема ПЭВМ
Все упомянутые компоненты располагаются в системном блоке. Корпус системного блока может быть выполнен в виде:
desktop– настольное исполнение с горизонтальным расположением материнской платы;
mini—tower– настольное исполнение с вертикальным расположением материнской платы;
big tower– напольное исполнение с вертикальным расположением материнской платы.
Выбор типа корпуса диктуется в основном возможностью последующего расширения комплектации ПЭВМ.
Остальные компоненты, которые находятся вне системного блока, именуются внешними устройствами: монитор, клавиатура, мышь и другие манипуляторы, устройства резервного копирования и архивации, сканеры, модемы и др.