Felidarium №2. Имя вычислительное

Как это было

Каждый раз при написании обзора очередной микроархитектуры надо упомянуть и о модельном ряде. А модели ныне обозначаются особыми цифро-буквенными именами. И вот в них-то за последние несколько лет произошёл полный бардак. Ранее-то всё было просто: в 80-е годы собственных (т. е. коммерческих) имён у процессоров не было, а только обозначение микросхемы. Единственный изменяемый параметр — частота, кодируемая либо буквой, либо цифрой в МГц (округлённо) после дефиса (например, i80286-12 работал на 12,5 МГц). Экономные ЦП обозначались буквой C после «80», потому что были сделаны на основе КМОП-технологии со статическим ядром, а не с динамической n-МОП-логикой. Редкие «военно-промышленные» версии с расширенным диапазоном выдерживаемых температур получали букву M до номера.

Начиная с 386-го ЦП стали делиться сильнее: появились младшие и старшие серии, обозначаемые SX и DX после числа, энергоэффективные CX и высокоинтегрированные SL и EX. Это у Intel; а в семействе Am386 было уже 9 версий — и всё это без учёта частот. Желающих вслед за Intel выпускать ЦП с цифрой 486 в названии было ещё больше — AMD, Cyrix, IBM, ST microelectronics, Texas Instruments, UMC…

К этому моменту подходила к концу долгая судебная тяжба Intel против AMD из-за предполагаемого нарушения лицензии на выпуск ЦП архитектуры x86 (в 1994 г. она завершилась победой «зелёных»). Возможно, Intel решила, что один из способов если не защититься от дальнейшего копирования (тем более, при таком количестве желающих), то хотя бы отличиться от массы клонов — вместо очередного числа с цифрами «86» дать ЦП имя. Так появились первые «Пентиумы». С тех пор каждый x86-ЦП имеет коммерческое и инженерное названия. Например A80502133 — это Pentium 133. Ситуация со сложностью обозначений тогда сильно упростилась тем, что, как и первые x86-ЦП, Pentium поначалу отличались лишь частотой — не считая самых первых версий с питанием на 5 В, малопопулярных из-за умопомрачительного выделения энергии: аж 13–17 Вт! Нет, это не из параллельной вселенной, а всего-то из 1993 г. Сегодня процессор с таким TDP считается ультраэкономичным и сверхмобильным.

Потом снова всё стало усложняться: появились версии с поддержкой MMX. Потом Pentium приобрёл римскую двойку, а вслед вышли первые Celeron и Xeon. Остальные (изрядно поредевшие числом) игроки упражнялись на тему «как бы объяснить покупателю, что буквы PR обозначают вовсе не Пентиум-рейтинг, а что-то другое, но смысл у них именно этот»: например, AMD K5-PR133 работал на частоте 100 МГц, но, по мнению производителя, был на треть быстрее равночастотного Pentium. У IBM и Cyrix было почти так же: 6x86-P150+ на 120 МГц якобы быстрее Pentium 150.

Однако, уже тогда появился ещё один параметр регулирования — объём внутрикорпусного (но пока ещё не накристального) кэша L2, который для Pentium Pro мог быть 256, 512 или 1024 КБ, а для первых Xeon — тоже 3 варианта, но вдвое больших объёмов. Поначалу это не входило даже в инженерное имя и просто указывалось цифрой рядом. Потом к цифре частоты стали добавляться всякие буквы: A (только для нескольких моделей Celeron с частотами, совпадавшими у смежных линеек), B (Pentium III с шиной FSB на 133 МГц вместо 100) и E (Pentium III на 180 нм техпроцессе — для моделей, имевших те же частоты, что и у старых версий на 250 нм). А вот и первые признаки Большого Бардака:

  • Pentium III 600 изготовлен по 250 нм техпроцессу (кристалл Katmai) и имеет L2 на 512 КБ, работающий на половинной частоте.
  • Pentium III 600E изготовлен по 180 нм техпроцессу (Coppermine) и имеет L2 на 256 КБ, работающий на полной частоте.
  • Pentium III 650 и все следующие с частотами, кратными 50 — такие же Coppermine, но почему-то без «E».
  • Pentium III 667, 733, 866, 933 и 1133 — Coppermine, но с FSB на 133 МГц, и без «B».
  • Для кристалла Tualatin (Pentium III на 130 нм) буквы B и E убрали, зато ввели букву S, обозначавшую (если не помните, ни за что не догадаетесь!) снова удвоенный до 512 КБ кэш и возможность работы в 2-процессорных платах.

