Обзоры
Процессорные архитектуры — «вершки и корешки»
0

Процессорные архитектуры — «вершки и корешки»

     Не секрет, что сложившуюся с проектированием массовых ПК-ориентированных микропроцессоров ситуацию смело можно назвать "затянувшимся ожиданием". Экстенсивность принятого основными выжившими "процессоростроителями" пути также достаточно очевидна: уверенное повышение тактовой частоты на 50 MHz каждые 3—4 месяца и бдительное сохранение границ ценовых диапазонов — лучшее тому подтверждение. Все еще ожидаемые монстры типа пресловутого Merced или находящегося в неопределенной рыночной ситуации Athlon ровным счетом ничего не меняют в картине "раздела микропроцессорного мира" — их ценовой диапазон не волнует массового покупателя. Кроме того, есть еще и примитивная арифметика, открывающая глаза на многие любопытные вещи. Так, исходя из очевидного соображения, что производительность процессора и его цена должны быть связаны некоторой зависимостью (в интересах покупателя — линейной), можно сделать ряд очень забавных "открытий", посетив сайты www.spec.org и www.itc.kiev.ua. На первом можно найти честные и профессионально точные результаты оценки производительности (SPECfp 95), на втором — актуальные цены на процессоры. Массовый Celeron 400 MHz показывает довольно неплохой результат в терминах SPECfp 95 — 10,6 при более чем разумной цене $70 (приблизительно), соответственно, отношение SPECfp/цена для этого кристалла составляет 0,15. Агрессивно продвигаемый на рынке "Internet-ускоритель" Pentium III при тактовой частоте 600 MHz, поставленный в максимально равные условия с Celeron (но с более быстрой 100-мегагерцевой шиной памяти), показывает 15,9 SPECfp 95. С учетом средней цены $470 показатель SPECfp/цена для Pentium III равен 0,034. Трудно сказать, о чем говорит потребителю более чем четырехкратное превосходство дешевого Celeron над своим мощным собратом по показателю цена/производительность… С точки зрения автора, самый важный факт остался "за кадром" всех этих рассуждений. Период экстенсивного развития микропроцессоров затягивается, а это значит, что… следует ожидать больших перемен и появления совершенно новых игроков на поле щедро оплачиваемой "битвы за десктопы". Тем более интересными становятся различные "нетривиальные" архитектурные решения — "вершки" сверхприбылей с компьютерного рынка уже сняты, новичкам остается только тщательно искать "корешки" (которые, к слову, могут оказаться тоже весьма аппетитными).
     

     Коммутаторы — это не только сети…

     Терминологические искажения — любимая автором тема… Термину "коммутатор" в некотором смысле повезло менее других — "своим" его считают и специалисты в телефонии, и "сетевики", и представители еще десятка самых экзотических специальностей. Не вдаваясь в терминологические дебри, сразу помогу читателю определиться — в контексте этой статьи коммутатор является аналогом многопозиционного переключателя (помните замечательно "клацающие" механические переключатели телевизионных каналов?).

     Естественно, что к этому моменту должен возникнуть неизбежный вопрос "А причем здесь коммутаторы, ведь речь идет о процессорах?". Не стоит возмущаться: просто автор готовит вас к ознакомлению с уникальной архитектурой процессора, основанного на идеологии crossbar-switch, и, учитывая настоящую УНИКАЛЬНОСТЬ этой архитектуры (ей посвящены буквально несколько страниц в Internet), без ознакомительного материала (как всегда, увы) не обойтись…

     Знакомство с загадочными "crossbar-переключателями" (на основе которых, к слову, выполнены системные шины многих мощных мультипроцессорных систем, например SGI Origin) придется начинать с самых примитивных элементов — мультиплексоров. Их реальные образцы и сегодня можно буквально за копейки приобрести на радиорынке — мультиплексоры (MX), несмотря на простоту, обладают чрезвычайным "функциональным богатством" и, невзирая на малую степень интеграции, производятся в микросхемном исполнении самыми разными полупроводниковыми компаниями. Функция мультиплексора предельно проста — он работает как многопозиционный переключатель, подключающий сигнал со входа I с номером N на один единственный выход O (рис. 1, не соответствующий стандартным обозначениям для микросхем-мультиплексоров). Таким образом, мультиплексор имеет три группы входов/выходов: непосредственно входы (I на рис. 1), входы кода соединения (N, там же) и выход O. Естественно, что никто и ничто не запрещает создавать многоразрядные мультиплексоры, позволяющие коммутировать, например, восьмиразрядные или более потоки данных (в этом случае вместо единичных проводников-входов и одного проводника-выхода используются группы из необходимого количества проводников), но для упрощения мы о них на время забудем.


     Цифровая логика — наука строгая, и для большинства цифровых устройств существуют их "негативы". Мультиплексоры не являются исключением — для них реализованы устройства-"негативы", работающие с точностью до наоборот. Демультиплексоры (DX) выполняют подключение сигнала с одного-единственного входа (I на рис. 2) к выходу O с номером N.


     Итак, с мультиплексорами мы разобрались… Пара мультиплексор-демультиплексор позволяет создавать коммутируемые соединения между группами устройств по одной линии связи S (или проводнику, рис. 3). Однако одновременные связи между парами устройств для такой простой схемы недостижимы — единственная линия связи (проводник) вынуждает осуществлять так называемое временное разделение каналов (пока пара B, C "общается", все остальные устройства должны ожидать завершения этого процесса, рис. 3). Естественно, что во многих случаях такое ограничение неприемлемо, и инженерная мысль нашла изящное решение проблемы. Предположим, нам необходимо нечто, обеспечивающее одновременное соединение четырех различных пар устройств (рис. 4). Если использовать уже "освоенную" элементную базу — "связки" мультиплексоров и демультиплексоров, то достаточно очевидно, что для решения задачи необходимы четыре линии связи (такие, как S на рис. 3) и, следовательно, четыре пары MX, DX. Не учитывающее разнообразные несущественные нюансы (нагрузочную способность, объединение выходов и прочие электронные сложности), решение задачи представлено на рис. 4. Разобрались? Действительно, в приведенной "схеме" возможны до четырех управляемых одновременных соединений между устройствами групп A и B (см. рис. 4), конкретные соединяемые пары itc_drupal_Ai, Bj формируются соответствующими кодами на входах N нашего "нечто". Хотя почему "нечто"? Пора открыть "страшную тайну" — это нечто и есть crossbar-switch!
     

     Кто есть кто?

     Рекламный слоган Sun "Сеть — это компьютер" постепенно трансформируется в "Сеть — это все". Если на базе crossbar-коммутаторов создаются реальные многопроцессорные системы, а сетевые соединения с crossbar-коммутацией используются для реализации кластерных суперкомпьютеров (проект Beowulf), то попытки применить идеологию коммутируемых каналов связи к микроархитектуре ("внутренностям" процессоров) пока находятся в зачаточном состоянии — изрядно "объеденные вершки" сверхприбылей в секторе x86-совместимых процессоров все еще привлекают производителей. Академическая наука, несмотря на некоторую зависимость от этих самых сверхприбылей, напротив, приветствует смелый "полет мысли". В поисках чего-нибудь интересного (а оно, это самое "интересное", в Сети обычно сконцентрировано на сайтах из домена .edu — хотя, кому что интересно в Сети…) автора "занесло" на сайт Государственного университета Рутгерс (Rutgers) штата Нью-Джерси, а точнее, в "Центр передовых технологий обработки информации" (CAIP, совместное детище Rutgers, государственной комиссии штата Нью-Джерси по науке и технологиям, спонсируемое вездесущими корпорациями AT&T, Sun, IBM, SGI, Texas Instruments, Cisco и военными). Именно здесь, в "завалах" отчетов о НИР и НИОКР (большинство из которых способно ввести в состояние ступора всех наших сограждан, знакомых не понаслышке с советской системой тотального засекречивания всего), автор и "выудил" настоящую жемчужину — детище маленькой многонациональной группы исследователей (К. Пароди, М. Хсиао, В. Агравал).

     Процессор — это сеть

     Хороший инженер, в отличие от просто инженера, тратит на проектирование в четыре раза больше времени и денег. Но то, что им сделано, стоит в четыре раза меньше и работает в четыре раза дольше и лучше…
     Народная
     инженерная мудрость

     Итак, названный исследователями из Rutgers XMP (Crossbar-switch Microprocessor, латинская буква X в названии соответствует общепринятому обозначению crossbar-коммутаторов — образованная пересечением двух отрезков, она как бы символизирует одновременное существование двух и более каналов связи), представляет собой диковинный гибрид, сформированный на основе хорошо известных решений. Из функциональной схемы XMP (рис. 5), на которой представлен и формат команды этого удивительного процессора, видны разительные отличия XMP-архитектуры от более традиционных решений. Во-первых, в XMP все узлы процессора соединены между собой не шиной данных (требующей временного разделения операций), а crossbar-коммутатором N x N (допускающим одновременное соединение 2N устройств, т. е. формирующим N независимых шин между практически любыми устройствами процессора). Во-вторых, банк регистров XMP включает в себя равноправный со всеми регистрами счетчик команд PC (в традиционных процессорах для PC предусматриваются отдельные шины). В-третьих, арифметико-логическое устройство (АЛУ) XMP организовано по конвейерному принципу и допускает одновременный прием данных и выполнение минимального числа операций. Формат команды XMP отражает особенности коммутируемой архитектуры: битовое поле "Конфигурация Xbar" (см. рис. 5) содержит код, управляющий соединениями в коммутаторе, поля "Адрес Rr"/"Адрес Wr" — номера регистров общего назначения в банке регистров, "подключающихся" ко входам/выходам коммутатора для осуществления операций чтения/записи. Несмотря на ряд существенных упрощений в функциональной схеме (по одному регистру из банка R доступны по чтению/записи в один момент времени, на самом деле регистровые операции могут осуществляться одновременно для групп регистров, в описании XMP "от CAIP" одна команда процессора допускает чтение четырех и запись двух регистров общего назначения, не считая PC), для объяснения принципа работы XMP приведенной информации более чем достаточно. Главное отличие XMP от традиционных процессоров, способное существенно усложнить понимание основ коммутируемой архитектуры, заключается в формировании за счет crossbar-switch изменяемой от команды к команде конфигурации внутренних шин CPU. На рис. 6 приведены потоки данных в XMP в два момента времени выполнения команды сложения содержимого двух регистров (R1, R2) с размещением результата в третьем (RN): в первый момент времени Xbar сконфигурирован так, чтобы обеспечить две независимые "шины", соединяющие регистры R1 и R2 со входами АЛУ, в следующий — конфигурация "шин" меняется, и выход АЛУ соединяется с регистром RN. Разработчики XMP пошли по пути максимального упрощения аппаратной части, переложив на плечи программистов заботу о временном согласовании конвейерного АЛУ и остальных частей процессора (в исходном XMP АЛУ выполняет все операции за три такта, но инструкции пересылки данных довольствуются всего одним). Именно поэтому авторы назвали XMP "псевдоVLIW-процессором" (в VLIW-архитектуре задачи временного согласования нескольких одновременно выполняющихся команд также решаются на уровне ПО). Для XMP подобные сложности нельзя считать критическими — архитектура допускает практически неограниченные возможности модернизации, и самая очевидная из них — применение группы однотактных АЛУ. В этом случае проблемы с временным согласованием можно полностью избежать, а система команд такого модифицированного X-процессора, вероятнее всего, будет напоминать инструкции цифровых сигнальных процессоров (DSP) семейства Sharc производства Analog Devices (о них автор уже рассказывал в предыдущих статьях). Например, процессор с четырьмя АЛУ идеально подходит для сверхскоростного выполнения 3D-ориентированных вычислений (в основе которых лежат перемножения матриц 4 x 4).

     

     Последовательные шины и быстрые процессоры

     Казалось бы, что понятия "последовательная шина" и "высокое (в процессорном смысле) быстродействие" — несовместимы. Хотя… Существуют микроконтроллеры, внутренние шины которых выполнены именно на основе последовательных соединений (производятся они ST Microelectronics), есть и скоростные последовательные каналы связи. Не следует исключать перспективности применения последовательных шин и в XMP: для реализованных на одном кристалле высокоинтегрированных устройств, работающих на тактовых частотах около 1 GHz, вопрос "сужения" внутренних шин приобретает особую актуальность ("широкие" параллельные соединения (32, 64, 128 бит) "съедают" львиную долю площади кристалла). Да и для такого сложного устройства, как процессор, показатели производительности настолько интегральны, что трудно сказать, будет ли CPU на основе XMP с последовательными внутренними шинами существенно медленнее своих собратьев или вовсе нет. А вот то, что он будет значительно дешевле, — это точно. В конце концов, остается возможность просто "сужения" входов/выходов данных crossbar-коммутатора до приемлемых значений (например, до восьми бит), что позволит при достаточно высокой тактовой частоте добиться оптимального соотношения между производительностью и ценой.


     По крайней мере, сравнительная оценка производительности XMP с параллельными коммутируемыми шинами показала, что для выполнения функционально одинаковых программ на XMP и популярном MIPS R3000, первому процессору необходимо в среднем на 25% меньшее число тактов. Для проведения подобного эксперимента применялись программные эмуляторы XMP (под названием xmps) и MIPS R3000, исполняющиеся в операционной системе Unix. Тестовая программа — сортировка массива данных методом "пузырька", потребовала от XMP 128 единиц процессорного времени на выполнение одного цикла, для R3000 — соответственно 180. Если учесть, что архитектура MIPS заслуженно считается очень удачной, подобный показатель можно признать более чем удовлетворительным.
     

     Есть ли будущее у XMP

     На этот вопрос ответить трудно — куда более широко известные стековые машины, при всех их достоинствах, остаются глубоко в тени. А вот для практической реализации XMP есть все необходимое (самый сложный элемент XMP — crossbar-коммутатор — в интегральном исполнении производится десятками компаний для удовлетворения растущего спроса на сетевые устройства). Вероятнее всего, что в чистом виде XMP никогда не появится на свет, но идеям, заложенным в этот процессор, думаю, еще предстоит не одно успешное воплощение: проблема роста площади кристалла за счет увеличения числа и "ширины" внутренних шин с повестки дня не снимается.


Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: