Главная » Windows 8.1  » Бутылочное горлышко карта. Бутылочное горлышко: Эволюция проблемы «узких мест» в ПК. Intel и видеокарты AMD

Бутылочное горлышко карта. Бутылочное горлышко: Эволюция проблемы «узких мест» в ПК. Intel и видеокарты AMD

Доброго времени суток!

Хороший день, ничего не предвещало плохого. Но вот пришла проблема - скорость работы какого-то приложения стала неприемлемо маленькой, причём ещё неделю/месяц/день назад всё было хорошо. Решить её надо быстро, потратив как можно меньше времени. Проблемный сервер на базе Windows Server 2003 или более поздней версии.

Надеюсь нижеследующая писанина будет достаточно краткой и понятной и к тому же полезной как для начинающих администраторов, так и для более серьёзных товарищей, ибо всегда можно найти что-то новое для себя. Не стоит сразу бросаться исследовать поведение приложения. Перво наперво стоит посмотреть, хватает ли производительности сервера на данный момент? Нет ли каких-нибудь «бутылочных горлышек», ограничивающих его производительность?

В этом нам поможет perfmon – достаточно мощный инструмент, идущий вместе с Windows. Начнём с того, что дадим определение «бутылочному горлышку» - это ресурс, который достиг своего предела по использованию. Обычно они возникают из-за некорректного планирования ресурсов, аппартных проблем или неправильного поведения приложения.

Если открыть perfmon, то мы увидим десятки и сотни всевозможных датчиков, и количество оных не способствует быстрому расследованию данной проблемы. Так что для начала выделим 5 основных возможных «бутылочных горлышек», чтобы сократить список исследуемых датчиков.

Это будут процессор, оперативная память, система хранения данных (HDD/SSD), сеть и процессы. Далее мы рассмотрим каждый из этих пунктов, какие датчики будут нам нужны и пороговые значения для них.

Процессор

Перегруженный задачами процессор явно не способствует быстрой работе приложений. Для изучения его ресурсов мы выделим только 4 датчика:

Processor\% Processor Time

Измеряет отношение времени работы процессора ко времени простоя в процентах. Самый понятный датчик, загрузка процессора. MS рекомендует менять процессор на более быстрый, если значение выше 85%. Но это зависит от многих факторов, надо знать свои потребности и особенности, т. к. данное значение может варьироваться.

Processor\% User Time

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

Processor\% Interrupt Time

Измеряет время, которое процессор затрачивает на ожидание ответа на прерывание. Данный датчик может показать наличие «железных» проблем. MS рекомендует начинать волноваться, если данное значение превышает 15%. Это означает, что какое-то устройство начинает отвечать очень медленно на запросы и его следует проверить.

System\Processor Queue Length

Показывает количество потоков в очереди, ожидающих своё время на исполнение. MS рекомендует задуматься над сменой процессора на имеющий большее количество ядер, если данное значение превышает кол-во ядер, помноженных на два.

Оперативная память

Нехватка оперативной памяти может сильно сказаться на общей производительности системы, заставляя систему активно использовать медленный HDD для своппирования. Но даже если вроде бы на сервере установлено много ОЗУ, память может «утекать». Утечка памяти - это неконтролируемый процесс уменьшения количества свободной памяти, связанный с ошибками в программах. Также стоит упомянуть, что для Windows объём виртуальной памяти есть сумма ОЗУ и файла подкачки.

Memory\% Committed Bytes in Use

Показывает использование виртуальной памяти. Если значение перевалило за 80%, то стоит подумать о добавлении ОЗУ.

Memory\Available Mbytes

Показывает использование ОЗУ, а именно количество доступных мегабайт. Если значение составляет менее 5%, то опять таки следует подумать о добавлении ОЗУ.

Memory\Free System Page Table Entries

Количество свободных элементов таблицы страниц. А оно ограничено, вдобавок в наши дни популярность обретают страницы в 2 и более МБ, вместо классических 4кБ, что не способствует их большому количеству. Значение менее 5000 может свидетельствовать об утечке памяти.

Memory\Pool Non-Paged Bytes

Размер данного пула. Это кусочек памяти ядра, который содержит важные данные и не может быть выгружен в swap. Если значение превысило 175 МБ, то, скорее всего, это утечка памяти. Обычно это сопровождается появлением событий 2019 в системном журнале.

Memory\Pool Paged Bytes

Аналогично предыдущему, но данную область можно выгружать на диск (swap), если они не используются. Для данного счётчика значения выше 250 МБ считаются критичными, обычно сопровождается появлением событий 2020 в системном журнале. Также говорит об утечке памяти.

Memory\Pages per Second

Количество обращений (запись/чтение) к page file в секунду по причине отсутствия необходимых данных в ОЗУ. И опять значение более 1000 намекает на утечку памяти.

Жёсткий диск

Достаточно важный элемент, который может внести существенную лепту в производительность системы.

LogicalDisk\% Free Space

Процент свободного места. Интересуют только разделы, содержащие системные файлы - ОС, файл/файлы подкачки и т.д. MS рекомендует позаботиться об увеличении дискового пространства, если свободного места осталось менее 15%, т. к. при критических нагрузках оно может резко закончиться (temp файлами, обновлениями Windows или тем же файлом подкачки). Но, как говориться, “it depends” и надо смотреть на реально доступный размер пространства, т.к. тот же файл подкачки может быть жёстко фиксирован, на temp"ы наложены квоты, запрещающие им разрастаться, а обновления раздаются порционно и редко, либо их нет вообще.

PhysicalDisk\% Idle Time

Показывает, сколько времени диск бездействует. Рекомендуется заменить диск на более производительный, если данный счётчик находится ниже 20% границы.

PhysicalDisk\Avg. Disk Sec/Read

Среднее время, необходимое жёсткому диску для чтения данных с самого себя. Выше 25мс - это уже плохо, для SQL сервера и Exchange рекомендуется 10мс и меньше. Рекомендация идентична предыдущей.

PhysicalDisk\Avg. Disk Sec/Write

Идентично PhysicalDisk\Avg. Disk Sec/Read, только для записи. Критический порог тоже равен 25мс.

PhysicalDisk\Avg. Disk Queue Length

Показывает среднее число I/O операций, ожидающих, когда жёсткий диск станет для них доступным. Рекомендуется начинать беспокоится, если данное число вдвое превышает кол-во шпинделей в системе (в случае отсутствия raid-массивов количество шпинделей равно количеству жёстких дисков). Совет прежний - более производительный HDD.