Дальше, как у Кэрролла, становилось всё чудесатее и чудесатее — и это не смотря на то, что число активных производителей x86-ЦП снизилось до минимума, обеспечивающего конкуренцию. Противостояние AMD Athlon и Intel Pentium 4 (уже не римская…) показало, что «не всё то скорость, что мегагерцы». Потом стало ещё сложней с многоядерными ЦП против одноядерных. Потом явление Hyper-Threading — и т. д. До чего мы дожили теперь, кратко напомнят главы о наименовании моделей в обзорах Intel Sandy Bridge и AMD Llano. Как это должно быть

Символ(ы)Значения
СловоТорговое имя
Дефис
(Число)Поколение (если >1)
(Буква)Семейство (если их несколько)
Пробел
БукваИндекс TDP (по таблице)
ЧислоЧисло логических x86-ядер
2 цифрыИндекс x86-скорости
(Буква)Параметры спецядер (по таблице)
(Знак «+»)Разблокированные множители
Пример: Ohlamon-2M U671G+

Представим себя на месте маркетологов AMD или Intel. Да, часть аудитории сразу поморщится, но ничего, у них работа такая… Нам надо сделать новую систему именования процессоров, но такую, чтобы (в отличие от предыдущих) она была ясна, непротиворечива и не имела массы исключений. Предлагаемая схема кратко описана в таблице (в левом столбце в скобках указаны необязательные элементы). Рассмотрим всё детально.

Торговое имя (слово)

Торговое имя нужно для узнаваемости. Поэтому кажется странным отказ AMD в 2011 г. от уже родных для кого-то Атлонов и Феномов (Turion так и не прижился, да и Sempron не очень популярен), оставив только серверный Opteron. А что делать нам? Вначале вспомним, что основные характеристики любого ЦП сегодня — скорость, потребление и цена. Причём, всё как в известном анекдоте — выберете любые два пункта и покупайте с ущербом для третьего. Есть, правда, ещё и возможность работы в многопроцессорных конфигурациях, но её мы оставим только для серверных моделей — каких-нибудь Oxeron. Остальных расставим так (имена также условные):

  • Positron — очень медленные, очень экономные (< 20 Вт), дешёвые или умеренные;
  • Zelepron — просто медленные, экономные или средние (20–65 Вт), дешёвые;
  • Pentlon — среднескоростные, экономные или средние (20–65 Вт), умеренно стоящие;
  • Corenom — быстрые, любые от экономных до горячих (20–130 Вт), дорогие.

У моделей со специально заточенными под конкретную рыночную нишу архитектурами (типа AMD Bobcat, Intel Atom и VIA Nano) двум параметрам из трёх предшествует наречие «очень», чем они и отличаются. Остальные три класса описывают каждый параметр в три градации: мало-средне-много. И поскольку имя мы выбираем коммерческое, то обозначим им цену (дёшево-средне-дорого), а прочее будет меняться уже в буквах и цифрах.

Поколение (число)

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

Семейство (буква)

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

Индекс TDP (буква)

Этот пункт вышел вперёд потому, что будь он указан где-то сзади, то слился бы с другим буквенным параметром, что читалось бы хуже. Цифры или числа лучше перемежать с буквами. Но почему потребление и выделение энергии вообще надо обозначать буквой? А потому, что, в отличие от значений TDP для любых других микросхем (например, чипсетов), для ЦП они округляются до ближайшего большего значения, выбранного из некоего стандартного ряда (см. полное определение в нашей энциклопедии). Но т. к. в этом ряду больше 10 значений, а сами они могут содержать запятую и до трёх цифр, то прописывать это числом в коде модели глупо. Однако не менее глупыми кажутся нынешние коды TDP, где модели без букв являются «средними», а с ними — менее или (чаще) более экономными. При этом без специальной или общей таблицы параметров узнать точные значения всё равно не получится, а таблицы эти (и сами буквы) часто разные для новой линейки и/или поколения.

