Процессоры пятого поколения
Процессоры пятого поколения
В течение нескольких следующих лет серия AS/400е будет использовать процессоры PowerPC. Как мы уже говорили, третье и четвертое поколение процессоров, разработанных в Рочестере, будет применяться на протяжении всего времени выпуска версии 4 и далее. Эти же процессоры используются моделями RS/6000. (IBM обсуждала идею конвергенции процессоров между AS/400 и RS/6000 для коммерческих приложений с момента начала работ над PowerPC, но не смогла осуществить ее в первом поколения процессоров AS/400.)
Процессоры AS/400 первого и второго поколений поддерживали только режим активных тегов, а все процессоры третьего и четвертого поколения — режимы как активных, так и неактивных тегов. Как мы уже упоминали, на этих процессорах также работают стандартные интерфейсы ввода-вывода, на них возможна установка как OS/400, так и других ОС PowerPC.
В главе 2 обсуждался мощный процессор 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 года.
Фактически, мы уже идем по этому пути. У каждого процессора четвертого поколения — два полных набора регистров на одном кристалле. Аппаратура процессора может попеременно использовать их то для одного, то для другого потока управления в программе. (Процесс может иметь одну или несколько единиц исполнения, называемых потоками, — об этом рассказано в главе 9). Когда говорят о параллелизме внутри процесса, обычно подразумевают, что несколько потоков выполняются одновременно на нескольких процессорах. Однако выполнение нескольких потоков возможно и на единственном процессоре с несколькими наборами регистров, которые аппаратура использует попеременно. Такой процессор называется многопоточным (multithreaded).
В главе 2 мы говорили, что современные процессоры обречены на простои во много циклов из-за промахов кэшей и длительного обмена с памятью. Чтобы предотвратить потери, многопоточный процессор может использовать такие циклы для исполнения команд из другого потока, что повышает загрузку процессора, и, таким образом, производительность. В конце 70-х годов суперкомпьютер на неоднородных элементах HEP (heterogeneous element processor) ныне несуществующей фирмы Denelcor продемонстрировал поддержку процессором до 16 потоков команд.
Многопоточные процессоры отлично вписываются в концепцию AS/400. Сегодня даже в самых малых системах AS/400 установлено не менее двух процессоров: основной и IOP. В будущем все IOP перейдут на PowerPC, и тогда многопоточные процессоры появятся на всех AS/400. Например, один набор регистров на микросхеме процессора третьего поколения может использоваться для основного процессора, а второй — для IOP, а значит можно будет выпускать дешевые модели, использующие лишь одну микросхему.
Весьма вероятен и такой вариант использования многопоточности: с появлением в 1998 году встроенной поддержки потоков каждая процессорная микросхема будет поддерживать несколько потоков процесса.
А теперь попробуем заглянуть еще дальше. Придет время, когда на одной микросхеме разместятся нескольких независимых процессоров. В AS/400 это, несомненно, будет кристалл с несколькими процессорами как узел SMP, но есть и другие возможности. Вообразите себе на мгновение, что мы можем динамически назначать процессорам одной микросхемы разные функции. Например, сейчас все процессоры выполняют операции ввода-вывода, а в следующий момент некоторые из них переключаются на вычисления. Возможности таких архитектур сегодня трудно даже оценить.