Memory\Cache Bytes

Объём памяти, используемый для кеша, часть которого является файловым. Объём более 300МБ может говорить о проблеме с производительностью HDD или о наличии приложения, активно использующего кеш.

Сеть

В современном мире без неё никуда - огромное количество данных транслируются именно по сети.

Network Interface\Bytes Total/Sec

Кол-во данных, передаваемых (send/receive) через сетевой адаптер. Значение, превосходящее 70% от пропускной способности интерфейса, говорит о возможной проблеме. Нужно либо заменить карту на более производительную, либо добавить ещё одну для разгрузки первой.

Network Interface\Output Queue Length

Показывает число пакетов, стоящих в очереди на отправку. Если значение перевалило за 2, то стоит подумать о замене карты на более производительную.

Процессы

Производительность сервера может катастрофически упасть, если имеется неоптимизированное приложение или приложение начинает вести себя «неправильно».

Process\Handle Count

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

Process\Thread Count

Количество потоков внутри процесса. Стоит внимательнее изучить поведение приложения, если разница между минимальным и максимальным числом оных превысит 500.

Process\Private Bytes

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

У большинства вышеприведённых счётчиков нет чёткого показателя того, что в системе появилось «бутылочное горлышко». Все приведённые значения строились по среднестатистическим результатам и могут варьироваться для различных систем в широком диапазоне. Чтобы воспользоваться данными счётчиками грамотно, мы должны знать хотя бы показатели системы при её нормальной работе. Это называется baseline performance – perfmon лог, снятый с работающей свежеустановленной (последнее необязательно, никогда не поздно снять данный лог или вести учёт изменения baseline производительности в долгосрочной перспективе) системы, не имеющей проблем. Это достаточно важный момент, часто многими опускаемый, хотя в будущем он может серьёзно сократить возможный простой системы и в явной форме ускорить анализ полученных данных из приведённых выше счётчиков.

Взято с https://ru.intel.com/business/community/?automodule=blog&blogid=57161&sh...

0 0

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

Сейчас термин bottleneck может использоваться для в любой отрасли — в сфере услуг, разработке программного обеспечения, логистике, повседневной жизни.

Что такое bottleneck

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


Bottleneck — узкое место в производственном процессе

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

Существует два типа узких мест:

  1. Краткосрочные узкие места — вызваны временными проблемами. Хороший пример — больничный или отпуск ключевых сотрудников. Никто в команде не может полноценно заменить их, и работа останавливается. На производстве это может быть поломка одного из группы станков, когда его нагрузка распределяется между рабочим оборудованием.
  2. Долгосрочные узкие места — действуют постоянно. Например, постоянная задержка месячных отчетов в компании из-за того, что один человек должен обработать огромное количество информации, которая поступит к нему лавиной в самом конце месяца.

Как определить bottleneck в производственном процессе

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

Очереди и заторы

Процесс на производственной линии, который собирает перед собой самую большую очередь из единиц незавершенного производства, обычно является бутылочным горлышком. Такой способ поиска bottleneck подходит для штучного конвейерного производства, например, на линии разлива. Хорошо видно, в каком месте линии скапливаются бутылки, и какой механизм имеет недостаточную мощность, часто ломается или обслуживается неопытным оператором. Если на линии несколько мест скопления, то ситуация сложнее, и нужно использовать дополнительные методы, чтобы найти самое критичное узкое место.

Пропускная способность

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

Полная мощность

Большинство производственных линий отслеживают процент загрузки каждой единицы оборудования. Станки и станции имеют фиксированную мощность и в процессе производства используются на определенный процент от максимальной мощности. Станция, которая задействует максимум мощности — bottleneck. Такое оборудование сдерживает процент использования мощности другого оборудования. Если вы увеличите мощность bottleneck, то мощность всей линии вырастет.

Ожидание

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

Кроме наблюдения за производством, для выявления узких мест используются такие инструменты:

Value Stream Mapping — карта создания потоков ценности

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

Бутылочное горлышко может возникнуть там, где операторы перенастраивают оборудование для производства другого продукта. В таком случае нужно подумать, как сократить простои. Например, изменить график производства, чтобы уменьшить количество переналадок или уменьшить их влияние.

Как уменьшить влияние узких мест

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

Первый подход

Увеличение мощности существующих узких мест.

Существует несколько способов увеличить мощность узких мест:

  1. Добавьте ресурсы в ограничивающий процесс. Необязательно нанимать новых сотрудников. Кросс-функциональное обучение персонала может уменьшить влияние узких мест с незначительными затратами. В таком случае рабочие будут обслуживать сразу несколько станций и облегчать прохождение узких мест.
  2. Обеспечьте бесперебойную подачу деталей на узкое место. Всегда следите за незавершенным производством перед узким местом, управляйте подачей ресурсов на станцию bottleneck, учитывайте овертаймы, в течение которых оборудование также всегда должно иметь детали для обработки.
  3. Убедитесь, что узкое место работает только с качественными деталями. Не тратьте мощность и время работы узкого места на обработку брака. Размещайте точки контроля качества перед станциями bottleneck. Это повысит пропускную способность процесса.
  4. Проверьте график производства. Если в процессе выпускается несколько разных продуктов, которые требуют разного времени работы bottleneck, скорректируйте график производства так, чтобы общий спрос на bottleneck уменьшился
  5. Увеличьте время работы ограничивающего оборудования. Пусть bottleneck работает дольше, чем другое оборудование. Назначьте оператора, который будет обслуживать процесс во время обеденных перерывов, плановых простоев и, если нужно, сверхурочно. Хотя этот метод не уменьшит время цикла, он будет поддерживать работу bottleneck пока остальное оборудование будет простаивать.
  6. Сократите простои. Избегайте плановых и внеплановых простоев. Если оборудование bottleneck выйдет из строя во время рабочего процесса, немедленно отправьте ремонтную бригаду, чтобы починить и запустить его. Также постарайтесь сократить время переналадки оборудования с одного продукта на другой.
  7. Усовершенствуйте процесс именно в узком месте. Используйте VSM, чтобы устранить действия, не добавляющие ценности, и сократить время на добавление ценности, избавившись от потерь. В итоге вы получите более короткое время цикла.
  8. Перераспределите нагрузку на bottleneck. Если возможно, разделите операцию на части и назначьте их на другие ресурсы. В итоге вы получите более короткий цикл и возросшую мощность.