БуквыЗначения TDP
A, B, C11,31,6
D, E, F22,53,2
G, H, J456,5
K, L, M81013
N, P, Q162025
R, S, T324050
U, V, W6580100
X, Y, Z130160200

Предлагается обозначение TDP сделать обязательным, а таблицу — общей. Ясно, что покрывать она должна все возможные значения, но 24 букв хватит. Исключены только I и O, чтобы их не перепутали с цифрами 1 и 0. В минимум диапазона не укладывается лишь давно устаревший Atom Z500, потреблявший 0,65 Вт при 800 МГц. Надо полагать, что производительность у него была медленнее конкурентов с архитектурой ARM, так что с момента его выпуска в апреле 2008 г. больше ничего с субваттовым потреблением от Intel не появилось. Более свежие Atom Z 600-й серии имеют минимум в 1,3 Вт, а AMD Bobcat и все ЦП VIA не опускаются ниже 5 Вт. Что касается максимума, то не исключено, что AMD, учитывая высокие целевые частоты архитектуры Bulldozer и отработанную технологию MCM (монтаж нескольких кристаллов в корпус), может выпустить сверхгорячие серверные ЦП, рассчитанные на водяное охлаждение — как это уже давно делает IBM со своими ЦП POWER.

Цифры в таблице вычислены просто: каждая следующая — в 21⁄3 раз больше предыдущей, округлённая до ближайшего круглого значения. Очевидно, что если расположить буквы строками по 3, то в столбцах цифры будут удваиваться. Буквы также можно объединить в группы по 10, при этом 11-я окажется в 10 раз больше 1-й, 21-я — в 10 раз больше 11-й, и т. д. Полная идиллия.

Число логических x86-ядер

Этот параметр поставим как главный указатель скорости. Однако надо решить два вопроса: во-первых, что делать с многопоточностью типа Hyper-Threading? У Intel она устроена так, что физически почти ничего не добавляет на чип. При этом для сложного ядра типа Sandy Bridge она в среднем даёт 10–20 % ускорения, а для простого типа Atom — 30–60, что уже сравнимо с добавкой физического ядра. Зато по версии AMD 2-ядерный модуль имеет немало блоков, монопольно выделенных потокам, а потому ускорение от второго может достигать и 80% (в теории — даже 100). Учитывая, что разнообразие таких схем будет только расти, не остаётся ничего другого, как просто указать число ядер с точки зрения ОС и ПО, т. к. именно способность к параллелизации больше всего определяет, насколько именно ускорится программа.

Впрочем, у такого подхода есть существенный минус: рано или поздно кто-то из производителей станет выпускать x86-ЦП с более чем двумя потоками на ядро или модуль (среди ЦП других архитектур такие уже есть). И разница между, скажем, двумя и четырьмя потоками будет в большинстве случаев едва заметной — а вот цифра в модели окажется вдвое большей. Решением, похоже, является указание числа потоков на ядро в семействе: например, могут быть обычные Пентлоны и «гиперпоточные» Pentlon-H (-2H, -3H…). А вот для схемы от AMD это не подойдёт — с другой стороны, рост числа ядер в модуле свыше двух может вообще не произойти.

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

Индекс x86-скорости (2 цифры)

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

  1. собрать несколько десятков программ, типичных для данной рыночной ниши и класса производительности (определяемого числом ядер);
  2. замерить в них скорость данного ЦП, используя стандартную методику с типичной конфигурацией (опять же, только для этих моделей);
  3. результат привести к условным баллам, за основу взяв «самый средний» из своих же ЦП.

