15 лет назад 27 июля 2009 в 13:14 849

Как известно, пока одна обезьяна не взяла в руки палку, остальные не начали работать – это пример одной из первейших идей оптимизаций труда в истории приматов (смайл). И хотя сегодня все основные параметры этой самой оптимизации измеряются всего лишь нанометрами, эти нанометры существенно меняют ход истории.
Если посмотреть, к чему привел нас прогресс, то есть заглянуть в компьютеры, то можно увидеть, как пышущие жаром мощные процессоры поигрывают целочисленными и плавающезапяточными мускулами. Эти чудовища готовы разорвать в клочья задачи, которые мы на них взвалим. Они справятся с любыми испытаниями, которые мы им подкинем. Но, если немного присмотреться, то окажется, что чаще всего вместо кусков мяса мы кидаем этим зверям жалкие объедки – почта, аська, работа с текстом и таблицами, фильмы, музыка, торренты… Неужели для этого нужны монстры, которые всегда готовы заменить обогреватель в комнате зимой и кулеры которых воют не хуже бомбардировщиков Б-52? Как бы так оптимизировать энергозатраты и сделать их адекватными задачам? Примерно такие вопросы задали себе инженеры Intel.

История одной идеи
Вот уже 40 лет товарищи из мегакорпорации резчиков кремния Intel создают камни. Вечно им не сидится на мешках с миллионами – никак не угомонятся. Всегда есть у них еще одна минутка, чтобы создать что-то новое. Хочется верить, что не только меркантильный интерес гонит их вперед, но и творческий. В любом случае, что бы ими ни двигало, нам всем это только на руку. Если настанет время, когда Intel перестанет выпускать один новый продукт за другим, это будет чернейший период в индустрии IT, ведь Intel – это не только ценный мех, тьфу, крупнейший в мире производитель процессоров, но и один из главных пионеров в своей области. Новаторство ее инженеров всегда носит законченный характер, ведь они не только думают и придумывают – они делают и доделывают, что в совокупности дает им преимущество перед многими другими компаниями, приближающими наше светлое нефильтрованное будущее (смайл).

atom

Чем же Intel заслужила такие пафосные дифирамбы? Идея баланса между производительностью, размерами, энергопотреблением и температурой компьютеров в целом и процессоров в частности уходит своими корнями еще в эпоху, когда, чтобы охладить аппараты, занимающие средних размеров спортзал, установленные в них лампы обкладывали мокрыми тряпками. Другими словами, идея ненова. Однако нова решительность подхода к ней. Первые заметные шаги в сторону компромисса между производительностью и энергопотреблением были сделаны, когда стали появляться разные версии одних и тех же ядер с урезанными количественными характеристиками. Слабые процессоры работали медленнее своих старших братьев, но и грелись меньше. Это можно назвать «идеей статического энергокомпромисса». Самый яркий пример такого подхода процветает и по сей день и даже не сменил маркетингового названия: Celeron – он и в XXI веке Celeron.
Первоначально этот компромисс был побочным эффектом главной причины появления разных версий одного и того же ядра – цены.

Цена и производительность – только за этими двумя показателями следили создатели процессоров длительное время, а тепловыделение и энергопотребление были всего лишь досадными факторами, ограничивающими возможность выжать из CPU еще немножко мощности и продать его дороже еще на полтысячи портретов Джорджа Вашингтона. Дальнейшим развитием «идеи статического энергокомпромисса» стала «идея динамического энергокомпромисса»: производители начали понимать, что незачем заставлять камень постоянно работать на всю катушку. Особенно актуально это было для ноутбуков – в них экономят последние крошки драгоценной энергии, лишь бы он прожил на батарейке на минуту дольше, а если при этом в комнате еще перестанет пахнуть палеными джинсами, когда лэптоп держат на коленях, так вообще здорово. Ради этого можно потерпеть пять лишних секунд при запуске очередной программы.

