Сегодня 25 декабря 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Процессоры и память

Прямое сравнение производительности КПК и настольных систем

⇣ Содержание
Автор: Стас Вихров

Современные КПК достигли внушительных характеристик. Это уже не чахленькие машинки с 8-МГц процессором и черно-белым экраном 160х160, способные только на то, что бы вести список дел и телефонную книгу. Сейчас КПК способен на большее - воспроизведение музыки и видео, 3D-игры, работа со сложными офисными приложениями, полноценный интернет и электронная почта. То есть практически все, на что способен большой десктоп. Абстрактный Топ-КПК 2005 года имеет следующие характеристики: процессор Intel PXA27X с частотой 624МГц; крупный (до 4-х дюймов) экран с разрешением 480х640; до 128 Мб оперативной памяти; видеоакселератор от фирмы ATI или Intel, 2 беспроводных интерфейса - WI-FI и Bluetooth, 2 слота расширения - Compact Flash и SD в которые суммарно можно установить до 10Гб flash памяти либо различную перфирию - GPS/GSM модули, сетевые карты, модемы, FM-тюнеры и т.д. Все это работает под управлением операционной системы Windows Mobile. Согласитесь, такими характеристиками еще лет 5 назад мог похвастаться далеко не каждый десктоп или ноутбук. При этом весь КПК собран в компактном корпусе весом менее 200 грамм, а энергопотребление, как правило, не превышает 1 Вт, что позволяет проработать устройству 7-10 часов от одного заряда аккумулятора. А цены на такие девайсы опустились ниже $600. Все это вывело уровень мобильности и удобства работы на недоступную ранее высоту.

Но возникает резонный вопрос - насколько же эти машинки реально быстры, как соотносится их скорость работы и скорость обычных х86 совместимых машин. Не поспешили ли некоторые журналисты с утверждениями, что современный КПК может полностью заменить ноутбук? Может ли КПК посоревноваться с х86-и машинами в плане быстродействия? Эта статья попробует пролить свет на данный вопрос. Собственно, то, что х86 процессора будут производительнее, ясно и так, но хотелось бы получить некоторые количественные характеристики. На сколько производительнее? В 2 раза, в 10, в 100?

Для ответа на этот вопрос, вместо теоретического анализа процессорных архитектур, воспользуемся тестовой программой - ведь нас интересуют прежде всего практические результаты. Так как процессорные архитектуры Intel StrongARM и Intel x86 несовместимы в плане бинарников, придется прибегнуть к некоторым допущениям. Так же, для простоты, ограничимся только сравнением вычислительной мощности процессоров, что, правда, неизбежно затронет и скорость подсистемы памяти. Итак, для данного сравнения я написал специальное тестовое приложение, которое выполняет различные вычисления, и, соответственно, замеряет время расчетов. Эту программу вместе с исходниками вы можете скачать здесь. Так что, при желании, можно проверить мои расчеты, модифицировать тесты и убедиться, что в программе нет "заточек" :-) Для платформы х86 программу нужно компилировать в MS Visual C++ 6.0, а для PocketPC - в MS eMbedded Visual C++ 4.0 Sp4. Так как мы сравниваем аппаратные платформы, а не компиляторы (даже не смотря на то, что оба компилятора от одного производителя и достаточно похожи), в обоих случаях в настройках проекта я отключал любую оптимизацию. Я долго думал над этим моментом, но так на мой взгляд правильнее, хотя этим мы ставим платформу PXA27X в менее выгодное положение, ведь это более новая RISC архитектура и, в отличии от x86, в ней анахронизмов и кривостей намного меньше, и соответственно возможностей для оптимизации больше (это подтвердили и мои пробные тесты). В любом случае, естественно, полностью эквивалентного кода получитьcя не может хотя бы потому, что у этих процессоров разная архитектура, разное количество регистров, не идентичный набор машинных команд и т.д. Хорошо хоть, что они оба 32-х разрядные. Вообще все мои вычисления достаточно приблизительные и оценочные, я ведь не использую многих возможностей архитектур, например Wireless MMX, MMX, SSE1-SSE3 и некоторые другие. С другой стороны, данные расширенные команды нужны только для специфических задач. В моих же задачах их эффективно использовать не удалось бы. Все-таки быстрее простого регистра общего назначения для работы с 32-х битными числами ничего нет.