Второй подход

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

Например, у вас на линии 20 инъекционных прессов, а вы используете только 12 из них, потому что оборудование bottleneck не может переработать выпуск всех 20 прессов. В этом случае вы можете найти другие компании, которые заинтересованы в субподряде на операции литья под давлением. Вы будете в прибыли, потому что получите от субподрядчиков больше, чем ваши переменные расходы.


Третий подход

Сокращение неиспользуемой мощности.

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


Примеры bottleneck вне производства

Транспорт

Классический пример — пробки на дорогах, которые могут постоянно образовываться в определенных местах, или появляться временно во время ДТП или проведения дорожных работ. Другие примеры — шлюз на реке, погрузчик, железнодорожная платформа.

Компьютерные сети

Медленный WiFi-роутер, подключенный к эффективной сети с высокой пропускной способностью, является узким местом.

Коммуникация

Разработчик, который шесть часов в день проводит на совещаниях, и только два часа пишет код.

Программное обеспечение

В приложения тоже есть узкие места — это элементы кода, на которых программа «тормозит», заставляя пользователя ждать.

"Железо" компьютера

Узкие места в компьютере — это ограничения аппаратных средств, при которых мощность всей системы ограничивается одним компонентом. Часто процессор рассматривается как ограничивающий компонент для видеокарты.

Бюрократия

В повседневной жизни мы часто сталкиваемся с узкими местами. Например, когда внезапно заканчиваются бланки для паспортов или водительских прав и вся система останавливается. Или когда нужно пройти медосмотр, а кабинет флюорографии работает всего три часа в день.

Вердикт

Узкие места в производстве, менеджменте и жизни — это точки потенциальных улучшений.

Расширение bottleneck даст ощутимый прирост производительности и эффективности.

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

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

Процессор

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



Во времена «двушек» и «трешек» (это не Pentium’ы II и III, как может решить молодежь, а процессоры i286 и i386) задачи ставились перед системами не очень сложные, в основном офисные приложения и расчеты. Карты расширения уже частью разгружали процессор, например, MPEG-декодер, занимавшийся дешифровкой файлов, сжатых в MPEG, делал это без участия CPU. Чуть позднее начали разрабатываться стандарты, которые меньше нагружали процессор при обмене данными. Примером была шина PCI (появившаяся, начиная с i486), работа по которой в меньшей степени нагружала процессор. Также к таким примерам можно отнести PIO и (U)DMA.


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



Тем временем компания Intel после выпуска неплохого процессора Pentium выпускает новое поколение – Pentium MMX. Она хотела изменить положение дел и перенести расчеты на процессор. В этом неплохо помог набор инструкций MMX – MultiMedia eXtensions, который предназначался для ускорения работ с обработкой звука и видео. С его помощью стала нормально проигрываться музыка формата mp3, и можно было добиться приемлемого воспроизведения MPEG4 средствами CPU.

Первые пробки в шине

Системы на базе процессора Pentium MMX уже больше упирались в ПСП (пропускную способность памяти). Шина в 66 МГц для нового процессора была бутылочным горлышком, несмотря на переход на новый тип памяти SDRAM, который улучшил производительность в пересчете на мегагерц. По этой причине очень популярным стал разгон по шине, когда выставляли шину 83 МГц (или 75 МГц) и получали весьма заметный прирост. Зачастую даже меньшая итоговая частота процессора компенсировалась большей частотой шины. Впервые большей скорости удавалось добиться при меньшей частоте. Еще одним бутылочным горлышком стал объем оперативной памяти. Для SIMM-памяти это был максимум в 64 Мб, но чаще стояло 32 Мб или вовсе 16. Это сильно осложняло использование программ, поскольку каждая новая версия Windows, как известно, любит «кушать много вкусной рамы» (c). Неда0ом ходят слухи касательно сговора производителей памяти с корпорацией Microsoft.



Intel тем временем стала развивать дорогостоящую и потому не очень популярную платформу Socket8, а AMD продолжила развивать Socket7. К сожалению, последняя использовала в своих продуктах медленный FPU (Floating Point Unit – модуль операций с дробными числами), созданный только что купленной тогда компанией Nexgen, что влекло за собой отставание от конкурента в мультимедийных задачах – в первую очередь, играх. Перевод на шину 100 МГц дал процессорам необходимую ПСП, а полноскоростной кэш второго уровня в 256 Кб на процессоре AMD K6-3 настолько улучшил ситуацию, что теперь скорость системы характеризовалась только частотой процессора, а не шины. Хотя, отчасти, это было связано с медленным FPU. Офисные приложения, зависящие от мощности ALU, благодаря быстрой подсистеме памяти работали быстрее решений конкурента.

Чипсеты

Intel отказалась от дорогостоящих Pentium Pro, у которых кристалл кэша L2 был интегрирован в процессор, и выпустила Pentium II. Данный CPU имел ядро, очень похожее на ядро Pentium MMX. Главными отличиями стали кэш L2, который размещался на картридже процессора и работал на половине частоты ядра, и новая шина – AGTL. С помощью новых чипсетов (в частности, i440BX) удалось повысить частоту шины до 100 МГц и, соответственно, ПСП. По эффективности (отношению скорости случайного чтения к теоретической) эти чипсеты стали одними из лучших, и по сей день Intel не смогла побить этот показатель. Чипсеты серии i440BX обладали одним слабым звеном – южным мостом, функциональность которого уже не удовлетворяла требованиям того времени. Использовался старый южный мост от серии i430, применяемой в системах на базе Pentium I. Именно это обстоятельство, как и связь между чипсетами по шине PCI, побудило производителей к выпуску гибридов, содержащих северный мост i440BX и южный мост VIA (686A/B).



Тем временем Intel демонстрирует проигрывание DVD-фильма без вспомогательных карт. Но Pentium II не получил большого признания ввиду высокой стоимости. Очевидной стала необходимость выпуска дешевых аналогов. Первая попытка – Intel Celeron без кэша L2 – стала неудачной: по скорости Covington’ы очень сильно проигрывали конкурентам и цены своей не оправдывали. Тогда Intel делает вторую попытку, оказавшуюся удачной, – ядро Mendocino, полюбившееся оверклокерам, обладающее вдвое меньшим объемом кэша (128 Кб против 256 Кб у Pentium II), но работающее на вдвое большей частоте (на частоте процессора, не вполовину медленнее, как у Pentium II). За счет этого скорость в большинстве задач была не ниже, а меньшая цена привлекала покупателей.