Ничего не напоминает? Это же наша родная методика, самая честная и точная :) Главное отличие тут в том, что т. к. для компактности у нас лишь две цифры, то из итоговых баллов вычтем 50. В результате базовая модель семейства получит 50 «попугаев»; та, что на 10% медленнее — 40, а если на 15% быстрее — то 65. Получаем диапазон 50–149 % от опорной модели. Интересно, что она сама физически вообще может отсутствовать, а данные для неё могут быть получены симуляцией или «торможением» старшей модели — главное, чтобы она оказалась посреди остальных по скорости. На деле, если посмотреть на любое наше тестирование, где принимают участие много разных ЦП одной архитектуры, то окажется, что разница между слабейшим и сильнейшим процессорами среди одинаковых по числу и виду ядер не превосходит и двух раз.

Обновление методики надо производить одновременно с выпуском новой линейки ЦП, так что набор тестов и конфигурация всегда будут отставать от актуальных максимум на год. Такой подход позволит покупателям адекватно оценивать и сравнивать процессоры. Известно, что разница в скорости менее 6–8 % психологически неощутима, так что покупая ЦП с частотой на 5% больше прошлого вы точно ничего не почувствуете. А уж если ориентироваться по безликим ныне номерам моделей, то с ними даже не всегда можно сказать, что цифра больше данной означает ЦП быстрее данного. С предлагаемой методикой всё значительно наглядней, а чтобы нас (фирму) не обвинили в подтасовках — раскроем описания тестов, чтобы их мог проверить каждый. Кредит доверия станет доходом с продаж. (С трибуны маркетологов слышится сдавленное «бууу»…)

Параметры спецядер (буква)

БукваЗначение
нетнет ГП и блока UVD
A160:8:4, 400 МГц
B160:8:4, 443 МГц
C160:8:4, 600 МГц
E240:12:4, 444 МГц
F240:12:4, 593 МГц
G320:16:8, 400 МГц
H320:16:8, 443 МГц
L400:20:8, 444 МГц
M400:20:8, 600 МГц

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

Пример такой таблицы для AMD Llano показан рядом: буквы объединены в тройки (как в таблице для TDP), в которых 1-я означает частоту 400 МГц, 2-я — 443 или 444, а 3-я — 593 или 600. Номер тройки кодирует прочие параметры ГП (X:Y:Z означает число ФУ, TMU и ROP). Не беда, что комбинации для букв D, J и K не выпускаются или даже не планируются (потому и не указаны) — главное, что схема непротиворечивая и без исключений.

Разблокированные множители (знак «+»)

Тут и объяснять нечего: если есть — ставим плюс.

Итого

Старое имяНовое имя
Z-01Positron J250D
Atom D2700Positron-2H L253C
Sempron X2 198Zelepron-3 U247
Celeron G440Zelepron-6 R150J
A6-3410MXPentlon-4 S443G
Pentium B960Pentlon-7 R265J
Phenom II X6 1100TCorenom-3 X656+
Core i7-3960XCorenom-7S X651+

Однажды введя такую систему, её можно использовать более 10 лет для нескольких микроархитектур, десятков их модификаций и сотен моделей — и всё это с минимумом исключений или даже вообще без них. Преимущества от наглядности и понятности будут не только у покупателей, но и у самого производителя, которому будет проще определять, чего ещё не хватает пользователям, учитывая всё уже выпускаемое. Странно только, что такие идеи не приходят в голову людям, по штату занимающимся наименованием товаров — неужели среди них нет ни одного технаря?.. За сим наш плодотворный сеанс самовнушения «если б маркетологом был я» можно считать успешно законченным. Как-нибудь в следующий раз попробуем представить себя на месте других, не менее важных процессорных профессий :)




23 декабря 2011 Г.

Felidarium 2.

Felidarium 2.

. - . - . - : 80- (. . ) , . — , , () (, i80286-12 12,5 ). C «80», - , n--. «-» M .

386- : , SX DX , CX SL EX. Intel; Am386 9 — . Intel 486 — AMD, Cyrix, IBM, ST microelectronics, Texas Instruments, UMC…

Intel AMD - x86 ( 1994 . «»). , Intel , ( , ), — «86» . «». x86- . A80502133 — Pentium 133. , , x86-, Pentium — 5 , - : 13–17 ! , , - 1993 . TDP .