Суть технологии проста: процессор работает на нормальной частоте при полной загрузке и на пониженной частоте, когда вся мощность не требуется, а если компьютер простаивает, то и вовсе начинают отключаться функциональные блоки ядра процессора (правда, современные ОС не дают ему особо застаиваться (смайл)). Эта технология называется SpeedStep (сейчас в ходу ее вторая ревизия) у Intel и Cool`n`Quiet у AMD. Именно распространению ноутбуков мы обязаны тем, что тепловыделение и энергопотребление процессоров архитектуры х86 из побочных явлений сначала превратились в просто важные ТТХ, а теперь Intel и вовсе заявляет, что основной характеристикой современных настольных и мобильных камней является «производительность на ватт» – параметр, означающий, насколько хорошо может прожариться бекон на процессоре, пока вы будете конвертировать фильм в другой формат (смайл).

Ядерная малолитражка
Как известно, линейка Core разрабатывалась, чтобы разом победить всех основных конкурентов. Чем она и занимается в настоящее время. А архитектура Atom изначально была ориентирована на экономного пользователя, которому в повседневной работе не требуется суперпроизводительность. Поэтому под нож пустили все, что хоть как-то влияло на цену и энергопотребление, пускай и в ущерб производительности. Основа архитектуры Atom – последовательное выполнение команд. Эта технология успешно собирала пыль на полках патентного бюро Intel уже со времен P6, после чего в 2008 году старушку вытащили на свет божий и приказали ей: «Встань и иди!». Нельзя сказать, что эта технология очень уж хороша: в отличие от внеочередного исполнения команд, которое используется во всех успешных х86 Intel-процессорах, последовательное не подразумевает грамотного структурирования работы.

Судите сами: при внеочередном выполнении инструкций можно спланировать и скомпоновать задания в очереди таким образом, что, пока из памяти идут запрошенные данные для обработки одной команды, выполняются другие команды, данные для которых уже есть в кэше, – жизнь не стоит на месте. При последовательном же подходе процесс очень напоминает автомобильную пробку, где из-за одного умника простаивают все остальные: пока одна инструкция не завершена, к следующей проц не приступает. Особенно тяжко становится, если для выполнения какой-то инструкции нужны данные, которых не оказалось ни в L1, ни в L2, – тогда в работе камня наступает не просто перекур, а целый обеденный перерыв, плавно перетекающий в майские праздники. Чтобы такого не происходило, инженеры схитрили и пришили корове хвост от гепарда, назвав его SIR (Safe Instruction Recognition – безопасное распознавание инструкций).

Эта технология проверяет зависимости инструкций друг от друга, и если видит, что в очереди стоят инструкции, которые могут застопорить камень, пропускает вперед для обработки более быстрые инструкции. Маленький кусочек внеочередности в царстве очередей. И это помогает: сэкономив кучу транзисторов на отсутствии «внеочередной» архитектуры, инженеры все же смогли избавиться от серьезных простоев в работе процессора (дабы полить дегтем «внеочередные» архитектуры, могу сказать, что у Intel бывали в них серьезные проколы, например replay у Pentium 4, когда целая куча данных могла пойти за электронным Сусаниным, в роли которого выступил блок предсказания ветвлений, и в результате камень много времени тратил на ерунду, а то и вовсе уходил в глухой зависон). Чтобы все было еще лучше, в помощь последовательному выполнению инструкций инженеры дали другую, тоже маленько запылившуюся, технологию – Hyper-Threading, не отказав себе в удовольствии еще разок заморочить бедных пользователей, переименовав ее в SMT (Simultaneous Multi-Threading – одновременная мультипоточность).