Пара слов о процессорах семейства Intel PXA27X. Линейка состоит из 3-х процессоров: PXA270 - отдельный (дискретный) процессор, PXA271 - процессор вместе с 32MB Flash и 32MB низковольтной SDRAM, PXA272 - процессор вместе с 64 MB Flash. Частота внешней шины 104МГц. Внутренняя частота получается с помощью целого коэффицента. При отсутствии нагрузки, процессор может понижать свою частоту с шагом в 104МГц, путем уменьшения коэфф. умножения вплоть до 1. Максимальная частота процессоров семейства PXA27X - 624МГц (коэфф. умножения 6); минимальная - 312 (коэфф. 3)

Мой тестовый стенд состоит из следующих машин:

  1. НР iPAQ hx4700 (процессор Intel XScale PXA270 624МГц);
  2. Dell Axim x50v (процессор Intel XScale PXA270 624 МГц);
  3. Dell Axim x30(процессор Intel XScale PXA270 312 МГц);
  4. Toshiba E755 (процессор Intel XScale PXA255 400МГц);
  5. PentiumIII 866 (чипсет i815G);
  6. Ноутбук IBM ThinkPad 390X (процессор Intel PentiumIII 450);
  7. PentiumII 350 (чипсет 440BX);
  8. Celeron 1700 (чипсет i845P).

Я намеренно привожу не полные характеристики компьютеров - только те, от которых зависит результат. Как вы увидите дальше, единицы процентов не играют никакой роли и не влияют на общий результат. На время проведения тестов КПК, если у них есть такая штатная возможность, переводились в режим максимальной производительности. Каждый тест запускался по 3 раза, запоминался самый лучший результат. Так же прошу заметить, что в тестовом стенде участвуют одни из самых быстрых на данный момент КПК и достаточно устаревшие "писишки". С одной стороны, это неправильно, с другой - подчеркнет результат. Кроме того, было бы глупо сравнивать процессора, которые производитель позиционирует как решения для высокопроизводительных рабочих станций и серверов с мобильными процессорами. Хоть PXA270 и топ-процессора в линейке, но по цене они дешевле самых бюджетных процессоров архитектуры x86. Если бы мы тестировали производительность встроенной графики интегрированных чипсетов, то логичнее было бы сравнивать их с бюджетными видеокартами, а не с топовыми за $500. Если же вы не согласны с моим выбором тестового стенда, то никто вам не мешает запустить этот тест на вашей личной системе и сравнить результаты - моя методика полностью описана и максимально открыта. И вот еще один довод - это только на первый взгляд х86 и StrongARM не конкурируют между собой. На самом деле, StrongARM используется, кроме КПК, еще во множестве других устройств - в различной встраиваемой технике, банкоматах, игровых автоматах, терминалах, планшетах, промышленном оборудовании, а по слухам, даже в космических аппаратах. Для этой платформы есть хорошие операционные системы и замечательные средства разработки. PXA используются там, где нужны экономичные, дешевые и компактные решения при умеренной производительности. И именно в этой области PXA конкурирует с х86, причем не с Xeon-ами и P4XE, а скорее с VIA C3, С7 и Celeron-ами. Посмотрите, какие возможности PXA предоставляет разработчикам устройств - при использовании процессора PXA271 не нужно дополнительно думать, ни о жестком диске, ни об оперативной памяти - все встроено, а значит дешево и надежно. Так же Intel, в соответствии со своей новой идеологией, продавать не процессора, а готовые платформы, предлагает совместно с процессорами PXA семейство мультимедийных акселераторов 2700G, предназначенных для обеспечения аппаратного ускорения при отображении двумерной и трехмерной графики (интерфейсы OpenGL и JSR), воспроизведения видео с качеством DVD (форматы MPEG2, MPEG4, WMV), поддержки двух дисплеев. Конечно жаль, что на момент проведения тестов у нас не оказалось машин на процессорах от VIA. Ведь именно их сейчас все чаще используют во встраиваемой технике. Но, зная результаты для перечисленных выше х86 машин, можно приблизительно прикинуть результаты и для процессоров VIA. Кроме того, я надеюсь еще вернуться к данной теме. Как оказалось, в одной статье невозможно затронуть все аспекты. "За бортом" остались такие интересные мобильные процессора, как TI OMAP, Samsung S3C, PentiumM и т.д.