Первое 3D и снова шина

Сразу после выхода Pentium MMX началась популяризация 3D-технологий. Поначалу это были профессиональные приложения для разработки моделей и графики, но настоящую эру открыли 3D-игры, а точнее, 3D-ускорители Voodoo, созданные компанией 3dfx. Эти ускорители стали первыми массовыми картами для создания 3D-сцен, которые разгружали процессор при рендеринге. Именно с этого времени и пошел отсчет эволюции трехмерных игр. Довольно быстро расчет сцены силами центрального процессора стал проигрывать выполненному средствами видеоускорителя как в скорости, так и качестве.



С появлением новой мощной подсистемы – графической, ставшей по объему рассчитываемых данных соперничать с центральным процессором, вылезло новое бутылочное горлышко – шина PCI. В частности, карты Voodoo 3 и старшие получали прибавку в скорости уже просто при разгоне шины PCI до 37.5 или 41.5 МГц. Очевидно, что возникла потребность в обеспечении видеокарт достаточно быстрой шиной. Такой шиной (а точнее, портом) стала AGP – Accelerated Graphics Port. Как следует из названия, это специализированная графическая шина, и по спецификации она могла иметь только один слот. Первая версия AGP поддерживала скорости AGP 1x и 2x, что соответствовало однократной и двукратной скоростям PCI 32/66, то есть 266 и 533 Мб/с. Медленная версия была добавлена для совместимости, а именно с ней возникали достаточно большое время проблемы. Причем проблемы были со всеми чипсетами, за исключением выпущенных Intel. По слухам, эти проблемы были связаны с наличием лицензии только у этой компании и ее препятствованием развитию конкурирующей платформы Socket7.



AGP улучшил положение дел, и графический порт перестал быть узким местом. Видеокарты перешли на него очень быстро, но платформа Socket7 почти до самого конца страдала от проблем с совместимостью. Лишь последние чипсеты и драйверы смогли эту ситуацию улучшить, но и тогда возникали нюансы.

И винты туда же!

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



Этим фактором стали жесткие диски, рост объема которых замедлился и остановился на отметке около 40 Гб. Для коллекционеров фильмов (тогда MPEG4) это вызвало затруднения. Вскоре проблема была решена, и довольно быстро – диски доросли в объеме до 80 Гб и выше и перестали волновать большую часть пользователей.


AMD выпускает очень хорошую платформу – Socket A и процессор архитектуры K7, названный маркетологами Athlon (техническое название Argon), а также бюджетный Duron. У Атлонов сильными сторонами были шина и мощный FPU, что делало его отличным процессоров для серьезных расчетов и игр, оставляя его конкуренту – Pentium 4 – роль офисных машин, где, впрочем, мощные системы никогда не требовались. Ранние Duron имели очень небольшой объем кэша и частоту шины, что усложняло его конкуренцию с Intel Celeron (Tualatin). Но в силу лучшей масштабируемости (из-за более скоростной шины) они лучше отзывались на рост частоты, и потому старшие модели уже спокойно обгоняли решения Intel.

Между двух мостов


В этот период появилось сразу два узких места. Первое – это шина между мостами. Традиционно для этих целей использовалась PCI. Стоит вспомнить, что PCI в используемом в настольных компьютерах варианте имеет теоретическую пропускную способность в 133 Мб/с. На деле скорость зависит от чипсета и применения и варьируется от 90 до 120 Мб/с. В дополнение к этому пропускная способность разделяется между всеми устройствами, к ней подключенными. Если у нас есть два канала IDE с теоретической пропускной способностью в 100 Мб/с (ATA-100), подключенных к шине с теоретической пропускной способностью в 133 Мб/с, то проблема очевидна. LPC, PS/2, SMBus, AC97 имеют низкие требования к пропускной способности. Зато Ethernet, ATA 100/133, PCI, USB 1.1/2.0 уже оперируют скоростями, сравнимыми с межмостовым интерфейсом. Долгое время проблемы не было. USB не использовался, Ethernet требовался нечасто и в основном на скорости 100 Мбит/c (12.5 Мб/c), а жесткие диски не могли даже близко подойти к максимуму скорости интерфейса. Но время шло, и ситуация менялась. Было решено сделать специальную межхабовую (между мостами) шину.


VIA, SiS и Intel выпустили свои варианты шин. Отличались они, в первую очередь, пропускными способностями. Начинались они с PCI 32/66 – 233 Мб/с, но было сделано главное – шина PCI была выделена только под собственные устройства, и через нее не нужно было передавать данные другим шинам. Это улучшило скорость работы с периферией (относительно архитектуры мостов).


Наращивалась и пропускная способность графического порта. Внедрялась возможность работы с режимами Fast Writes, позволявшим писать данные в видеопамять напрямую, минуя системную память, и Side Band Addressing, использовавшим для передачи дополнительную часть шины в 8 бит, обычно предназначенную для передачи технических данных. Прирост от использования FW достигался только при высокой нагрузке на процессор, в остальных же случаях это давало мизерный прирост. Так, отличие режима 8x от 4x находилось в рамках погрешности.

Процессорозависимость

Еще одним возникшим бутылочным горлышком, актуальным и по сей день, стала процессорозависимость. Это явление возникло в результате стремительного развития видеокарт и означало недостаточную мощность связки «процессор – чипсет – память» по отношению к видеокарте. Ведь количество кадров в игре определяется не только видеокартой, но и этой связкой, так как именно последняя предоставляет карте инструкции и данные, которые нужно обработать. Если связка не поспевает, то видеоподсистема упрется в потолок, определяемый преимущественно ею. Такой потолок будет зависеть от мощности карты и используемых настроек, но есть и карты, обладающие таким потолком при любых настройках в определенной игре или при одинаковых настройках, но в большинстве современных ей игр практически при любых процессорах. Например, карта GeForce 3 сильно упиралась в производительность процессоров Puntium III и Pentium 4 на ядре Willamete. Чуть более старшей модели GeForce 4 Ti уже не хватало Athlon’ов 2100+-2400+, и прирост при улучшении характеристик связки был весьма заметен.