Разбивая один физический процессор на два логических и заполняя дыры в очередях работой, эта технология успешно прикрывает слабости архитектуры Atom в области планирования исполнения задач: даже если на конвейер попала инструкция, данные к которой идут с Южного полюса, SMT быстренько подставляет на конвейер другую задачу. Если для Pentium 4 эта технология не была панацеей, то для Atom она просто спасительна: производительность повышается в среднем в полтора раза, а где-то достигает даже 70%. Итого, купив двухъядерный Atom, мы получаем 4 исполнительных потока – раньше такое можно было видеть только в некоторых Pentium 4 Extreme Edition. Именно наличие SMT позволило использовать такой нетипичный для последовательной архитектуры элемент, как длинный конвейер – 16 стадий. Каждая лишняя стадия в конвейере повышает тепловыделение, позволяя поднять частоту, так зачем же увеличивать их количество в процессоре, где ради тепловыделения жертвуют всем, чем можно? Конечно, 16 – это не 31 стадия в Pentium 4, но все равно это больше, чем, например, у Core с 14 стадиями и Pentium III с его 12 стадиями, а ведь уже P III использовал внеочередное выполнение инструкций.

Так вот, благодаря SMT и SIR планируется правильное выполнение инструкций без опасений, что весь конвейер будет простаивать сотни тактов, в то же время длинный конвейер позволяет поднять частоты процессора. Конечно, когда процессор не простаивает, а пашет, то он греется сильнее, а при включении SMT загруженность выше, чем без нее, однако, со слов Intel, разница температур не превышает 10-20%, а прирост производительности весьма существенен. К тому же что такое 10% при тепловыделении этого малыша? В общем тут Intel показала талант гения «тетриса», вместо кубиков используя старые технологии.

Кстати, одним из условий приема на работу в отдел девелопмента Intel явно является хорошее умение играть в эту игру, потому что по принципу «тетриса» придумываются все процессоры: одна команда инженеров занимается кэшем, другая блоком предсказаний, третья бегает за кофе, а результаты компонуются в единый кристалл… Но только в этот раз всех заставили играть по правилам и ограничили игровое пространство. Другие процессоры разрабатывались без оглядки на то, сколько им нужно места, – ведь его так много на подложке. Экономить даже на подложках – вот чем занялась бескомпромиссная Intel. При создании Atom было обозначено так называемое sea-of-FUBs (область с Functional Unit Block – отдельными исполнительными блоками) – физическое пространство кристалла, которое не разрешалось изменять инженерам. Бедняги впервые играли в «запихни пять баянистов с водителем в «Оку», и условие задачи осложнялось трезвостью инженеров (смайл).

Удачно распланировать выполнение инструкций – это хорошо, но ведь и скорость реализации этого плана имеет огромное значение. И здесь мы спотыкаемся об очередную кочку: вычислительное ядро Atom очень медленно работает со сложными инструкциями, хотя с простыми справляется на ура. Несмотря на то что в ядре есть два ALU, они используются только для операций сдвигов переходов, а целочисленными операциями вместо них занимаются два 64-битных FPU, которые параллельно исполняют и свои прямые обязанности. Это приводит к тому, что все легкие расчеты процессором выполняются быстрее, чем если бы все делали свое дело, энергии потребляется меньше, а вязнет камень только в сложных операциях. Другими словами, задачи браузера и ОС «пережевываются» очень быстро, но кодирование видео или просчет игр даются ядру с относительным трудом. Если бы не поддержка мультимедийных расширений (MMX, SSE, SSE2, SSE3), то было бы страшно представить существование такого процессора в современную эру мультимедиаразвлечений.

Процессор Atom под микроскопом. Именно наличие SMT позволило использовать такой нетипичный для последовательной архитектуры элемент, как длинный конвейер – 16 стадий
Процессор Atom под микроскопом. Именно наличие SMT позволило использовать такой нетипичный для последовательной архитектуры элемент, как длинный конвейер – 16 стадий