Все вычисления можно разделить на вычисления с вещественными(т.е дробными) числами и вычисления с целыми числами. Для представления вещественных чисел я выбрал тип double (8 байт), а для целых - DWORD (4 байта). Перейдем, наконец, собственно к тестам. Начнем с вычислениями над числами с плавающей точкой.

Итак, первая задача - вычисления числа PI с помощью ряда 1 - (1/3) + (1/5) - (1/7) + ... = (PI/4). Замечу, что все вычисления в этой программе проводятся не ради результата, а исключительно ради самих вычислений. Так что, не обращайте внимание на примитивизм используемых математических методов и упрощения.


Компьютер
Время выполнения (сек)
HP iPAQ hx4700
52,13
Dell x50
53,49
Dell x30
104,83
Toshiba E755
81,51
PentiumIII 866
1,12
ThinkPad 390X
2,19
PentiumII 350
3,04
Celeron 1700
0,66

Вторая задача - вычисление интеграла функции Sin(x) при 0 <= x <= PI методом прямоугольников.


Компьютер
Время выполнения (сек)
HP iPAQ hx4700
122,76
Dell x50
126,05
Dell x30
247,04
Toshiba E755
192,00
PentiumIII 866
1,31
ThinkPad 390X
2,57
PentiumII 350
3,41
Celeron 1700
1,32

Что мы видим? Отставание платформы PXA27X на вычислениях с плавающей точкой составляет десятки раз! Впрочем, этот результат объясняется очень просто. У процессора PXA27X нет ни математического сопроцессора (FPU - Floating Point Unit), ни других средств работы с вещественными числами. Все вычисления компилятор свел к цельночисельным, в этом можно легко убедиться, если дизассемблировать код. К слову, в отсутствии мат.сопроцессора нет большой проблемы. Числа с плавающей точкой используются только в специфических задачах, которые навряд ли кто-то выполняет на КПК. Так что, отказ от мат.сопроцессора в процессоре PXA27X это скорее правильное решение инженеров Intel. За счет этого удалось уменьшить площадь ядра, энергопотребление и цену. Есть мнение, что вычисления с дробными числами нужны в 3D играх. Это так, но эти вычисления реализованы таким образом, что FPU не задействован - он слишком медленный. Пытаться использовать мат.сопроцессор в играх, где нужны значительные объёмы вычислений - безумие. В старых играх для представления дробных чисел использовались собственные типы данных с фиксированным положением точки, работа с которыми сводилась к цельночисельным операциям, ведь в играх скорость важнее точности, да и диапазон значений известен заранее. А для получения значений различных математических функций, например, тригонометрических, использовались (да и сейчас используются) заранее расчитанные таблицы. В современных же играх, для вычислений с дробными числами используются наборы команд SSE, SSE2 или средства видеокарты. Мат. сопроцессор нужен для математических вычислений, когда важна точность расчетов, время же расчетов вторично. Для этих задач технологии SSE/SSE2 подходят плохо - у них недостаточная точность представления чисел (SSE - до 32-х битов, SSE2 - до 64-х, в то время как у FPU до 80-ти.) и к тому же они не умеют вычислять тригонометрические и логарифмические функции.

Теперь перейдем к тестам с целыми числами. При этом, тесты обрабатывающие массивы данных, я буду проводить для разных размеров массивов. Ведь, как известно, скорость выполнения таких задач зависит не только от вычислительной мощности процессора, но в не меньшей мере и от размера и скорости кэша, скорости памяти, эффективности реализации всей подсистемы памяти в целом. У процессора PXA27X кэш состоит за 3-х частей: 32Кb - кэш инструкций (i-cache), 32Kb - кэш данных второго уровня (d-cache), 2Kb - кэш данных первого уровня (Mini-data cache); имеется 13 32-х битных регистров общего назначения (R0-R12), причем каждая команда машинного кода занимает ровно 4 байта (в режиме "ARM instruction set" или ровно 2 в устаревшем и почти неиспользуемом режиме "Thumb"). Сравните с убогими четырьмя регистрами EAX, EBX, ECX, EDX процессоров х86 (ладно, пускай еще ESI, EDI, EBP) и длинной команды от 1 байта до 7 и более (понятно, почему в х86 так сложно организовать оптимизацию, распараллеливание выполнения, алгоритмы предсказания переходов).