Каким образом улучшались характеристики? Поначалу AMD, пользуясь плодами разработанной эффективной архитектуры, просто повышала частоту процессоров и улучшала технологический процесс, а производители чипсетов – пропускную способность памяти. Intel продолжала следовать политике наращивания тактовых частот, благо архитектура Netburst именно к этому и располагала. Процессоры Intel на ядрах Willamete, Northwood с шиной 400QPB (quad pumped bus) проигрывали конкурирующим решениям с шиной 266 МГц. После внедрения 533QPB процессоры сравнялись в производительности. Но затем Intel вместо 667-МГц шины, внедренной в серверных решениях, решила процессоры для настольных компьютеров перевести сразу на шину 800 МГц, чтобы сделать запас мощности для конкуренции с ядром Barton и новым топом Athlon XP 3200+. Процессоры Intel сильно упирались в частоту шины, и даже 533QPB не хватало для обеспечения потоком данных в достаточном объеме. Именно поэтому вышедший 3.0-ГГц CPU на шине 800 МГц обгонял во всех, за исключением, быть может, малого числа, приложениях процессор 3.06 МГц на шине 533 МГц.


Также была введена поддержка новых частотных режимов для памяти, и появился двухканальный режим. Сделано это было для выравнивания пропускной способности шины процессора и памяти. Двухканальный режим DDR как раз соответствовал QDR на той же частоте.


Для AMD двухканальный режим был формальностью и давал едва заметный прирост. Новое ядро Prescott не принесло однозначного прироста в скорости и местами проигрывало старому Northwood. Основной его целью был перевод на новый техпроцесс и возможность дальнейшего роста частот. Тепловыделение сильно возросло в связи с токами утечки, что поставило крест на выпуске модели, работающей на частоте 4.0 ГГц.

Через потолок к новой памяти

Поколение Radeon 9700/9800 и GeForce 5 для процессоров того времени проблем с процессорозависимостью не вызывало. Зато поколение GeForce 6 поставило большинство систем на колени, поскольку прирост производительности был очень заметным, а потому и процессорозависимость выше. Топовые процессоры на ядрах Barton (Athlon XP 2500+ – 3200+) и Northwood/Prescott (3.0-3.4 МГц 800FSB) уперлись в новый предел – частотный предел памяти и шину. Особенно от этого страдала AMD – шина 400 МГц была недостаточной для реализации мощности хорошего FPU. У Pentium 4 ситуация была получше и при минимальных таймингах они демонстрировали хорошие результаты. Но JEDEC не желала сертифицировать более высокочастотные и обладающие меньшими задержками модули памяти. Потому варианта было два: или сложный четырехканальный режим, или переход на DDR2. Произошло последнее, и была представлена платформа LGA775 (Socket T). Шина оставалась той же, но частоты памяти не были ограничены 400 МГц, а только начинались с нее.



AMD решила проблему лучше с точки зрения масштабируемости. Поколение K8, носившее техническое название Hammer, помимо увеличения числа инструкций за такт (отчасти по причине более короткого конвейера), имел два новшества с заделом на будущее. Ими стали встроенный контроллер памяти (а точнее, северный мост с большей частью его функционала) и быстрая универсальная шина HyperTransport, которая служила для связи процессора с чипсетом или процессоров между собой в многопроцессорной системе. Встроенный контроллер памяти позволил избежать слабого звена – связки «чипсет – процессор». FSB как таковая существовать перестала, была лишь шина памяти и шина HT.


Это позволило Athlon’ам 64 легко обогнать существующие решения Intel на архитектуре Netburst и показать ущербность идеологии длинного конвейера. Tejas имел много проблем и не вышел на свет. Эти процессоры легко реализовывали потенциал карт GeForce 6, впрочем, как и старшие Pentium 4.


Но тут появилось нововведение, сделавшее процессоры слабым звеном надолго. Имя ему – multi-GPU. Решено было возродить идеи 3dfx SLI и претворить в NVIDIA SLI. ATI ответила симметрично и выпустила CrossFire. Это были технологии для обработки сцен силами двух карт. Удвоенная теоретическая мощность видеоподсистемы и расчеты, связанные с разбиением кадра на части за счет процессора, привели к перекосу системы. Старшие Athlon 64 нагружали такую связку лишь в больших разрешениях. Выход GeForce 7 и ATI Radeon X1000 еще больше увеличил этот дисбаланс.


Попутно был разработана новая шина PCI Express. Эта двунаправленная последовательная шина предназначена для периферии и обладает очень высокой скоростью. Она пришла на замену AGP и PCI, хотя и не вытеснила ее полностью. Ввиду универсальности, скорости и дешевизны реализации она быстро вытеснила AGP, хотя и не принесла в то время никакого прироста в скорости. Разницы между ними не было. Но с точки зрения унификации это был очень хороший шаг. Сейчас уже выпускаются платы с поддержкой PCI-E 2.0, обладающей вдвое большей (500 Мб/с в каждую сторону против прежних 250 Мб/с на одну линию) пропускной способностью. Прироста нынешним видеокартам это также не дало. Разница между различными режимами PCI-E возможна лишь в случае нехватки видеопамяти, что означает уже дисбаланс для самой карты. Такой картой является GeForce 8800GTS 320 Mб – она очень чутко реагирует на изменение режима PCI-E. Но брать несбалансированную карту, только чтобы оценить прирост от PCI-E 2.0, – решени5 не самое разумное. Другое дело, карты с поддержкой Turbocache и Hypermemory – технологий использования оперативной памяти в качестве видеопамяти. Здесь прирост в плане пропускной способности памяти будет примерно двукратным, что положительно отразится на производительности.


Достаточно ли видеокарте памяти можно посмотреть в любом обзоре устройств с разными объемами VRAM. Там, где будет наблюдаться резкое падение кадров в секунду, наличествует нехватка VideoRAM. Но бывает, что разница становится сильно заметна только при неиграбельных режимах – разрешении 2560х1600 и AA/AF на максимум. Тогда разница 4 и 8 кадров в секунду хоть и будет двукратной, но очевидно, что оба режима невозможны в реальных условиях, потому и в расчет их брать не стоит.

Новый ответ видеочипам