Дальше еще интереснее. В этом малыше используется асимметричный кэш L1 – 32 Кбайт для инструкций и 24 для данных. Может быть, Intel решила заработать миллиарды на памяти, экономя по 8 Кбайт с каждого процессора (смайл)? Оказывается, все дело в том, что экспериментальным путем выяснилось, что уменьшение кэша с 64 до 56 Кбайт позволяет снизить общий вольтаж ядра. Еще одно урезание производительности в угоду экономии электроэнергии. Есть возможность поудивляться и другими особенностям этого ядра – например, наличию уменьшаемого неразделяемого кэша второго уровня, объемом в 512 Кбайт на каждое ядро (итого мегабайт в двухъядерной версии). Если он не нужен целиком, отдельные его части могут отключаться, а сам он становится из восьмипоточного двухпоточным, что снова экономит электричество в наших домах на несколько милливатт. Аналогично может отключать части себя и сам процессор.

Поддерживаются несколько уровней снижения энергопотребления, от C0 до C6, причем последнее состояние практически равно полностью обесточенному процессору – кэш L2 отключен, кэш L1 частично отключен, напряжение понижено до 0,3 В. До такого состояния процессор доводит себя за 100 микросекунд, а это значит, что он действительно практически не потребляет энергию, если в нем нет необходимости, ведь он засыпает при любой удобной возможности. Этот CPU мне нравится – родственность душ в желании поспать умножает мои симпатии к нему на два (смайл).

Ну и, конечно, снижение частоты при малой нагрузке тоже работает. Однако, как только возникает потребность в процессорной мощности, все мгновенно просыпается и начинает функционировать на полную катушку. Кстати, максимальная частота Atom на сегодняшний день – 1,86 ГГц. И вряд ли частота одиночного ядра Atom существенно вырастет в ближайшее время, и вот почему. Как известно, тактовая частота процессора задается синхросигналом, и очень важно, чтобы этот синхросигнал достигал всех частей камня с минимальными задержками, чтобы они функционировали как единое целое. Казалось бы, электричество позволяет Камчатке слышать Калининград почти без задержек, в чем проблема доставить сигнал в кусочке кремния размером с ноготь? Дьявол, как всегда, в деталях. При таких огромных частотах, на которых работают современные процессоры, важным параметром становится отслеживаемость синхросигнала, если угодно, его «слышимость».

Чтобы блоки процессора распознали синхросигнал на высоких частотах, требуется, чтобы сигнал был достаточно сильным. Обычно в процессорах используют специальную металлическую решетку, которая пронизывает чип насквозь, – это позволяет передавать сильный сигнал с минимальной рассинхронизацией, но есть беда: такая решетка отнимает до 35% всего расходуемого на камень электричества. Естественно, это было недопустимо для Atom, и поэтому инженеры приняли решение снизить потолок частот для чипа, а синхросигнал передавать фактически внутри самого чипа. Результат – всего десять процентов расхода электричества на синхросигнал.

При всех ухищрениях нашлась крайне позитивная вещь, которая очень выгодно отличает эту архитектуру от архитектур более производительных современных процессоров. Во времена первого «пня» Intel начала совмещать внутри своих процессоров RISC- и CISC-блоки. Это позволяло девелоперам спокойно писать программы так, как будто они создавали их под CISC-процессор, однако, как только этот код попадал в камень, он дробился на микрооперации и отдавался на исполнение RISC-компонентам ядра, которые быстрее и эффективнее своих CISC-братьев. В результате код всегда интерпретировался верно и при этом обрабатывался максимально оперативно, ведь выбирался оптимальный порядок выполнения всех инструкций. Но, как мы знаем, Atom использует последовательное исполнение инструкций, что перечеркивает наработки Intel в этой области за последние лет пятнадцать. Зачем дробить операции на микрооперации процессору, который не может их расположить в наиболее логичном для выполнения порядке? Вместо дробления Atom, наоборот, склеивает некоторые операции в макрооперации, и в результате через конвейер проходит одна макрооперация с несколькими операциями внутри, что дает как минимум двукратный выигрыш в производительности. Жалко, что случается это не так часто, как нам всем этого хотелось бы.

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