: MMX. Pentium , Celeron Xeon. ( ) « , PR -, - , »: , AMD K5-PR133 100 , , , Pentium. IBM Cyrix : 6x86-P150+ 120 Pentium 150.

, — ( ) L2, Pentium Pro 256, 512 1024 , Xeon — 3 , . . : A ( Celeron , ), B (Pentium III FSB 133 100) E (Pentium III 180 — , , 250 ). :

  • Pentium III 600 250 ( Katmai) L2 512 , .
  • Pentium III 600E 180 (Coppermine) L2 256 , .
  • Pentium III 650 , 50 — Coppermine, - «E».
  • Pentium III 667, 733, 866, 933 1133 — Coppermine, FSB 133 , «B».
  • Tualatin (Pentium III 130 ) B E , S, ( , !) 512 2- .

, , — , x86- , . AMD Athlon Intel Pentium 4 ( …) , « , ». . Hyper-Threading — . . , Intel Sandy Bridge AMD Llano.

()
() ( >1)
() ( )
TDP ( )
x86-
2 x86-
() ( )
( «+»)
: Ohlamon-2M U671G+

AMD Intel. , , , … , , ( ) , . ( ). .

()

. AMD 2011 . - (Turion , Sempron ), Opteron. ? , — , . , — . , , , — - Oxeron. ( ):

  • Positron — , (< 20 ), ;
  • Zelepron — , (20–65 ), ;
  • Pentlon — , (20–65 ), ;
  • Corenom — , (20–130 ), .

( AMD Bobcat, Intel Atom VIA Nano) «», . : --. , (--), .

()

: ( ). , , x86- ( AMD Llano), - . — , .

()

, — . , «» , , , .

TDP ()

, - , , . . ? , , TDP (, ), , (. ). . . 10 , , . TDP, «», — () . , ( ) / .

TDP
A, B, C11,31,6
D, E, F22,53,2
G, H, J456,5
K, L, M81013
N, P, Q162025
R, S, T324050
U, V, W6580100
X, Y, Z130160200

TDP , — . , , 24 . I O, 1 0. Atom Z500, 0,65 800 . , ARM, 2008 . Intel . Atom Z 600- 1,3 , AMD Bobcat VIA 5 . , , AMD, Bulldozer MCM ( ), , — IBM POWER.

: — 21⁄3 , . , 3, . 10, 11- 10 1-, 21- — 10 11-, . . .

x86-

. : -, Hyper-Threading? Intel , . Sandy Bridge 10–20 % , Atom — 30–60, . AMD 2- , , 80% ( — 100). , , , , . . , .

, : - x86- ( ). , , — . , , : , «» Pentlon-H (-2H, -3H…). AMD — , .

, AMD: GPGPU, . . , — , (APU). , ( ) x86- . , , . , , , .

x86- (2 )

, , . ́ , , , ( ). , , :

  1. , ( );
  2. , ( , );
  3. , « » .

? , :) , . . , 50. 50 «»; , 10% — 40, 15% — 65. 50–149 % . , , «» — , . , , , , .

, . . , 6–8 % , 5% . , , . , () — , . . ( «»…)

()

UVD
A160:8:4, 400
B160:8:4, 443
C160:8:4, 600
E240:12:4, 444
F240:12:4, 593
G320:16:8, 400
H320:16:8, 443
L400:20:8, 444
M400:20:8, 600

, . : (, — ), ( x86- ). . . , . ( - , — .) , , , , , .

AMD Llano : ( TDP), 1- 400 , 2- — 443 444, 3- — 593 600. (X:Y:Z , TMU ROP). , D, J K ( ) — , .

( «+»)

: — .

Z-01Positron J250D
Atom D2700Positron-2H L253C
Sempron X2 198Zelepron-3 U247
Celeron G440Zelepron-6 R150J
A6-3410MXPentlon-4 S443G
Pentium B960Pentlon-7 R265J
Phenom II X6 1100TCorenom-3 X656+
Core i7-3960XCorenom-7S X651+

, 10 , — . , , , , . , , — ?.. « » . - , :)