Выход новой архитектуры Core 2 (техническое название Conroe) улучшил ситуацию с процессорозависимостью и решения на GeForce 7 SLI загружал без особых проблем. Но подоспевшие Quad SLI и GeForce 8 взяли реванш, восстановив перекос. Так продолжается и до сих пор. Ситуация лишь усугубилась с выходом 3-way SLI и готовящимися к выходу Quad SLI на GeForce 8800 и Crossfire X 3-way и 4-way. Выход Wolfdale слегка повысил тактовые частоты, но и разгона этого процессора мало, чтобы нормально загрузить такие видеосистемы. 64-битные игры – большая редкость, а прирост в этом режиме наблюдается в единичных случаях. Игры, получающие прирост от четырех ядер, можно пересчитать по пальцам одной руки инвалида. Как обычно, всех вытягивает Microsoft, загружая своей новой ОС и память, и процессор за здорово живешь. Подспудно объявляется, что технологии 3-way SLI и Crossfire X будут работать исключительно под Vista. Учитывая аппетиты оной, возможно, геймеры будут вынуждены брать четырехъядерные процессоры. Связано это с более равномерной, нежели в Windoes XP, загрузкой ядер. Если уж она должна отъедать изрядную долю процессорного времени, так пусть хоть отъедает ядра, которые игрой все равно не используются. Однако сомневаюсь, что новая операционная система удовлетворится данными на откуп ядрами.



Платформа Intel изживает себя. Четыре ядра уже сильно страдают от нехватки пропускной способности памяти и задержек, связанных с переключениями шины. Шина является разделяемой, и на перехват ядром шины под свой контроль требуется время. При двух ядрах это терпимо, но на четырех влияние временных потерь становится заметней. Также системная шина давно не поспевает за ПСП. Влияние данного фактора было ослаблено улучшением эффективности асинхронного режима, что Intel неплохо реализовала. Рабочие станции в еще большей степени страдают от этого по вине неудачного чипсета, контроллер памяти которого обеспечивает лишь до 33% от теоретического ПСП. Пример тому – проигрыш платформы Intel Skulltrail в большинстве игровых приложений (3Dmark06 CPU test – не игровое приложение:)) даже при использовании одинаковых видеокарт. Потому Intel объявила о новом поколении Nehalem, которое займется внедрением инфраструктуры, очень схожей с разработками AMD – встроенный контроллер памяти и шина для периферии QPI (техническое название CSI). Это улучшит масштабируемость платформы и даст положительные результаты в двухпроцессорных и многоядерных конфигурациях.


AMD сейчас имеет несколько бутылочных горлышек. Первое связано с механизмом кэширования – из-за него существует некий предел ПСП, зависящий от частоты процессора, такой, что выше этого значения не удается перепрыгнуть, даже используя более высокочастотные режимы. Например, при среднем процессоре разница в работе с памятью между DDR2 667 и 800 МГц может быть порядка 1-3%, для реальной задачи – вообще ничтожной. Потому лучше всего подбирать оптимальную частоту и понижать тайминги – на них контроллер очень хорошо отзывается. Потому внедрять DDR3 смысла не имеет никакого – большие тайминги только повредят, прироста вообще может не быть. Также проблема AMD сейчас – медленная (несмотря на SSE128) обработка SIMD инструкций. Именно по этой причине Core 2 очень сильно обгоняет K8/K10. ALU, всегда бывший сильным местом Intel, стал еще сильнее, и в некоторых случаях может быть в разы быстрее своего собрата в Phenom’е. То есть основная беда процессоров AMD – слабая «математика».


Вообще говоря, слабые звенья очень сильно зависят от конкретной задачи. Были рассмотрены лишь «эпохальные». Так, в некоторых задачах скорость может упереться в объем ОЗУ или же скорость дисковой подсистемы. Тогда добавляется больше памяти (объем определяется с помощью счетчиков производительности) и ставятся RAID-массивы. Скорость игр может быть повышена отключением встроенной звуковой карты и покупкой нормальной дискретной – Creative Audigy 2 или X-Fi, которые меньше грузят процессор, обрабатывая эффекты своим чипом. Это в большей степени относится к звуковым картам AC’97 и в меньшей к HD-Audio (Intel Azalia), поскольку в последней была исправлена проблема высокой загрузки процессора.


Помни, система всегда должна браться под конкретные задачи. Зачастую, если видеокарту можно подобрать сбалансированную (и то выбор по ценовым категориям будет зависеть от сильно разнящихся по разным местам цен), то, скажем, с дисковой подсистемой такая возможность не всегда имеется. RAID 5 нужен очень немногим, но для сервера – это незаменимая вещь. То же относится к двухпроцессорной или многоядерной конфигурации, бесполезной в офисных приложениях, но это «must have» для дизайнера, работающего в 3Ds Max.

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

Любой компьютер, вне зависимости от его архитектурных особенностей и предназначения, состоит из центрального процессора и оперативной памяти, которые при необходимости могут быть дополнены периферийными устройствами. Последние применяются в основном для того, чтобы компьютер мог обмениваться информацией с внешним миром. Но в общем его производительность определяется согласованной работой именно процессора и памяти. И как раз здесь последнее время наметилось узкое место.

В IBM PC, первом массовом 16-разрядном персональном компьютере, появившемся немногим более 20 лет назад, был использован процессор Intel 8088 - младший брат Intel 8086, отличающийся от него вдвое более узкой внешней шиной данных. Такое решение было экономически оправданным, так как позволяло использовать восьмиразрядную периферию, благодаря чему новый компьютер не слишком сильно отличался по цене от своих восьмиразрядных собратьев. Но если предыдущий процессор Intel 8086 осуществлял синхронную выборку и исполнение команд, то у нового процессора эти действия выполнялись асинхронно - появилась очередь команд, заполнявшаяся тогда, когда не было интенсивного обмена процессора с областью данных. Это позволило более эффективно использовать пропускную способность шины данных, и уменьшение ее ширины вдвое не привело к существенному падению производительности.

В то время память практически не задерживала исполнение команд: процессор работал на тактовой частоте 4,77 МГц и даже адрес он вычислял гораздо дольше, чем память выдавала необходимые данные. Однако скорость процессора характеризуется тактовой частотой, а скорость памяти - временем доступа, которое не подвержено столь головокружительному прогрессу: тактовая частота выросла почти в 500 раз, а время доступа сократилось лишь примерно на порядок. Но если время доступа, скажем, 100 нс, то при 10 МГц это соответствует одному такту процессора, при 40 МГц - четырем тактам, а при 100 МГц - уже десяти. Кроме того, совершенствовалась архитектура процессоров, так что одни и те же команды стали выполняться за гораздо меньшее количество тактов (см. табл. 1).