Первая задача - возведение в квадрат единичной матрицы. Что бы можно было точнее измерить время для небольших матриц, тест выполняет расчеты по несколько раз (детали реализации можно посмотреть в исходниках). Буду рассматривать 3 размерности матрицы: 700х700 (размер используемой памяти ~1,87Мб); 70х70 (~20Кб); 10х10 (400б).


Компьютер
Время (Big matrix)
Время (Med. matrix)
Время (Small matrix)
HP iPAQ hx4700
198,57
29,20
9,20
Dell x50
207,84
30,02
9,43
Dell x30
250,22
58,77
18,53
Toshiba E755
264,95
45,60
14,36
PentiumIII 866
13,37
6,72
2,28
ThinkPad 390X
22,38
13,17
4,49
PentiumII 350
34,32
18,57
5,93
Celeron 1700
8,79
4,03
1,50

Следующая задача - сортировка псевдослучайной последовательности чисел пузырьковым методом. Как и в прошлой задаче, проведу операцию для последовательностей разной длины: 50000 элементов (~200Кб); 5000 (~20Кб); 100 (~0,5Кб).


Компьютер
Время (Big sort)
Время (Med. sort)
Время (Small sort)
HP iPAQ hx4700
106,49
26,43
12,72
Dell x50
110,65
27,16
13,06
Dell x30
156,40
53,09
25,60
Toshiba E755
143,25
41,27
19,85
PentiumIII 866
12,23
5,87
3,31
ThinkPad 390X
24,04
11,52
6,49
PentiumII 350
39,38
15,89
8,58
Celeron 1700
6,12
3,02
2,12

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


Компьютер
Время выполнения (сек)
HP iPAQ hx4700
11,31
Dell x50
11,59
Dell x30
22,72
Toshiba E755
18,25
PentiumIII 866
5,04
ThinkPad 390X
9,88
PentiumII 350
13,06
Celeron 1700
2,54

Ну наконец-то нашелся хоть один тест, в котором самые мощные и дорогие КПК "сделали" старенький десктоп!

Ну и для размышлений приведу таблицу с "нормированными" значениями. То есть значения буду рассчитывать по формуле v = vt*(h/1000), где vt - время полученное в тесте, h - частота процессора. Таким образом, такое значение показывала бы данная система на частоте 1ГГц, при условии линейной зависимости производительности от частоты.


Компьютер
PI
Integr
M.Big
M.Med
M.Sml
S.Big
S.Med
S.Sml
Prime
iPAQ hx4700
32,53
76,60
123,91
18,22
5,74
66,45
16,49
7,94
7,06
Dell x50
33,38
78,66
129,69
18,73
5,88
69,05
16,95
8,15
7,23
Dell x30
32,71
77,08
78,07
18,34
5,78
48,80
16,56
7,99
7,09
Toshiba E755
32,60
76,08
105,98
18,24
5,74
57,30
16,51
7,94
7,30
PIII 866
0,97
1,13
11,58
5,82
1,97
10.59
5,08
2,87
4,36
ThinkPad390X
0,99
1,16
10,07
5,93
2,02
10,82
5,18
2,92
4,45
PII 350
1,06
1,19
12,01
6,50
2,08
13,78
5,56
3,00
4,57
Celeron1700
1,12
2,2
14,94
6,85
2,55
10,40
5,13
3,60
4,32

Из этой таблицы хорошо видно - чем меньше объем обрабатываемых данных, тем быстрее работает PXA27X, тем больше он догоняет x86. Это говорит об эффективности реализации ядра. Но у него не слишком быстрая шина памяти, да и кэша маловато. Так же стоит отметить следующий момент: когда все данные помещаются в кэш, процессора Xscale работают со скоростью пропорциональной частоте. Причем ядро PXA255 показывает такую же производительность, как и PXA27X. Но как только программа начинает использовать данные, которые не умещаются в кэши, картина сильно меняется: чем меньше коэффициент умножения процессора, тем эффективнее он работает. Так что и на этих процессорах нет смысла сильно увеличивать коэффициент умножения - для дальнейшего роста производительности нужно делать более быструю шину (и/или увеличивать кэш данных).