Результаты ожиданий
Предыдущие части статьи просто-таки пестрят описанием того, что вырезано, недоложено или вообще выкинуто из этого процессора. Было озвучено, где подстелена соломка под падающую производительность, сколько пота, крови и пончиков было потрачено на продумывание всех мелочей, где по крупицам берегли энергию и скрепя сердце отрезали мощность. После всего этого хочется задать вопрос: неужели все это было сделано зря? Чего ради все это? Конечно, не зря. Конечно, «все это ж-ж-ж – неспроста», как любил говаривать Винни-Пух. Давайте взглянем, что же получилось в итоге у Intel. Итак, у них вышел процессор недорогой (от $29), нежаропышущий (может работать на частоте 1 ГГц без радиатора, более быстрые версии могут трудиться с пассивным охлаждением), в меру производительный… А вот здесь время остановиться. После всего того, что мы узнали об Atom в теории, было бы неплохо посмотреть, что может этот чип на практике.

Как я уже писал, самый распространенный вариант Atom на сегодняшний день – это Atom N270 (1,6 ГГц, 512 Кбайт L2, шина – 533 МГц, TDP – 2,5 Вт). Этот процессор стоит в подавляющем большинстве современных нетбуков. Что же по зубам современному нетбуку, вооруженному таким камнем, гигабайтом дешевой DDR2 и встроенной видеокартой от Intel? По зубам ему Windows XP? Да. Windows 7? Да. Linux? Да, существуют даже специальные сборки «пингвина» для нетбуков. MAC OS X? Да! Windows Vista? Вы не поверите, но – да! С двумя гигабайтами оперативной памяти этот процессор справляется даже с ней! Единственное, что вызывает досаду, – встроенная видеокарта от Intel не позволяет полноценно прорисовывать все красивости Vista без задержек, но если отключить особо прожорливые эффекты – все работает на ура.

Браузер, торрент-сервер и клиент, фильмы, музыка, мессенджеры, интернет-телефония, несложные игры, офисные приложения и даже редактирование видео, музыки и фото на несложном уровне – все это можно и нужно делать на Atom. Еще одна немаловажная деталь: все понимают, что бесшумный и компактный компьютер – идеальная основа для домашнего медиацентра, а где медиацентр – там и HD, без которого в наше время и шагу не ступить. Потянет ли такой процессор HD-видео? Со всей уверенностью, опираясь на собственный опыт и опыт людей по всему миру, могу сказать: да. При правильной кастомизации кодеков, при отключении некоторых, не очень-то в принципе нужных, фильтров постобработки, при настройке грамотного кэширования с жесткого диска можно спокойно смотреть HD-видео формата 720p, а без всех этих ухищрений – 720i даже на одноядерных Atom. Двухъядерники же позволяют знакомиться и с 1080i-видео, и, наверное с 1080p. Почему «наверное»? Потому, что из-за ограничений графической системы чипсетов, с которыми поставляются Atom, выводимое разрешение снижается до 1366 х 768, но это уже не столь важные детали. Главное, что Atom может многое – гораздо больше, чем мы могли бы ожидать от такого малыша. Но самое интересное, как всегда, перспектива.

Жаркий межъядерный спор
Каждый уважающий себя современный CPU должен знать свой тепловой пакет. Тепловой пакет – это характеристика процессора, показывающая, сколько он рассеивает энергии в окружающую среду и, следовательно, насколько мощная система охлаждения требуется для него. Например, новый Intel Core i7 965 Extreme Edition имеет тепловой пакет в 130 Вт. Это означает, что без солидного куска меди над головой этот красавец, жалобно поскуливая и потирая обожженные термодатчики, будет ускоренно идти в процессорный рай (ну или в процессорный ад – смотря что вы его заставляли делать (смайл)). У настольного Core 2 Duo E7300 термопакет уже составляет 65 Вт (медь над камнем меняем на алюминий), у мобильного P8400 – 25 Вт (алюминий меняем на маленький медный радиатор), а у суперэкономичного одноядерного Celeron 423 – 5,5 Вт. Разница более чем в 20 раз между i7 965 и Celeron 423 впечатляет, верно? Но, как выясняется, даже 5 Вт – это неприлично много по сравнению с Atom Z500, который выделяет всего 0,65 Вт тепла! Справедливости ради надо сказать, что в семействе Intel Atom самый распространенный сейчас процессор – это N270 с теплопакетом в 2,5 Вт (что все равно вдвое меньше, чем у самого слабого представителя архитектуры Core), а также уже существует Atom 330 – двухъядерный малыш с тепловыделением в 8 Вт.


Основа архитектуры Atom – последовательное выполнение команд. Эта технология не использовалась аж со времен P6. А в 2008 году ее вытащили на свет божий и приказали: «Встань и иди!»

Если представить, что процессоры – это автомобили, то Core i7 – эдакие суперкары, которые хвастаются пятью сотнями лошадиных сил и расходом в бензина в 20 л на 100 км пути, Core 2 Duo – машины самых разнообразных мастей, от джипов до кабриолетов, а Atom… Atom – бойкая малолитражка, которую заправляют раз в месяц. Если перенести самый медленный мобильный Celeron и самый быстрый Atom в мир автомобилей, то Celeron – это какая-нибудь Daewoo Nexia, с которой сняли все сиденья, заменив водительское кресло табуреткой, и сократили двигатель до двух цилиндров, а Atom – это Smart, на который поставили турбину. Почему именно такие аналогии? Потому что они хорошо показывают, что для всего есть свои пределы, переступание которых не приводит к чему-то хорошему. В нашем случае это чрезмерное урезание архитектуры Core в лице Celeron для получения минимально возможного энергопотребления, ведь изначально Core была создана вовсе не для этого: в погоне за минимум тепловыделения Intel «отгрызла» от нее все, что можно, оставив инвалиду разве что надежду на славу старших братьев. Посмотрев на сотворенное, Intel прослезилась, сжалилась над Core и сделала новое ядро – маленькое, юркое и не такое жаркое.

Шина
Как известно, на общую производительность системы влияет не только скорость работы процессора, но и быстродействие компонентов. Наиболее важной считается скорость работы системной шины, благодаря высоким значениям которой процессор может забирать нужные ему данные гораздо быстрее, что повысит его производительность и сократит простои. Раз уж сам Atom не шибко шустрый, почему бы не дать ему в помощь хотя бы быструю системную шину? Официально QPB может функционировать на частоте 1600 МГц, а при разгоне – вдвое быстрее. Было бы забавно иметь шину, скорость работы которой вдвое превышает частоту процессора. Однако и тут пошли на поводу у пониженного энергопотребления – QPB может трудиться в режимах CMOS и GTL, на низких частотах (400, 533 МГц) она работает в CMOS-режиме, что сокращает энергопотребление шины в два раза. Однако при использовании двух ядер становится понятно, что такая частота шины становится узким местом в компьютерах на основе Atom (жесткий диск не в счет – он всегда узкое место (смайл)).

таблица 1

Заглянув за горизонт
Как ясно всем, кто честно дочитал до этой строчки, очевидные козыри Atom – неплохая производительность при феноменально низких энергопотреблении и нагреве. Но есть и еще один нюанс – совместимость. Уникальные характеристики некоторых модификаций этой «малолитражки» делают ее в ближайшей перспективе достойной альтернативой ARM-процессорам в устройствах класса смартфона или коммуникатора, что благодаря х86-архитектуре позволит нам в скором будущем наслаждаться на таких устройствах полным спектром хорошо знакомых приложений для настольных компьютеров без каких-либо принципиальных ограничений.

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

Никто не прокомментировал материал. Есть мысли?