Разработчики учитывали возникающие тенденции. IBM PC AT вышел уже с полной 16-разрядной шиной данных, а IBM AT-386 - с полной 32-разрядной. Такова же была разрядность компьютеров и на 486 процессоре. Дальше - больше. Ширина внешней шины данных Pentium составляла 64 разряда, т. е. вдвое превышала разрядность процессора. А для графических процессоров (часто называемых 3D-акселераторами) она составляет уже 128-256 разрядов.

Увеличение ширины шины - не единственный способ обойти низкую скорость работы памяти. Начиная со старших моделей 386 в компьютерах стали применять кэш-память - небольшой объем быстродействующей памяти, являющейся как бы буфером между медленной основной памятью и процессором.

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

До недавнего времени частота внешней шины процессора Front Side Bus (FSB) должна была совпадать с частотой тактирования оперативной памяти. Низкая частота шины у процессоров Celeron (66 МГц) при этом ограничивала производительность данного класса процессоров. Последние же чипсеты позволяют тактировать память более высокой частотой, что может довольно существенно сказаться на общей производительности. Для исследования этого вопроса была использована системная плата Gigabyte GA-6VTX на чипсете VIA Apollo Pro 133T, позволяющем независимо устанавливать как внешнюю частоту процессора, так и частоту тактирования оперативной памяти. На нее по очереди устанавливались два процессора, различающиеся частотой внешней шины: Celeron-566 (FSB 66 МГц) и Celeron-1000 (FSB 100 МГц). Набор тестов - традиционный для нашего журнала. Все тесты проводились в однозадачной ОС (DOS Mode Windows 98 SE). Естественно, кэш-память при проведении измерений не отключалась, что также оказало немалое влияние (иногда определяющее, но об этом ниже) на результаты.

При чтении, записи и пересылке 4-Мбайт массива выявились вполне определенные закономерности (см. табл. 2).

Во-первых, увеличение частоты тактирования памяти со 100 до 133 МГц при FSB 66 МГц не привело к какому-либо изменению результатов. Это справедливо не только для последовательного доступа, но и вообще для всех проведенных экспериментов. В чем тут дело: то ли FSB не способна "переварить" более чем полуторакратное увеличение частоты памяти, то ли реальная частота тактирования "замораживается" на 100, когда BIOS Setup показывает 133, - сказать трудно.

Во-вторых, скорость выполнения значительной части операций зависит лишь от частоты памяти, а не от частоты процессора.

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

В качестве альтернативы последовательному доступу можно применить произвольный. Внутри 32-Мбайт области случайным образом вычислялся адрес, а затем по этому адресу производилось чтение или запись одного байта (рис. 1).

Чрезвычайно низкая скорость обмена объясняется двумя факторами. Во-первых, для первоначального задания адреса требуется довольно много времени (см. врезку ). Во-вторых, операции чтения/записи буферизованы кэшем, а обмен с ним осуществляется только порциями по 32 байта. Другими словами, чтобы считать из памяти 1 байт, необходимо перенести в кэш 32. В заключение отмечу, что процедура вычисления случайного адреса конечно же тоже занимает некоторое время, тем не менее примененный алгоритм позволяет при уменьшении объема данных до объема кэша L2 производить выборку со скоростью более 70 Мбайт/с для применяемого процессора 1 ГГц.

Различный характер зависимости производительности от частоты процессора и памяти для разных типов приложений можно видеть на рис. 2.

Для единообразия за единицу производительности принят процессор с частотой 566 МГц и памятью, работающей на 66 МГц. Кривыми обозначены следующие тестовые программы:

  1. Решение системы дифференциальных уравнений в частных производных (СДУЧП) на процессоре 566 МГц при объеме данных 40 Мбайт.
  2. Решение СДУЧП на процессоре 1000 МГц при тех же условиях.
  3. Нахождение простых чисел методом "решета Эратосфена" (РЭ) на процессоре 566 МГц при объеме массивов 40 Мбайт.
  4. РЭ на процессоре 1000 МГц при том же объеме массивов.
  5. Быстрая сортировка 16-Мбайт массива на процессоре 566 МГц.
  6. Быстрая сортировка 16-Мбайт массива на процессоре 1 ГГц.
  7. Нахождение кратчайшего пути в графе методом Дейкстры на 566-МГц процессоре. Объем массивов 300 Кбайт (более удвоенного объема кэш-памяти).
  8. Нахождение кратчайшего пути в графе на 1-ГГц процессоре при тех же условиях.

Из приведенных данных видно, что большая часть приложений наиболее чувствительна к частоте процессора. На рис.2 им соответствуют горизонтальные кривые вблизи единицы для частоты 566 МГц и вблизи 1,7-1,8 для 1000 МГц. Наиболее чувствительным к частоте памяти оказалось "решето Эратосфена", при этом с 66-МГц памятью производительность практически не зависела от частоты процессора. Графики для таких приложений имеют вид наклонных линий, для которых увеличение частоты вдвое соответствует такому же увеличению производительности, при этом зависимость от частоты процессора отсутствует. Некоторый компромисс наблюдается при решении системы дифференциальных уравнений. Производительность зависит от частоты памяти, но не прямо пропорционально, а гораздо слабее, кроме того, при частоте памяти 66 МГц процессор Celeron 1 ГГц демонстрирует всего на четверть более высокую производительность по сравнению с 566 МГц.

Хочется провести сравнение на примере еще одной задачи, а также исследовать влияние кэш-памяти.

В те далекие времена, когда компьютеры занимали несколько этажей здания и использовались исключительно для научных расчетов, оценке производительности уже уделялось немало внимания. Правда, задержек, связанных с памятью, тогда не было, а самыми сложными считались вычисления с плавающей запятой. Вот для таких вычислений и был написан тест Донгарра - решение системы линейных уравнений. Результаты некоторого обобщения этого теста приведены на рис. 3. Теперь уже оказалось, что сами вычисления с плавающей запятой можно выполнить гораздо быстрее, чем записать результаты этих вычислений в память.

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