Теперь настало время сделать выводы. Процессора PXA27X работают значительно медленнее процессоров х86, даже работающих на меньшей частоте. Причем отставание составляет разы. Жаль, что я не смог провести тест на системах с процессорами Pentium, Pentium MMX - возможно удалось бы найти систему, которая наиболее соответствует по скорости процессорам серии PAX27X. Получается, что либо PXA27X слишком медленный, либо просто x86-е процессора слишком быстрые. Но зато они потребляют на порядки больше электричества. А ведь именно экономичность - одна из важнейших характеристик любого мобильного устройства. Кому нужен был бы КПК, если бы он мог бы работать от одной зарядки всего 2 часа? Если не считать модуля Wi-Fi, именно процессор самый большой потребитель энергии в КПК - во всяком случае, об этом говорят тесты на продолжительность работы от одного заряда аккумулятора - при полной нагрузке на процессор время работы уменьшается в разы, относительно минимальной нагрузки. Так что именно энергопотребление - основной ограничитель производительности. Ведь даже Крейг Баррет (председатель совета директоров Intel) заявлял, что нет никаких технических сложностей в изготовлении процессора для КПК с частотой 1 и даже 2ГГц, но потреблять электричества такой процессор будет столько, что никакой аккумулятор его долго не прокормит. К тому же, как известно, вся потребляемая электрическая мощность процессора преобразуется в тепло, а использовать большие куллера и радиаторы на КПК не представляется возможным. Архитектура же x86 наоборот, нацелена на бескомпромиссное увеличение производительности любой ценой. И эта цена действительно заплачена в виде огромного тепловыделения, превышающего на топ-моделях процессоров 100Вт и большущей площади ядра! В то время, как у процессоров PXA27X мощность не превышает 0.5Вт (для сравнения, по приблизительным оценкам, мощность мозга взрослого человека равна 5-8Вт). Про разницу в цене я молчу (PXA27X стоит меньше $30). Но вот если бы мы рассматривали соотношение производительность на ватт, то архитектура Intel StrongARM оказалась бы безусловным лидером. Вообще PXA27X архитектурно намного более грамотный процессор. Ведь архитектура Х86 несет в себе тяжким грузом необходимость бинарной совместимости со всем старым кодом, написанным с 70-х годов. Большая часть ядра (если не учитывать кэш) занята не исполнением кода, а транслированием из одной системы команд в другую и разными вспомогательными операциями. Даже такой маркетинговый прием как псевдо-64-х разрядность не поможет. PXA27X же первоначально разрабатывался как 32-х битный процессор на основе эффективной Superpipelined RISC технологии с 7-8 стадийным конвеером. При сравнении процессоров не стоит зацикливаться только на производительности - она не всем важна. Для меня, например, самое важное качество в компьютере - надежность. А для многих - мобильность, не зря ведь продажи ноутбуков почти догнали продажи десктопов, несмотря на более высокую цену и более низкую производительность. Фирма Intel не была бы лидером, если бы останавливалась на достигнутом. По недавним сообщениям, Intel-у удалось разработать новый 65нм техпроцесс со сверхнизким энергопотреблением, в котором токи утечки удалось снизить на несколько порядков. Так что, в ближайшие пару лет нас ожидают интересные сверхэкономичные процессорные новинки.

Следующая страница →
 
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥
Apple хочет самостоятельно защищать свои интересы в антимонопольном расследовании против Google 2 ч.
Гладко было на бумаге: забагованное ПО AMD не позволяет раскрыть потенциал ускорителей Instinct MI300X 8 ч.
Netflix подал в суд на Broadcom, заявив, что VMware нарушает его патенты в области виртуализации 9 ч.
На Nintendo Switch выйдет подражатель Black Myth: Wukong, который позиционируется как «одна из важнейших игр» для консоли 10 ч.
Датамайнеры нашли в файлах Marvel Rivals следы лутбоксов — NetEase прокомментировала ситуацию 11 ч.
Надёжный инсайдер раскрыл, когда в Game Pass добавят Call of Duty: World at War и Singularity 12 ч.
Лавкрафтианские ужасы на море: Epic Games Store устроил раздачу рыболовного хоррора Dredge, но не для российских игроков 13 ч.
VK запустила инициативу OpenVK для публикации ПО с открытым кодом 14 ч.
CD Projekt Red объяснила, почему оставила мужскую версию Ви за бортом кроссовера Fortnite и Cyberpunk 2077 15 ч.
Открытое ПО превратилось в многомиллиардную индустрию 16 ч.