Выбрать главу

То, что предлагает Intel, как ни крути, сильно напоминает Cell, только с гораздо большим количеством ядер: если в детище IBM и Sony их всего девять, то в экспериментальном кристалле Intel — добрых восемьдесят (матрица 8x10). И там и там ядра максимально упрощены и функционируют на частоте 3—4 ГГц; и там и там, чтобы снять проблему недостаточной пропускной способности, каждому ядру выделяется кусочек локальной памяти, с которым оно может работать без оглядки на всех остальных; и там и там используется сложнейшая система связи, связывающая отдельные ядра в многомерную сетку, в которой передаются данные. Разница только в реализации: если IBM и Sony используют сравнительно традиционные технологии, то Intel — принципиально новые. Например, в Cell локальная память реализована как упрощенный аналог кэш-памяти первого уровня и является частью кристалла процессора. В терапроцессоре же используется технология трехмерной упаковки оперативной памяти — на подложке строится «сэндвич» из кристаллов оперативной памяти и лежащего над ними кристалла процессора, что позволяет разместить на той же площади куда больше и ядер, и подключенной к ним памяти. В ядрах Cell нет кэш-памяти и тем более — когерентной (хранящей общие для всех ядер данные), в терапроцессоре — есть. В качестве внешнего интерфейса для Cell используется «электронная» технология, для терапроцессора планируется оптический канал на порядок большей пропускной способности и т. д.

Впрочем, хватает и уникальных наработок — например, в терапроцессоре планируется использовать так называемую транзакционную оперативную память, позволяющую объединить несколько операций чтения-записи в одну транзакцию, для которой гарантируется защита от одновременного чтения-записи со стороны других ядер. Например, если у нас есть счетчик — ячейка памяти, к которой обращаются все ядра, каждый раз увеличивая его на единичку, то в «классическом» варианте, когда контроллер памяти просто обслуживает запросы на чтение и на запись от всех ядер, легко может возникнуть следующая ситуация: скажем, первое ядро прочитало текущее значение счетчика, но не успело записать новое, тогда как счетчик — с уже устаревшим значением — читает второе ядро. Если, например, в счетчике было записано число 11, то и первое, и второе ядро в этом случае прочитают «11», вычислят 11+1 = 12 и два раза подряд (сперва одно, потом второе) запишут в счетчик это значение вместо правильного — 11+1+1 = 13. Когда же чтение и запись представляют собой одну транзакцию, такой проблемы не возникает — пока первое ядро не запишет в счетчик 12, второе не сможет прочитать его значения. Механизм еще требует доработки и уточнения, но уже понятно, что этот способ намного быстрее, чем сегодняшняя практика «защиты» счетчика, сводящаяся к тому, что, прочитав счетчик, процессорное ядро ставит «блокировку», запрещающую остальным процессорам что-либо читать или писать из памяти, пока туда не будет записан результат вычислений.

Из других интересных наработок отмечу кэш-память с разделением приоритетов (QoS), в которой данные одного приложения интенсивно вытесняются из кэшей определенных уровней, а другого, более чувствительного к задержкам оперативной памяти, — остаются там до последнего, причем более часто используемые данные — в кэшах высших уровней; усовершенствованные технологии виртуализации, направленные на использование с операционными системами и языками программирования следующих поколений, «заточенных» под высокопараллельные вычисления; интеграция высокоскоростных средств ввода-вывода, вплоть до сетевого контроллера, непосредственно на кристалл процессора.

В отличие от клэйтроники, терапроцессоры — дело вполне обозримого будущего. CEO Intel Пол Отеллини даже демонстрировал кремниевую пластину с соответствующими сэмплами — правда, не рабочими, а всего лишь экспериментально-отладочными, так что до коммерческого продукта дело дойдет еще не скоро (во всяком случае не раньше, чем Intel перейдет на 45-нм технологический процесс).

Кремниевая фотоника

Хотя чистый кремний, с нашей точки зрения, абсолютно не похож на содержащее этот же кремний стекло, в определенных электромагнитных диапазонах (в частности, в инфракрасном свете) он почти прозрачен (что, кстати говоря, используется при отладке микропроцессоров — наблюдая за тем, как они излучают свет, можно многое сказать о функционировании их элементов). Вместе с тем у квантов света в качестве носителей информации по сравнению с электронами есть множество плюсов. Переменный электрический ток, текущий по проводу, образует вокруг себя электромагнитное поле, которое возбуждает электрический ток в соседних проводах — возникают наводки и помехи, тем более сильные, чем ближе расположены в кристалле проводники и выше частота (а значит, и пропускная способность). С оптикой таких проблем нет. По одному проводнику очень трудно передавать большое количество разной информации — согласно фундаментальным принципам теории связи, общий объем передаваемой информации будет ограничен шириной спектра сигнала (грубо говоря — максимально достижимой тактовой частотой для этого проводника), а она для сегодняшних металлов не слишком высока. Частотный диапазон оптического канала связи на несколько порядков выше — а потому в нем легко можно совместить несколько «узкополосных» сигналов (свет «разных цветов»), причем с большей скоростью на один канал, чем у «медного» проводника. Наконец, оптический сигнал не так сильно затухает и практически не подвержен наводкам от бытовой техники, радиостанций, сигналов радара и всему прочему, что засоряет радиоэфир. Словом, оптика как средство передачи информации выглядит гораздо интереснее электрического тока, и кремний прозрачен для определенного инфракрасного света — а потому уже много лет предпринимаются попытки создать процессор если не оптический, то хотя бы использующий оптику для передачи данных на сравнительно большие (по меркам кристалла) расстояния.