К счастью, значительная часть реальных приложений не достигает таких объемов одновременно обрабатываемых данных, при которых тактовая частота процессора уже перестает играть роль. Обработку текстур, необходимую на каждом кадре, берет на себя графический процессор, а там совсем другие и частоты, и ширина шины. А остальные объемные данные, будь то видеофильм, архив или многостраничный документ, как правило, обрабатываются небольшими порциями, умещающимися в кэш-память. Но с другой стороны, кэш-память ведь тоже надо заполнять. Да и снижение производительности "всего" вдвое-втрое или даже на десятки процентов вместо десятикратного вряд ли может утешить.

Из проведенных измерений следует и еще один вывод: если чипсет допускает асинхронную работу процессора и памяти, это нивелирует разницу в производительности из-за различия в FSB, которая имеется, например, у Celeron и Pentium !!!.

От редакции: хотя полученные выводы с уверенностью можно отнести только к платам на основе набора микросхем VIA Apollo 133T, но в целом этот подход может быть применен и для оценки эффективности перехода на 533-МГц шину в современных платах.

Как работает динамическая память

Центральной частью микросхемы динамической памяти является матрица конденсаторов размером MxN, где M и N обычно равны двум в какой-либо степени. Каждый конденсатор может находиться в одном из двух состояний: заряженном или разряженном, таким образом он хранит 1 бит информации.

Адрес в микросхему памяти передается в два этапа: сначала младшая половина адреса фиксируется в регистре адреса сигналом RAS (строб адреса строки), а затем старшая - сигналом CAS (строб адреса столбца). При считывании данных из памяти после фиксации младшая часть адреса подается на дешифратор строк, а с него - на матрицу, в результате чего строка конденсаторов матрицы целиком подключается к входу усилителей считывания. В процессе считывания конденсаторы разряжаются, а значит, информация в матрице теряется. Чтобы не допустить этого, только что считанная строка данных вновь записывается в строку конденсаторов матрицы - происходит регенерация памяти. К тому моменту, когда строка из матрицы попала в буфер усилителя считывания, на дешифратор адреса столбца уже подана старшая половина адреса и при помощи этого дешифратора выбирается один-единственный бит информации, хранящейся по адресу, зафиксированному в регистре адреса. После этого считанные данные можно подать на выход микросхемы. При записи информации сначала строка также считывается целиком, затем в ней изменяется нужный бит и строка записывается на прежнее место. Увеличение разрядности до 1, 2, 4 или 8 байт достигается параллельной работой нескольких микросхем памяти или нескольких матриц в одной микросхеме.

Как видим, для доступа к ячейке динамической памяти нужно проделать много последовательных операций, а потому время доступа оказывается довольно большим - сегодня это 35-50 нс, что соответствует 5-7 тактам внешней шины.

Память, работающая, как описано выше (DRAM - динамическая память произвольного доступа), применялась в первых персональных компьютерах. В одном корпусе при этом хранился объем информации до 64 кбит. Но если операции с адресом неизбежно занимают много времени, то нельзя ли как-нибудь обойти это ограничение? Ведь процессору зачастую нужны длинные цепочки байтов, хранящиеся в памяти подряд, например при выполнении последовательности команд или при обработке строк и массивов данных. И решение было найдено: после передачи микросхеме адреса первого элемента несколько последующих считывалось лишь при помощи сигналов шины управления, без передачи нового адреса, что оказалось примерно вдвое быстрее. Такая память получила название FPM RAM (память с быстрой страничной организацией) и надолго стала единственным типом оперативной памяти, используемым в персональных компьютерах. Для обозначения временных характеристик такой памяти применялись последовательности цифр: например, "7-3-3-3" означало, что на получение первой порции данных нужно затратить 7 тактов системной шины, а на последующие - по 3. Однако отрыв тактовой частоты процессора от частоты системной шины, с одной стороны, и прогресс технологии, позволивший сократить количество тактов, расходуемое вычислительным блоком на одну операцию, с другой, поставили вопрос о дальнейшем усовершенствовании технологии работы оперативной памяти.

Следующим этапом была разработка EDO RAM - памяти с увеличенным временем вывода данных, когда стало возможным совместить получение очередного блока данных с передачей "заявки" на получение следующего. Это позволило на такт уменьшить время доступа: "6-2-2-2". Однако EDO RAM очень скоро была вытеснена памятью типа SD RAM (синхронная), за счет чередования блоков время доступа оказалось возможным уменьшить до "5-1-1-1-1-1-1-1". Одновременно был применен некоторый маркетинговый ход: если при обозначении времени доступа к памяти типа FPM и EDO RAM принято было указывать время первого обращения, которое составляло 60-80 нс, то для SD RAM стали указывать время второго и последующих, что составляло уже 10-12 нс для тех же тактовых частот и, следовательно, близкого времени первого обращения. Производительность подсистемы памяти при этом выросла на десятки процентов, тогда как числа, обозначающие время доступа к памяти, уменьшились в несколько раз.

SDRAM до сих пор является основным типом памяти для процессоров Intel Pentium !!! и Celeron. Наряду с ней могут использоваться и более новые разработки: DDR RAM (точнее, DDR SDRAM, но мы будем пользоваться указанным обозначением), применяемая в основном с процессорами AMD Athlon и Duron, работающая на тех же частотах (100-133 МГц), но позволяющая передавать данные до двух раз за такт: по переднему и заднему фронту (поэтому появилось такое понятие, как эффективная частота, в данном случае 200-266 МГц), и ориентированная на применение в системах с Pentium-4 RDR RAM (Rambus RAM), работающая на частотах 300-533 МГц (эффективная частота 600-1066 МГц).

Если для SDRAM (теперь часто называемой SDR DRAM) были приняты обозначения PC-100 и PC-133, означающие возможность работы на 100 и 133 МГц соответственно, то для новых типов памяти, скажем PC-2100, цифры обозначают уже не частоту более 2 ГГц, а лишь "пиковую" скорость передачи данных. Слово "пиковая" взято в кавычки потому, что в каких бы идеальных условиях мы ни проводили измерения, полученное отношение количества переданной информации к затраченному на это времени не только не будет равно указанным числам, но даже не будет стремиться к ним асимптотически. Дело в том, что эта скорость приведена для части пакета с отрезанной первой порцией данных, т. е., как и для SDRAM, только для "второго и последующих". Для DDR RAM время первого обращения такое же, как и для SDRAM, а последующих - в два раза меньше. Поэтому при последовательном доступе выигрыш в производительности составляет десятки процентов, а при произвольном - вообще отсутствует.



Предыдущая статья: Следующая статья:

© 2015 .
О сайте | Контакты
| Карта сайта