AS/400 в XXI веке
Предсказывать, какой будет компьютерная промышленность через трипять лет, это все равно, что пытаться угадать, кто выиграет Кубок мира по теннису, чемпионат Формулы 1 или Super Bowl1Самый престижный кубок в американском футболе. — Прим. консультанта. в 2001 году. Нельзя сказать, что это невозможно в принципе, чем видимо и объясняется то, что так много людей имеют по этому вопросам свое мнение, которым с удовольствием делятся с окружающими. И все же подобные попытки чаще всего бесплодны. Компьютерные эксперты регулярно выдают прогноз на следующие пять лет, не смущаясь тем, что все их предыдущие предсказания были абсолютно ошибочны. Вот и я, в свою очередь, хочу ознакомить читателей со своими предположениями, какой будет компьютерная индустрия после 2001 года. Мой оптимизм относительно достоверности этих прогнозов основывается на том, что нам уже многое известно о технологиях будущего.
Возможно Вы удивлены, что за точку отсчета я взял 2001, а не 2000 год. Отчасти это объясняется тем, что я сторонник точности — ведь на самом деле XXI век начнет ся только в 2001 году. Но есть и другие причины. Начиная с 1998 года и далее многие производители замедлят переход на новые технологии, особенно требующие значительных усилий, так как 1 января 2000 года — самая страшная дата для компьютерщиков. Сложно предсказать масштаб грозящей опасности, но очевидно, что большинство компаний не захотят тратить силы на новые изобретения в этот промежуток времени, за исключением случаев, когда это будет абсолютно необходимо. Но даже тем компаниям, которые стремятся развивать новые технологии, трудно подобрать для этого персонал с достаточным опытом: так как много людей заняты сейчас проблемой 2000 года.
Суть этой проблемы достаточно широко известна. Когда календарный год изменится с 1999 на 2000, многие прикладные и даже системные программы прекратят правильно работать. Для представления года в них заданы только две цифры, так что по их внутреннему календарю наступит не 2000, а 1900 год. А так как ошибка будет массовой, то она может вызвать огромный беспорядок в делах по всему миру.
Гиганты компьютерной индустрии уже прилагают огромные усилия, чтобы предотвратить грозящую неразбериху. Производители программ и ОС готовят свои продукты к 2000 году. Например, все системное ПО AS/400 и ПО многих бизнес-партнеров IBM уже сертифицировано на готовность к 2000 году.
Но, так или иначе, в 2001 году мы все уже придем в себя и с новым рвением вернемся к поиску новых технологий.
Будущие технологии процессоров
Я начну свой прогноз с самого простого: будущего аппаратных технологий процессоров. Аппаратурой управляют законы физики, так что ее развитие можно предсказать с определенной долей уверенности. Единственное затруднение — предвидеть с высокой точностью, какие конкретно технологии и как именно будут применяться в наших вычислительных системах.
В "Технология PowerPC" мы упоминали "закон Мура", в соответствии с которым, число транзисторов на одной микросхеме удваивается примерно через каждые 18 месяцев. Многие эксперты полагают, что действие этого "закона" сохранится, по меньшей мере, еще в течение 15 лет, то есть что компьютерная промышленность еще долго не откажется от технологии КМОП. Это также означает, что число цепей на кремниевой микросхеме будет продолжать удваиваться каждые 18 месяцев благодаря уменьшению размеров транзисторов. Производительность будет расти по мере увеличения количества транзисторов на одной микросхеме. К тому же, чем ближе друг к другу расположены транзисторы, тем быстрее электрические сигналы, передающиеся примерно со скоростью света, будут это расстояние преодолевать.
В этом разделе я постараюсь спрогнозировать будущее аппаратных средств AS/400 на ближайшие 5-10 лет. Как и все предсказатели, я не даю никаких гарантий, что что-либо из моих предсказаний сбудется, но делать прогнозы занимательно. Итак, получше затяните свой пристяжной ремень; наш новый Порше быстро набирает скорость звука и мы устремляемся вперед в возможное будущее.
Процессоры пятого поколения
В течение нескольких следующих лет серия AS/400е будет использовать процессоры PowerPC. Как мы уже говорили, третье и четвертое поколение процессоров, разработанных в Рочестере, будет применяться на протяжении всего времени выпуска версии 4 и далее. Эти же процессоры используются моделями RS/6000. (IBM обсуждала идею конвергенции процессоров между AS/400 и RS/6000 для коммерческих приложений с момента начала работ над PowerPC, но не смогла осуществить ее в первом поколения процессоров AS/400.)
Процессоры AS/400 первого и второго поколений поддерживали только режим активных тегов, а все процессоры третьего и четвертого поколения — режимы как активных, так и неактивных тегов. Как мы уже упоминали, на этих процессорах также работают стандартные интерфейсы вводавывода, на них возможна установка как OS/400, так и других ОС PowerPC.
В "Технология PowerPC" обсуждался мощный процессор Belatrix для систем высшего уровня, названный так в честь звезды в созвездии Орион. Повторюсь: этот проект, который по первоначальному замыслу должен был завершиться созданием процессора как для научных, так и для коммерческих расчетов, был слишком амбициозен и, потому, ни к чему не привел. В результате, лаборатория в Остине начала разработку своей версии Belatrix для научных расчетов, а Рочестер — своей, под названием Northstar, которая и стала началом семейства процессоров четвертого поколения. Затем эти процессоры были оптимизированы для коммерческих расчетов как для AS/400е, так и для RS/6000.
Процессоры четвертого поколения особо примечательны тем, что спроектированы с учетом перехода на более быстрые технологии КМОП. Семейство четвертого поколения насчитывает несколько версий, все они используют общую архитектуру, но реализованы на разных этапах развития микросхем. Можно ожидать, что диапазон производительности этих 64-разрядных процессоров PowerPC составит от 250 до 800 МГц. В подразделении IBM Research также ведется работа для достижения на этом процессоре тактовой частоты более 1 гигагерца (ГГц). Поэтому, если будет принято соответствующее решение, архитектура третьего поколения может использоваться и после версии 4.
Теперь поговорим о пятом поколении процессоров AS/400. Здесь возможны разные интересные варианты. Но сначала, давайте разберемся, как обстоят дела с технологией КМОП. Примерно к 2005 году появится возможность размещения до 100 миллионов транзисторов на одном кристалле. Как лучше использовать все это множество цепей — предмет больших дискуссий.
Современные микросхемы процессоров содержат от 5 до 8 миллионов цепей. Одно из очевидно возможных применений дополнительных цепей — увеличение внутренних кэшей. Другой вариант — реализация с их помощью функций, для которых сейчас выделяются отдельные микросхемы. Третий — доверить им новые функции, по примеру Intel, включившей в свои процессоры Pentium технологию MMX.
Но даже после всего этого часть цепей, возможно, останется незадействованной. Их можно использовать для создания процессоров со сверхширокими трактами данных. 128 и даже 256-разрядные процессоры уже не кажутся чемто мифическим. 128-разрядный видеопроцессор уже сейчас используется на многих ПК. Конечно, проблема перевода процессоров общего назначения на большие размеры регистров связана с ПО. К 2005 году многие компании лишь только перейдут на 64-разрядное ПО.
Вероятно, для перехода на 128 или 256-разрядные процессоры не стоит ждать еще 12 лет. Куда практичней размещать на одной плате несколько процессоров. Например, благодаря прогрессу в области SMP вполне реально представить себе n-процессорный узел SMP вместе со всеми кэшпамятями на одной микросхеме. Подобная реализация не потребует изменения ПО, которое уже сейчас поддерживает SMP. По мере увеличения размеров конфигураций SMP и размещения на одном кристалле нескольких процессоров, не за горами и такая фантастическая картина: миллиард транзисторов на одном кристалле. Это может произойти примерно после 2010 года.
Фактически, мы уже идем по этому пути. У каждого процессора четвертого поколения — два полных набора регистров на одном кристалле. Аппаратура процессора может попеременно использовать их то для одного, то для другого потока управления в программе. (Процесс может иметь одну или несколько единиц исполнения, на зываемых потоками, — об этом рассказано в "Управление процессами" ). Когда говорят о параллелизме внутри процесса, обычно подразумевают, что несколько потоков выполняются одновременно на нескольких процессорах. Однако выполнение нескольких потоков возможно и на единственном процессоре с несколькими наборами регистров, которые аппаратура использует попеременно. Такой процессор называется многопоточным (multithreaded).
В "Технология PowerPC" мы говорили, что современные процессоры обречены на простои во много циклов изза промахов кэшей и длительного обмена с памятью. Чтобы предотвратить потери, многопоточный процессор может использовать такие циклы для исполнения команд из другого потока, что повышает загрузку процессора, и, таким образом, производительность. В конце 70-х годов суперкомпьютер на неоднородных элементах HEP (heterogeneous element processor) ныне несуществующей фирмы Denelcor продемонстрировал поддержку процессором до 16 потоков команд.
Многопоточные процессоры отлично вписываются в концепцию AS/400. Сегодня даже в самых малых системах AS/400 установлено не менее двух процессоров: основной и IOP. В будущем все IOP перейдут на PowerPC, и тогда многопоточные процессоры появятся на всех AS/400. Например, один набор регистров на микросхеме процессора третьего поколения может использоваться для основного процессора, а второй — для IOP, а значит можно будет выпускать дешевые модели, использующие лишь одну микросхему.
Весьма вероятен и такой вариант использования многопоточности: с появлением в 1998 году встроенной поддержки потоков каждая процессорная микросхема будет поддерживать несколько потоков процесса.
А теперь попробуем заглянуть еще дальше. Придет время, когда на одной микросхеме разместятся нескольких независимых процессоров. В AS/400 это, несомненно, будет кристалл с несколькими процессорами как узел SMP, но есть и другие возможности. Вообразите себе на мгновение, что мы можем динамически назначать процессорам одной микросхемы разные функции. Например, сейчас все процессоры выполняют операции ввода-вывода, а в следующий момент некоторые из них переключаются на вычисления. Возможности таких архитектур сегодня трудно даже оценить.
После RISC
Разговоры о технологиях процессоров после RISC вызывают в IBM большие волнения. Стратегия IBM в отношении будущих процессоров серии AS/400е и RS/6000 — PowerPC. Другие компании собираются перейти на новые архитектуры процессоров. Например, новая архитектура Intel IA64 процессора под кодовым наименованием Merced имеет определенные признаки отхода от философии х86. Впрочем, здесь детали еще не вполне ясны, и только время покажет, что все означает для существующих программ ПК. Некоторые производители могут не пережить драматического роста себестоимости процессоров.
Этот рост, как предполагается, наступит в районе 2005 года. Как мы отмечали в "Технология PowerPC" , стоимость предприятия по производству микросхем с размерами транзисторов менее 0,1 микрона достигнет, вероятно, величин порядка 10 миллиардов долларов. В таких условиях вряд ли, скажем, Digital, чей годовой доход примерно равен этой цифре, сможет производить процессоры Alpha. HP уже заявила, что прекратит производство PA-RISC и заменит их процессорами, разработанными совместно с Intel. В прессе довольно часто можно встретить предположения, что HP не станет даже переводить на 64 разряда свою ОС HP-UX, но объединит силы с SCO (Santa Cruz Operations) для создания новой 64-разрядной ОС Unix. Так как современная SCO Unix работает на процессорах Intel, то основания верить в переход HP исключительно на архитектуру IA64, бесспорно, есть. Будет интересно понаблюдать за попытками владельцев HP 9000 перейти на новые процессоры и новую ОС без остановки повседневной работы.
Ни одна конструкция не вечна. Эффект от использования суперскалярной RISC-архитектуры с выполнением команд вне порядка их следования и предсказанием переходов уже стал уменьшаться. Возникает вопрос: что же дальше? Широко обсуждаемая альтернатива RISC — VLIW (Very Long Instruction Word). Сначала полагали, что первый процессор, разрабатываемый Intel вместе НР (Merced) будет использовать VLIW-технологию. Теперь оказывается, что в нем, вероятно, использована гораздо более привычная суперскалярная архитектура и лишь задействованы некоторые концепции VLIW.
Давайте разберемся, почему VLIWтехнология вызывает столь большой интерес. Дело в том, что ее применение может изменить генеральное направление развития современной информатики: от суперскалярных RISCпроцессоров — вспять, к повышению сложности схем на кристалле. Ранее, такие процессоры с повышенной сложностью мы назвали Brainiac. Более простые архитектуры, такие как Speed Demons, могут "крутиться" быстрее и достигать больших тактовых частот. VLIW переносит сложность на компиляторы, позволяя создавать более быстрые процессоры.
Главный недостаток RISC-процессоров и причина сложности аппаратуры — трудности в поддержании загрузки конвейера. Мы уже говорили, что самые суперскалярные RISC-процессоры способны обрабатывать за один цикл лишь несколько команд (как правило, три—четыре), что ограничивает параллелизм выполнения команд на одном процессоре. Четыре команды за один цикл означают лишь четырехкратный параллелизм, а из-за зависимостей между командами и переходов средний показатель вряд ли превзойдет двукратный. В реальности для некоторых задач он даже меньше.
Почему же суперскалярный RISC-процессор не может диспетчировать 816 команд за цикл? Во-первых, мешает ограничение аппаратной технологии: у обычного RISCпроцессора для этого просто мало независимых функциональных узлов. Другая причина в том, что в цикле недостаточно времени, чтобы проанализировать 816 команд, определить, какие функциональные устройства не заняты, и отправить каждую команду на соответствующий узел; увеличение же времени цикла сократит производительность процессора. Третье ограничение — генерировать для каждого цикла по 816 независимых команд не способен компилятор.
Развитие аппаратных технологий позволяет создать однокристальный процессор с 8, 16 и даже большим числом функциональных узлов. Технология компиляторов также развилась достаточно, чтобы распознать многократный параллелизм команд и обеспечить работой больше функциональных узлов.
Но возможность выбирать на выполнение большее число команд бесполезна, если аппаратура суперскалярного RISC-процессора может выполнять одновременно лишь малое их число. VLIW-технология решает эту проблему, снимая с аппаратуры процессора задачу распределения команд. Вместо того чтобы, как в RISC-процессоре, ана лизировать каждую инструкцию в потоке команд и затем распределять их по одной в функциональные узлы, компилятор VLIW генерирует отдельную команду для каждого функционального узла на каждом цикле. Например, если функциональных узлов 16, то компилятор генерирует для каждого процессорного цикла 16 команд; но в отличие от RISC-процессора, который анализирует, в какой функциональный узел направлять каждую команду, VLIWпроцессор просто посылает первую команду в первый узел, вторую — во второй и т. д. Конечно, если на каком-то цикле у компилятора не оказывается команды для некоторого узла, он по-прежнему должен сгенерировать код "нет операции". Так как VLIW-процессор ни о чем не "размышляет", то его время цикла меньше, чем время цикла суперскалярного RISC-процессора. Меньшее время цикла и увеличенная степень параллелизма исполнения команд, достигаемая посредством загрузки большего числа функциональных узлов, дает VLIW преимущества перед RISC.
Вы можете спросить, откуда взялось название "VLIW"2"Very Long Intruction Word" - "Очень длинное слово команды". - Прим. переводчика . Компилятор упаковывает независимые команды для каждого цикла в одно очень длинное слово — отсюда и название. На каждом цикле процессор выбирает по одному такому очень длинному слову из своего кэша команд. Таким образом, если каждая из 16 команд занимает 4 байта, то в результате получается 64-байтовое (512-битное) слово команды. Несомненно, название "очень длинное" здесь уместно.
Генератор кода компилятора (аналог транслятора AS/400) для VLIW-процессора находит процессору достаточно работы на каждом цикле и генерирует соответствующие команды. Если на каждом цикле исполняется от 4 до 20 полезных команд, то на одном процессоре можно добиться производительности на уровне миллиарда команд в секунду.
Самая большая проблема VLIW в том, что генератор кода компилятора должен быть тесно связан с аппаратурой. Чтобы генерировать команды для каждого функционального узла процессора, компилятор должен иметь точную информацию, сколько узлов на микросхеме, какие они и как связаны друг с другом. В результате, практически невозможно использовать код, сгенерированный таким компилятором на любом модифицированном процессоре, так как у них отсутствует двоичная совместимость (или они имеют разное число функциональных узлов).
Ранее предполагалось, что Intel использует в микросхеме Merced трансляцию команд х86 и IA64 в команды VLIW "на лету", аналогично Pentium II и Pentium Pro, где команды х86 и IA64 "на лету" транслируются в последовательность RISC-подобных команд непосредственно микросхемой. Intel называет эти RISC-подобные команды микрооперациями и описывает данный прием как динамическое исполнение. Затем ядро процессора исполняет эти микрооперации конвейерным устройством, которое выглядит точно так же, как и любой RISC-процессор.
Intel не первая применила такой механизм. Точно так же работал процессор Nx586 другого производителя микросхем х86 — NexGen, теперь приобретенной AMD (Advanced Micro Devices). NexGen называла этот подход внутренними командами RISC86. Теперь он использован в другой совместимой с х86 микросхеме AMD — К6. Все эти продукты продемонстрировали, что динамическое исполнение удачно для RISC-процессора. В то же время оно может не очень хорошо сказываться на объеме параллелизма в потоке команд VLIW-процессора.
Далее RISC-процессор анализирует следующие 3–6 команд и направляет их в максимально возможное в данный момент количество узлов процессора. RISC-компиляторы отвечают за помещение в поток команд независимых друг от друга инструкций, чтобы за один цикл можно было отправить на выполнение их максимальное количество. Генератор кода компилятора обрабатывает промежуточное представление и генерирует двоичные машинные команды. Обычно для предоставления процессору достаточного числа независимых команд требуется анализ команд некоторого участка промежуточного представления.
В VLIW-машине число функциональных устройств сильно возрастает, что нужно для достижения большего параллелизма. В ближайшее время можно вполне ожидать появления процессоров, имеющих от 16 до 32 (а в будущем и более) функциональных узлов. Для обеспечения загрузки командами компьютеров такого типа генератору кода компилятора потребуется проанализировать гораздо больший диапазон промежуточного представления. Для генерации команд каждого цикла компилятору придется просмотреть, возможно, сотни и даже тысячи промежуточных команд. При использовании динамического подхода "на лету", для генерации команды VLIW просматривается лишь несколько команд. Способность эффективной загрузки большого числа функциональных узлов в этом случае остается под большим вопросом.
В соответствии с последней информацией от Intel, подход, который будет использован в Merced, будет больше походить на RISC-подобный подход Pentium Pro. В новом процессоре могут быть использованы некоторые базовые концепции VLIW, включая параллельное диспетчирование большого числа команд. Один из руководителей Intel сказал, что они взяли разработки VLIW от HP и разработки CISC/RISC от Intel и собираются создать на их основе нечто новое. Он сказал, что это новый тип архитектуры, который идет дальше не только RISC, но и VLIW. Мы в Рочестере наблюдаем за происходящим с большим интересом.