Перспективы развития
Перспективные пути развития процессоров
В настоящее время технология развивается стремительно, каждый год появляется несколько новых микропроцессоров. Однако факторы, влияющие на это развитие, известны. Зная эти факторы, довольно уверенно можно предсказывать и основные пути развития процессоров в ближайшем будущем.
Всем специалистам известно, что при всем многообразии программного обеспечения основу всех программных продуктов составляет так называемый основной цикл работы микропроцессора: выборка команды, ее дешифрация, вычисление адреса и выборка операндов, выполнение команды, запись результата и переход к следующей команде. Все пакеты, все операционные системы, все текстовые процессоры – все имеет в основе своей этот нехитрый набор действий.
Точно так же во всем многообразии видов внутреннего строения компьютерных процессоров лежат некоторые основополагающие принципы, которые обусловлены, прежде всего, теми техническими и экономическими факторами, которые влияют на разработку, производство и последующее внедрение микропроцессоров. Поняв эти факторы, а также зная современный уровень технологий, можно с достаточной уверенностью предсказывать дальнейшее развитие рынка процессоров в ближайшем будущем и оценить перспективность той или иной модели (или архитектурного подхода).
Итак, нам необходимо, во-первых, выявить основную цель развития процессоров; во-вторых, определить ограничения, которые накладываются на процессоры; наконец, в-третьих, оценить существующие современные подходы построения микропроцессоров.
Устремления и ограничения Общая цель, которую стремятся достичь все разработчики микропроцессоров, в общем-то, кристально ясна – получить процессор максимальной производительности с наименьшими затратами как в разработке, так и в производстве. При этом процессор должен быть как можно более универсален. Лишь при достаточно большой массовости производства можно разделить все расходы по разработке модели на такое количество выпущенных экземпляров, что цена одного процессора будет иметь разумный размер. Если же, допустим, процессор найдет весьма узкое применение, то львиную долю его стоимости будут составлять расходы по собственно разработке процессора, а не расходы по его производству. Именно поэтому так дороги уникальные серверные и процессорные платформы, применяемые для нужд обороны и прочих малораспространенных задач. В общем случае, расходы по разработке, скажем, новой модели Pentium и какой-либо сложной специализированной структуры весьма сопоставимы. Однако цена специализированной системы будет превышать цену обычной в десятки раз. Причина этого – в массовости производства.
Проще всего создать процессор, оптимизированный под одну-единственную задачу. В рамках этой задачи можно достичь пика производительности для данной элементной базы. Скажем (пусть это и несколько утрированное сравнение), логический элемент “И” даже устаревшего комплекта будет выполнять операцию логического умножения быстрее, чем самый современный процессор фирмы Intel. Но при этом применений больше, естественно, у процессора. Именно в связи с этой универсальностью происходят потери в производительности (ведь процессор должен выполнить гораздо больше микроопераций, зато и его набор команд гораздо шире). Подобная борьба противоположных требований, при всей своей простоте, является основным фактором влияния.
Другим фактором, возможно и не таким очевидным, является удобство применения процессора для разработки приложений. При разработке любого сложного проекта на каком-то этапе сама технология производства оказывается делом первостепенной важности. Качественная реализация проекта оказывается невозможной без применения специальных средств для контроля за качеством производимых программных продуктов. Именно в этом заключаются корни популярности объектно-ориентированного подхода в языках высокого уровня. В той же мере и на уровне машинных кодов удобство системы команд может оказывать большое влияние на качество работы. Например, затрудненная реализация неких часто повторяющихся действий (сравните поочередное использование инструкции сохранения регистров в стеке для процессора i8088 и команду PUSHA в i80386). Чем удобнее окажется процессор для разработчиков, тем больше будет выпущено программных продуктов именно для этой платформы, и, соответственно, тем привлекательней окажется эта платформа для конечных пользователей. Итак, процессор должен обладать максимальной производительностью, при этом, однако, он должен сохранять свою относительную универсальность, обеспечивающую массовость производства. Также процессор должен быть достаточно удобен для разработки сложных приложений. С учетом всех этих требований можно рассматривать ныне существующие модели, оценивать их перспективность и, до некоторой степени, предсказывать их дальнейшее развитие.
Семейство Intel (CISC- процессоры) В 1978 году была анонсирована архитектура Intel 8086 как совместимое вверх расширение в то время успешного 8-битного микропроцессора 8080. 8086-й представляет собой 16-битовую архитектуру со всеми внутренними регистрами, имеющими 16-битовую разрядность. При этом регистры процессора в ряде случаев выполняют специальные функции (например, регистр BX играет роль базы при некоторых способах адресации), являясь в общем случае регистрами общего назначения. Микропроцессор 8086 (точнее, его версия 8088 с 8-битовой внешней шиной) стал основой, завоевавшей впоследствии весь мир серии компьютеров IBM PC, работающих под управлением операционной системы MS-DOS.
Архитектура x86 на начальном этапе, впрочем, как и при последующем развитии, являлась типичной CISC (Complex Instruction Set Computing) архитектурой, то есть архитектурой с полным набором команд. По мере необходимости набор команд попросту дополнялся новыми операциями. Собственно, история дальнейшего развития этой серии являлась историей добавления в набор инструкций новых команд. Хотя при этом и вводились некоторые архитектурные новшества (например, другая модель памяти) и улучшалась технология производства кристалла.
Появившийся в 1993 году процессор Pentium ознаменовал собой новый этап в развитии архитектуры x86. Процессор Pentium по сравнению со своими предшественниками обладает целым рядом улучшенных характеристик. Даже при одинаковой тактовой частоте Pentium значительно превосходит i486 по производительности. Компьютерные тесты приблизительно приравнивают i486DX4-120 и Penti-um-60. То есть производительность увеличилась в два раза! Этот пример поучителен в том смысле, что демонстрирует, насколько правильный архитектурный подход может увеличить производительность процессора.
В процессоре Pentium был реализован целый ряд новых механизмов, в том числе суперскалярная обработка и динамическое прогнозирование направления переходов. Особая архитектурная организация позволила производить независимое выполнение сразу двух простых команд. Кроме того, с введением специального буфера переходов стало возможным вычислять адрес заранее, до выполнения условия перехода, а при выполнении условия – извлекать адрес уже не путем новых вычислений, а прямо из буфера.
Однако для достижения большей, по сравнению с предыдущими CISC-моделями, производительности уже является необходимым использование технических решений, широко применяющихся при построении RISC (Reduced Instruction Set Computing, ограниченный набор команд) процессоров: • выполнение команд не в предписанной программой последовательности, что устраняет во многих случаях приостановку конвейеров из-за ожидания операндов операций; • использование методики переименования регистров, позволяющей увеличивать эффективный размер регистрового файла (малое количество регистров – одно из самых узких мест архитектуры x86); • расширение суперскалярных возможностей по отношению к процессору Pentium, в котором обеспечивается одновременная выдача только двух команд с достаточно жесткими ограничениями на их комбинации.
Ввиду того, что семейство Intel с самого начала получило хороший старт, эта архитектура по-прежнему остается одной из самых распространенных в мире. Связано это как с удобным набором команд (ведь дополнительные команды вводились, в том числе, и с учетом рекомендаций разработчиков программного обеспечения), так и с большим обилием программного обеспечения для этой платформы. Все это позволило организовать производство процессоров в таком объеме, что их цена оказалась доступной для самых широких потребительских кругов.
Однако в дальнейшем развитии этой линии наблюдается готовность к большим переменам. При сохранении всех прочих достижений, время диктует необходимость внесения больших корректив. Прежде всего, CISC-архитектура довольно сложна в плане распараллеливания,– необходимо постоянно учитывать время исполнения команд (у каждой команды оно свое), решать проблемы синхронизации данных, осуществлять диспетчеризацию доступа к оперативной памяти и т. д.
Недаром в последних моделях Pentium-II и Pentium-III нет ничего качественно нового. В основном, изменения касаются введения новых команд, связанных, прежде всего, с обработкой мультимедийной информации. Однако еще в процессорах с расширением MMX начали внедряться так называемые SIMD (Single Instruction Many Data) инструкции, в которых одно и то же действие совершается над многими данными. В этом можно уследить качественно новую перспективу – подобных команд становится все больше от модели к модели, в скором времени мы сможем наблюдать качественный скачок в развитии процессоров этого семейства.
Действительно, внедрение SIMD-команд является наиболее достойным выходом для CISC-архитектуры. Простое механическое увеличение числа команд является экстенсивным путем развития, который не может не привести к серьезному снижению по производительности (все больше времени затрачивается на дешифрацию кода операции, все больше вычислений производится для извлечения операндов из памяти и т. д.). Дальнейшее увеличение суперскалярной обработки тоже требует больших интеллектуальных затрат. Слишком уж разный формат команд используется, слишком они различаются по времени исполнения. Увеличение же производительности только за счет улучшения технологии производства – недостаточно эффективно.
Итак, скорее всего в самом ближайшем будущем можно будет ожидать качественных изменений в линии Intel, связанных, прежде всего, с внедрением SIMD-инструкций. И также довольно уверенно можно говорить о том, что в самом ближайшем будущем семейство Intel не сдаст своих позиций на рынке SOHO (Small Office Home Office), потому что архитектура Intel по-прежнему остается одной из самых привлекательных для разработчиков пакетов прикладных программ.
RISC-архитектура (Power PC, Alpha, DSP и т. п.) Как уже говорилось выше, CISC-архитектура оказалась очень неудобной для организации суперскалярной обработки, а довольно вольный подход к формату команд приводит к большим потерям по времени из-за сложного алгоритма обработки каждой команды. Идеи о том, как всего этого избежать, и легли в основу процессоров с RISC-архитектурой.
На систему команд был наложен ряд ограничений: • все команды стали иметь один размер, так что процессор больше не затрачивает время, необходимое для извлечения дополнительных байтов выполняемой инструкции; • все команды, в идеале, выполняются за один машинный такт, а их малое количество позволяет обходиться ограниченным количеством битов для задания кода операции; • используются простые методы адресации; • команды, которые изменяют данные, не обладают доступом непосредственно к памяти (все делается через регистры общего назначения); • число регистров общего назначения достаточно велико, так что общее количество обращений к памяти сведено к минимуму.
Такой подход оказался крайне эффективным, до сих пор отрасль RISC-процессоров – одна из наиболее динамично развивающихся. Все ограничения, наложенные на набор команд, позволяют построить архитектуру процессора с максимальной эффективностью. Время дешифрации команд и время на получение операндов сведены к минимуму. Из-за жестких ограничений по времени исполнения команд почти нет проблем и с синхронизацией при суперскалярной обработке. Компания Apple, производитель процессоров с архитектурой Power, не раз демонстрировала превосходство по производительности своих процессоров над аналогичными моделями фирмы Intel. Многие профессиональные дизайнеры предпочитают работать на компьютерах Macintosh, построенных на базе процессора PowerPC.
Однако накладываемые ограничения оказываются палкой о двух концах. Ввиду того, что действия, которые должен совершать компьютер, все равно остались, а многие команды в RISC-процессорах просто не реализованы, то зачастую для выполнения некоего действия, которое задано в Pentium одной командой, в RISC-процессорах приходится запускать целый алгоритмический блок. Да и собственно среда разработки оказалась достаточно сложной, приходится отвоевывать рынок программного обеспечения у ныне существующих систем. Все это привело к тому, что большинство RISC-архитектур используtтся исключительно в узкопрофессиональных областях.
Чтобы как-то исправить подобные недостатки, в последнее время разработчики микропроцессоров стали прибегать к созданию гибридов RISC- и CISC-архитектуры. Новые процессоры обладают полной совместимостью по набору команд с процессорами фирмы Intel. Но при получении такой команды на исполнение происходит трансляция инструкции в микрокод, который уже и идет на исполнение. Микрокод же этот состоит уже из RISC-команд. Как ни странно, такой подход оказался наилучшим выходом из создавшегося положения. С одной стороны, все существующее программное обеспечение с успехом выполняется, с другой – доступны все те возможности по суперскалярной обработке, какие предоставляет RISC-архитектура. При этом и проектировать такие процессоры гораздо проще, нежели традиционные CISC-архитектуры. Именно такой подход был реализован и при создании микропроцессора Эльбрус E2k с архитектурой EPIC. Это проект компании Эльбрус Интернэшнл, руководит проектом член-корреспондент РАН Б.А. Бабаян (более подробно о нем см. "КОМПЬЮТЕР бизнес МАРКЕТ" №15). Набор системного программного обеспечения E2k включает в себя распараллеливающий компилятор и двоичный транслятор кода x86.Разработчики утверждают, что Е2k будет иметь более высокую производительность при меньшем энергопотреблении и меньших размерах кристалла. При этом программной двоичной трансляцией обеспечивается полная совместимость с кодом x86 почти без потерь производительности по сравнению с собственным кодом E2k. Это достигается как раз за счет применения суперскалярной обработки, которая оказывается осуществима только в рамках RISC-архитектуры.
В общем, RISC-архитектура в настоящее время является одним из самых перспективных направлений развития процессоров. Однако этой архитектуре присущ и ряд недостатков, связанных, прежде всего, с потерей универсальности в угоду производительности. Насколько успешно удастся эти ограничения обойти, настолько плодотворной будет дальнейшая работа над этой линией процессоров.
Нечто совсем другое Не стоит думать, что RISC и CISC – это все возможные варианты построения современных процессоров. Во-первых, существует целый ряд менее известных архитектур. Во-вторых, есть и более узкоспециализированные архитектуры, которые разрабатывались под конкретную задачу (например, спецвычислители). Наконец, в-третьих, ведутся и принципиально новые разработки, о которых в настоящее время просто мало известно. В самом недалеком будущем, возможно, они будут обнародованы. В этом случае мы можем оказаться свидетелями больших перемен по сравнению с существующей в настоящее время ситуацией.
Одной из таких эффективных разработок является микропроцессорная система с гибкой логикой. Проект разрабатывается в Санкт-Петербургском институте информатики и автоматизации РАН под руководством проф. В.А.Торгашева.
Основу системы составляет динамически изменяемая схема на элементах с гибкой логикой. Путем программирования непосредственно этой схемы оказывается возможным изменять саму архитектуру процессора. Ранее уже говорилось о том, что наиболее производительной оказывается система, специально созданная под конкретную задачу. Но она становится слишком дорогой, если разрабатывать, а потом и организовывать ее производство. Так вот – за счет способности к динамической перестройке система с изменяемой архитектурой (и, заметьте, с динамически изменяемой системой команд!) оказывается способной совместить в себе и массовость универсальных систем, и производительность специализированных.
Конечно, при использовании системы, основы которой можно подвергнуть изменению, возникают свои трудности. Самая первая из них – это разработка программного интерфейса. Очень трудно программировать в условиях, когда правила игры все время меняются. Если использовать эту систему в чистом виде, то необходимо подумать о разработке качественно новых алгоритмов функционирования программ. Например, вместо инициализации переменных в такой программе должны сначала инициализироваться система команд и архитектура системы. Для их описания необходимо использовать свой, специальный язык описаний. Что, в свою очередь, порождает проблему создания загрузчика и транслятора таких описаний.
Но достоинство подобной системы заключается в ее универсальности, что не только создает предпосылки массовости, но и существенно облегчает внедрение. Ее можно использовать и совместно с традиционными процессорными системами. Так же, как работает 3D-акселератор, облегчая процессору выполнение специальных действий по обработке графики, так и эта система может играть роль акселератора, причем не только графического. Специальный набор программного обеспечения может превратить эту систему в акселератор любых действий, которые вам необходимы. Уже в настоящее время реализованы в железе прототипы таких систем. Пока что они не полностью автоматизированы, но уже сейчас они показывают производительность, превосходящую заурядные универсальные системы, пусть и выполненные на более современной элементной базе.
Так что далеко не все возможности по развитию микропроцессоров (и, естественно, целиком компьютеров) на сегодняшний день исчерпаны. Следовательно, в ближайшем будущем всех нас ожидает еще много нового и интересного.
Intel начинает производство серверных процессоров по 45-нм техпроцессу
Компания Intel начала производство двух низковольтных процессоров для серверов и рабочих станций. Четырехъядерные процессоры серии Intel Xeon L5400 производятся по 45-нм технологическому процессу компании Intel с использованием новой технологии транзистора, что заметно увеличивает производительность чипов и снижает потребляемую ими мощность, заявил представитель компании.
Процессоры линейки Xeon L5400 по сравнению с предыдущими поколениями чипов Intel, по меньшей мере, на 25% производительнее и имеют вдвое больший размер кэша, в то время как потребляемая новыми процессорами мощность составляет 50 Вт. Тактовые частоты четырехъядерных процессоров L5410 и L5420 составляют 2.33 ГГц и 2.5 ГГц соответственно, размер кэша — 12 Мб, а частота шины FSB равна 1333 МГц.
В соответствии с предоставленной представителем компании Intel информацией, большинство вендоров компьютерных систем, среди которых такие компании Asustek Computer, Dell, Fujitsu, Fujitsu-Siemens, Gigabyte Technology, Hewlett-Packard, Hitachi, IBM, Microstar, NEC, Quanta, Rackable, Supermicro, Tyan и Verari, поддерживают линейки процессоров L5400 и L5210. В планы компании Intel на следующий квартал также входит начало поставок новых двухъядерных низковольтных процессоров с потребляемой мощностью 40 Вт, тактовой частотой 3 ГГц, размером кэша 6 Мб и частотой шины FSB 1333 МГц. Intel также расширит существующую линейку четырехъядерных процессоров Intel Xeon 5400 для вложенных сегментов рынка, предлагая четырехъядерный процессор L5410 с 7-летним жизненным циклом.
В одном процессоре Intel будут тысячи ядер
Уже в ближайшие годы корпорация Intel намерена выпустить процессоры, содержащие несколько сотен ядер. А в дальнейшем разработчики не исключают, что число ядер может вырасти до нескольких тысяч.
Крупнейший в мире, по данным iSuppli за 2007 год, производитель полупроводниковых чипов на сегодняшний день предлагает пока только 4 ядра в одном процессоре. Но уже к концу этого года корпорация обещает выпуск процессора Nehalem с 8 ядрами. А на будущее Intel озаботилась возможностью пойти дальше привычной архитектуры микропроцессоров в персональных компьютерах и серверах.
На этот счет ведущий инженер компании Энвар Галум (Anwar Ghuloum) в своем блоге выразился так: «В конечном счете, я рекомендую воспользоваться следующим моим советом: разработчики уже сейчас должны начать думать о десятках, сотнях и тысячах ядер». Галум не скрывает, что он и его коллеги в настоящий момент изучают технологии, которые смогли бы масштабировать вычисления «на то количество ядер, которые мы пока не продаем». При этом, пишет CNews, успех многоядерных систем, по его мнению, будет зависеть во многом от самих разработчиков: вероятно, им даже придется изменить языки программирования и переписать все существующие библиотеки.
Те преимущества, ради которых придется это сделать, описаны в материале под названием «Платформа 2015: развитие процессоров и платформ Intel в ближайшие 10 лет», авторы которого утверждают, что процессоры с большим количеством ядер, доходящим в некоторых случаях до сотни, должны появиться уже в течение нескольких следующих лет. Будущее процессоров, как уверены разработчики, за архитектурой с поддержкой многопроцессорной обработки на уровне кристалла (CMP), поскольку это «позволяет достичь высокой производительности и в то же время обеспечить эффективное управление питанием и эффективный режим охлаждения».
Напомним, увеличивать производительность компьютеров до сих пор удавалось за счет увеличения тактовой частоты процессора (это наглядно демонстрирует все прошлое развитие линейки процессоров Intel Pentium). «Венцом творения» стал процессор Pentium 4 с технологией Hyper-Threading, позволившей вычислять несколько потоков одновременно.
А вот дальнейшее увеличение частоты признано нецелесообразным. Это приведет лишь к возрастанию тока утечки транзисторов, что обернется только повышением потребляемой мощности и увеличением выброса тепла. Мало того, увеличение тактовой частоты нивелируется более медленной памятью. А некоторые приложения при большей тактовой частоте становятся просто неэффективными. Принимая во внимание все это, инженеры сходятся во мнении, что должен быть другой способ увеличения производительности компьютера, и он заключается в разделении задачи на множество небольших вычислительных устройств.