Вместимость, дальность и скорость некоторых коммерческих самолетов
Самолет |
Вместимость |
Дальность, миль |
Крейсерская скорость, миль в час |
Пропускная способность, пассажиров х миль в час |
Боинг 777 |
375 |
4630 |
610 |
228 750 |
Боинг 747 |
470 |
4150 |
610 |
286 700 |
Конкорд |
132 |
4000 |
1350 |
178 200 |
Дуглас DC-8-50 |
146 |
8720 |
544 |
79 424 |
Последняя графа показывает оценку возможности самолета по перевозке пассажиров, представляющую собой произведение вместимости и крейсерской скорости (при этом игнорируется дальность и время взлета-посадки).
Е
Время отклика (Response time)
Также называется временем выполнения (execution time). Общее время, требующееся компьютеру для завершения задачи, включая время доступа к диску, памяти, активации устройств ввода-вывода, издержек операционной системы, времени выполнения задачи центральным процессором, и т. д.
Пропускная способность (troughput, bandwidth)
Еще один показатель производительности, представляющий собой количество задач, выполненных в единицу времени.
сли запустить программу на двух разных настольных компьютерах, то вы скажете, что быстрее из них работает тот, который справится с заданием первым. Если работать с центром обработки данных, имеющим несколько серверов, выполняющих задания, отправленные многими пользователями, вы скажете, что самым быстрым был тот компьютер, который выполнил за день наибольшее количество заданий. Как индивидуальный компьютерный пользователь, вы заинтересованы в сокращении времени отклика — то есть времени между запуском и завершением задачи, — которое также называется временем выполнения. Руководители центров обработки данных часто заинтересованы в повышении пропускной способности — общего объема работы, выполненного за заданное время. Следовательно, в большинстве случаев нам нужны разные оценки производительности, а также разные наборы приложений для сравнения встроенных и настольных компьютеров, для которых более значимо время выполнения, в отличие от серверов, для которых более значима пропускная способность.
При обсуждении производительности компьютеров на протяжении первых нескольких глав нас в основном будет интересовать время отклика. Для увеличения производительности нам требуется минимизировать время отклика или время выполнения какой-нибудь задачи. Таким образом, мы можем связать производительность и время выполнения для компьютера X следующей формулой:
Это означает, что для двух компьютеров X и Y, если производительность X выше, чем производительность Y, мы получаем следующее:
То есть время выполнения на компьютере Y больше, чем на компьютере X, если X быстрее, чем Y.
При обсуждении конструкции компьютера нам часто хочется связать производительность двух разных компьютеров количественным показателем. Для этого мы будем использовать фразу «X в n раз быстрее, чем Y» или использовать равноценную фразу «Скорость X в n раз больше скорости Y», что означает:
Если X в и раз быстрее, чем Y, тогда время выполнения задачи на Y в п раз больше, чем на X:
Упражнение |
Если компьютер А выполняет программу за 10 секунд, а компьютер В выполняет ту же программу за 15 секунд, то насколько А быстрее В?
|
Ответ |
Мы знаем, что А в n раз быстрее, чем В, если:
Таким образом, соотношение производительности равно:
и A поэтому в 1,5 раза быстрее, чем В. |
Оценка производительности.
Оценочным критерием компьютерной производительности является время: компьютер, выполняющий тот же объем работы за меньшее время, является более быстрым. Время выполнения программы оценивается в секундах, затраченных на ее выполнение. Но время может быть определено и другими способами, в зависимости от того, что берется в расчет. Наиболее простые — время выполнения процесса, время отклика или общее затраченное время. Эти понятия означают полное время, затраченное на выполнение задачи, включая обращения к диску, обращения к памяти, работу устройств ввода-вывода, издержки, связанные с работой операционной системы, то есть все, на что потрачено время.
Но компьютеры часто работают в режиме разделения времени, и процессор может работать над выполнением сразу нескольких программ. В таких случаях система может стремиться не к минимизации общего времени, затраченного на выполнение одной программы, а к оптимизации пропускной способности. Поэтому часто возникает потребность в проведении черты между общим затраченным временем и временем работы процессора в наших интересах. Время выполнения задачи центральным процессором (CPU execution time), или просто процессорное время (CPU time), которое учитывает это различие, - это время, которое центральный процессор затрачивает на работу над этой задачей, оно включает время ожидания операций ввода-вывода или время, затраченное на выполнение других программ. (Но при этом следует помнить, что время отклика, ожидаемое пользователем, будет общим затраченным временем, а не процессорным временем.) Процессорное время может и дальше делиться на процессорное время, затраченное на программу и называемое процессорным временем пользователя (user CPU time), и на процессорное время, затраченное на выполнение операционной системой задач в интересах программы, называемое процессорным временем системы (system CPU time). Провести четкую черту между процессорным временем системы и пользователя довольно трудно, поскольку зачастую трудно отнести активность операционной системы к той или иной пользовательской программе, трудности вызываются также и функциональными особенностями разных операционных систем.
Ч
Время выполнения задачи центральным процессором (CPU EXECUTION TIME)
Также называется процессорным временем (CPU time). Фактическое время, затраченное центральным процессором на выполнение конкретной задачи.
Процессорное время пользователя (user CPU time)
Время центрального процессора, затраченное на саму программу.
Процессорное время системы (system CPU time)
Время центрального процессора, затраченное в операционной системе на выполнение задач, связанных с выполнением программы.
тобы быть последовательными, мы сохраним различие между производительностью, основанной на общем затраченном времени, и производительностью, основанной на времени выполнения задачи центральным процессором. Для ссылки на общее затраченное время на разгруженной системе будет использоваться термин производительность системы, а для ссылки на процессорное время пользователя будет использоваться термин производительность центрального процессора.Х
Тактовый цикл (clock cycle)
Также называется тактом (tick), тактом системных часов (clock tick), тактовым интервалом (clock period), тактовым сигналом (clock), циклом (cycle). Это время одного тактового интервала, относящееся, как правило, к тактовому генератору процессора, работающему с постоянной частотой.
Тактовый интервал
Продолжительность каждого тактового цикла.
отя нас как пользователей компьютера интересует время, при исследовании компонентов компьютера удобно думать о производительности, пользуясь другими оценочными критериями. В частности, разработчики компьютеров могут анализировать компьютер, используя показатель, описывающий, насколько быстро аппаратура может выполнять основные функции. Практически все компьютеры используют тактовый генератор, определяющий момент наступления событий. Эти дискретные интервалы времени называются тактовыми циклами (или тактами, тактами системных часов, тактовыми интервалами, тактовыми сигналами, циклами). Конструкторы ссылаются на продолжительность тактового интервала и как на время завершения тактового цикла (например, 250 пикосекунд, или 250 пс), и как на тактовую частоту (например, 4 гигагерц, или 4 ГГц), которая является для тактового цикла обратной величиной.
Производительность центрального процессора и ее факторы.
Пользователи и разработчики часто оценивают производительность исходя из разных критериев. Если мы сможем соотнести эти разные критерии, мы сможем определить воздействие конструктивных изменений на производительность в понятиях пользователя. Поскольку на данный момент мы рассматриваем только производительность центрального процессора, основным критерием производительности является время выполнения задачи центральным процессором. Основные показатели процессорного времени (количество тактовых циклов и время цикла тактового генератора) связаны простой формулой:
Время выполнения программы центральным процессором
Количество тактовых циклов процессора, затраченных на программу
Время выполнения программы центральным процессором
Время цикла тактового генератора
=
И в другом варианте, поскольку тактовая частота и время цикла тактового генератора являются обратными величинами:
Количество тактовых циклов процессора, затраченных на программу
=
______________________________________
Тактовая частота
Эта формула дает понять, что разработчик аппаратуры может повысить производительность, сократив количество тактовых циклов, затрачиваемых на программу, или сократив продолжительность тактового цикла. В следующих главах будет показано, что разработчик часто сталкивается с компромиссом между количеством тактовых циклов, необходимым для программы, и продолжительностью каждого цикла. Многие технологии, уменьшающие количество тактовых циклов, могут также увеличивать продолжительность тактового цикла.
Генератор тактовой частоты (генератор тактовых импульсов) генерирует электрические импульсы заданной частоты (обычно прямоугольной формы) для синхронизации различных процессов в цифровых устройствах — ЭВМ, электронных часах и таймерах, микропроцессорной и другой цифровой технике. Тактовые импульсы часто используются как эталонная частота — считая их количество, можно, например, измерять временные интервалы.
Упражнение |
||||||
Интересующая нас программа выполняется на компьютере А, имеющем тактовую частоту 2 ГГц, за 10 секунд. Мы стараемся помочь разработчику компьютеров создать компьютер В, который выполнял бы эту программу за 6 секунд. Этот разработчик определил, что соответствующее повышение тактовой частоты вполне допустимо, но это повышение повлияет на всю остальную конструкцию центрального процессора и компьютеру В на выполнение программы потребуется в 1,2 раза больше тактовых циклов, чем компьютеру А. Какую тактовую частоту следует заказать разработчику компьютеров?
|
||||||
Ответ |
||||||
Сначала давайте определим количество циклов, необходимых программе на компьютере А:
Процессорное время для компьютера В может быть найдено с использованием следующего уравнения:
|
||||||
Десятичный множитель |
Приставка |
Обозначение |
Пример |
|||
русская |
международная |
русское |
международное |
|||
101 |
дека |
deca |
да |
da |
дал — декалитр |
|
102 |
гекто |
hecto |
г |
h |
гПа — гектопаскаль |
|
103 |
кило |
kilo |
к |
k |
кН — килоньютон |
|
106 |
мега |
Mega |
М |
M |
МПа — мегапаскаль |
|
109 |
гига |
Giga |
Г |
G |
ГГц — гигагерц |
|
1012 |
тера |
Tera |
Т |
T |
ТВ — теравольт |
|
1015 |
пета |
Peta |
П |
P |
Пфлопс — петафлопс |
|
1018 |
экса |
Exa |
Э |
E |
ЭБ — эксабайт |
|
1021 |
зетта |
Zetta |
З |
Z |
ЗэВ — зеттаэлектронвольт |
|
1024 |
йотта |
Yotta |
И |
Y |
ИБ — йоттабайт |
|
Показанные выше уравнения производительности не учитывают количество инструкций, необходимое для выполнения программ. (Инструкции, из которых составляется программа, рассматриваются в следующей главе.) Но поскольку компилятор сгенерировал вполне определенное количество инструкций, подлежащих выполнению, и компьютер должен выполнить инструкции, чтобы следовать программе, время выполнения должно зависеть от количества инструкций в программе. Один из способов представления времени выполнения состоит в том, что оно равно количеству выполненных инструкций, умноженному на среднее время выполнения одной инструкции. Поэтому количество тактовых циклов, требуемое для программы, может быть записано в виде следующей формулы:
Количество тактовых циклов процессора
Количество инструкций для программы
Среднее количество тактовых циклов на инструкцию
=
Для термина количество тактовых циклов на инструкцию, означающего среднее количество тактовых циклов, затрачиваемых на выполнение каждой инструкции, часто используется сокращение CPI (clock cycles per instruction). Поскольку на разные инструкции, в зависимости от того, что именно они делают, затрачивается разное количество времени, CPI является усредненным показателем для всех инструкций, выполняемых в программе. CPI предоставляет единственный способ сравнения двух различных реализаций одной и той же архитектуры набора инструкций, поскольку количество инструкций, выполняемых в программе, будет, конечно же, одинаковым.
Упражнение |
Предположим, что есть две реализации одной и той же архитектуры набора команд. У компьютера А продолжительность тактового цикла равна 250 пс, значение CPI для некой программы равно 2, а у компьютера В продолжительность тактового цикла равна 500 пс, значение CPI для той же программы равно 1.2. Какой из компьютеров будет быстрее для данной программы и насколько? |
Ответ |
Мы знаем, что любой компьютер при каждом запуске программы выполняет одно и то же количество инструкций; обозначим это количество буквой C. Сначала определим количество тактовых циклов процессора для каждого компьютера:
Теперь мы можем вычислить процессорное время для каждого компьютера:
И точно также для В:
Очевидно, что компьютер А работает быстрее. Насколько быстрее, позволяет определить соотношение показателей времени выполнения:
Вывод, что для данной программы компьютер А в 1.2 раза быстрее компьютера В.
|
Классическое уравнение производительности центрального процессора.
Теперь мы можем описать основное уравнение производительности в понятиях количества инструкций (количества инструкций, выполненных по программе), CPI и продолжительности тактового цикла:
или, поскольку тактовая частота является величиной, обратной продолжительности тактового цикла:
Эти формулы особенно удобны тем, что в них использованы три ключевых фактора, влияющих на производительность. Мы можем использовать эти формулы для сравнения двух различных реализаций или для оценки альтернативной конструкции, если знаем, как она влияет на эти три параметра.
Упражнение |
||||||||||||||||||||||||||
Разработчик компилятора пытается принять решение относительно двух кодовых последовательностей для конкретного компьютера. Разработчики аппаратуры предоставили следующие факты:
Для отдельной инструкции на языке высокого уровня создатель компилятора рассматривает две кодовые последовательности, для выполнения которых требуется следующее количество инструкций:
Для какой кодовой последовательности будет выполнено большее количество инструкций? Какая из них будет выполняться быстрее? Каков будет показатель CPI для каждой последовательности?
|
||||||||||||||||||||||||||
Ответ |
||||||||||||||||||||||||||
Для последовательности 1 выполняется 2 + 1 + 2 = 5 инструкций. Для последовательности 2 выполняется 4 + 1 + 1 = 6 инструкций. Стало быть, для последовательности 1 выполняется меньше инструкций. Для определения общего количества тактовых циклов для каждой последовательности можно применить формулу зависимости количества тактовых циклов процессора от количества инструкций и CPI:
Она дает нам следующий результат:
Таким образом, последовательность 2 выполняется быстрее, несмотря даже на то, что для нее выполняется на одну инструкцию больше. Поскольку выполнение кодовой последовательности 2 требует меньше общего количества тактовых циклов, но использует больше инструкций, она должна иметь меньший показатель CPI. Значения CPI могут быть вычислены следующим образом:
|
||||||||||||||||||||||||||
Самое важное.
Всегда нужно помнить, что единственным полноценным и достоверным оценочным показателем производительности компьютера является время. Например, изменение набора команд, направленное на снижение количества инструкций, может привести к созданию конструкции с более медленным тактовым циклом или с более высоким показателем CPI, что нивелирует все преимущества от уменьшения количества инструкций. Аналогично этому поскольку показатель CPI зависит от типа выполняемых инструкций, код, для которого выполняется меньшее количество инструкций, может быть далеко не самым быстрым.
