FPGA CPU

Jun 20, 2013 18:10

Вынесу из комментов дисскуссию с mithraen:

akuklev: А в баллистические переключатели я верю, как верю в спинтронику (обходить тепловыделение), в достижимость атомарного масштаба электроники (одноатомные, не считая подводящих контактов, транзисторы уже делали) и в графен (по причине высоченной скорости движения электронов в нём и средней длинны свободного полёта электронов в 60 микрон) и FPGA, потому что на сверхмалых масштабах мы сможем делать только полностью регулярные структуры, причём с определённой долей неизбежного брака на каждом полученном чипе, а значит софтовое программирование чипа в электрическую цепь (причём с индивидуальными для каждого чипа байпасами бракованных зон) единственное спасение.

mithraen: Для подобных процессоров мне кажется куда вероятнее применение не подхода FPGA, а размещения на одном кристалле большого количества упрощенных процессоров, часть из которых окажется бракованными. У FPGA ради универсальности слишком большую часть площади кристалла придется отдавать под проводники. [..]

akuklev: Если чип не плоский, а очень многослойный, большое количество связей проблемой не является (см. человеческий мозг), а с большого количества упрощённых процессоров, есть всё-таки проблема с количеством дефектов и возможностью обойти свежепоявляющиеся дефекты. 0.1% дефектных транзисторов в FPGA вообще не снижают измеримо производительность, т.к. 0.1% ячеек просто можно свободно найти быстрым тестом и обойти. А 0.1% дефектов в жестком чипе, даже если там стократная редундантность, это полная неработоспособность: 0.1% для проца размеров Xilinx это 6 миллионов транзисторов, то есть заведомо часть из битых транзисторов будет в каждой из 100 копий "простого процессора".

mithraen: Если ожидается столь большие цифры как 0.1% сбойных ячеек - согласен. При наличии под рукой терагерцовых процессоров делать синтез схемы под каждый физический экземпляр процессора будет вполне реально.

Только я плохо себе представляю как таким образом делать решение, которое бы корректно реагировало на отказ в ячеек уже в процессе работы. Сочетанием обоих методов? Т.е. синтезировать под каждый физический экземпляр что-то сделанное аналогично LEON, да еще и периодически проверять состояние и перегенерировать "прошивку"?

akuklev: Да, так точно.

На данный момент лучшие придуманные методики суб-5-нанометрового паттернинга дают такой порядок брака. Для 5 нм может получится всё улучшить в разы, но при массовом производстве (т.е. не по одиночке иглой STM-микроскопа) транзисторов, состоящих из одного атома, брак будет огромный, я думаю как раз порядка между 0.1 и 0.01%. Притом из-за космического излучения и температуры, приблизительно каждые несколько месяцев в земных условиях будет дохнуть по одному транзистору (в космических условиях и всяких других жестких транзисторы будут дохнуть почти каждый день). Транзисторов много, на фоне 0.1% встроенного брака одиночные сдыхающие транзисторы теряются, но только если уметь быстро детектировать проблему и починиться.

Помогает то, что от термических проблем и ионизирующего излучения
а) транзисторы чаще всего дохнут напрочь (дислокации на линиях исток-сток, SEB = single event burnout), т.е. у них внезапно сопротивление становится условно говоря бесконечным, такое дело легко заметить сразу, смотря за общим сопротивлением участков схемы, там должен быть резкий скачок, каких принципиально не бывает во время нормального функционирования (т. е. нужно непрерывно высокоточно мерять потенциал в нескольких сотнях точек чипа, что заведомо возможно);
б) транзисторы всегда дохнут по-одиночке, поэтому даже дислокации атомов затвора (SEGR = single event gate rupture и SEL = single event latchup, в зависимости от характера дислокации) можно очень быстро детектировать, проверив чётность несколькоих специальных тестовых сигналов (все семейство сигналов должно пройти через все пути всех транзисторов и задействовать каждый транзистор в обоих состояниях, для типового ядра требуется подать несколько сотен сигналов, чтобы обойти всё). Такая проверка занимает микросекунды и может проводиться, скажем, раз в секунду;
в) дохнет только одно ядро, в то время как на остальных можно как раз перегенерировать прошивку сдохшего.

Можно, конечно, использовать везде логику LEON'а и таким образом добиться того, чтобы все Single Event Effects (SEU, SEL, SEGR, SEB) сходу детектировались и на лету исправлялись, без потерь данных и необходимости откатывать и повторять что-либо. Будет процессор пригодный для космоса и нутра атомных электростанций. Однако в этом случае количество необходимых транзисторов для реализации схемы возрастёт приблизительно в три раза, а быстродействие соответственно упадёт приблизительно на треть.

Побочные ветви дискуссии:
mithraen: Только все же я предполагаю что блоки размером с LUT'ы у Xilinx'ов это слишком мелкие блоки. Вон в тех же Virtex'ах и даже в относительно новых Spartan'ах кроме LUT'ов есть еще различные специализированные блоки, вроде математических, тонко размазанные по чипу.

akuklev: Согласен, так может быть значительно лучше. Единственное, может получиться, что можно если нужен атомарный масштаб и миллиардно-массовое производство, то делать получится только однородную структуру, т.е. копии одной и той же ячейки во всех направлениях 2^n раз при помощи методов вроде PCR-реакции в биологии.

mithraen: А вообще идея FPGA в качестве CPU мне нравится, вот только нынешним производителям процессоров она очень не понравится. Ибо возможность менять архитектуру, добавлять новые команды и т.д. легким движением руки - это для них баг, а не фича.

akuklev: Да, будут патентовать прошивки, DRMмить всё что можно и т.д. Будет война, конечно, на эту тему. Но технические преимущества в случае атомарной электроники таки перевешивают, судя по всему. Топовые производители запросто сделают FPGашки, которые перепрошить можно только обладая ключом, который они будут зверски хранить. Потом кто-нибудь хакнет такую FPGашку STM-микроскопом, удалив с точностью хирурга DRM-блоки. Потом его будут ловить как какого-нибудь Ассанжа или Ким ДотКома. В общем, запасёмся попкорном. :-)

А может всякий Intel с AMD не успеет, и первыми такой процессор сделает Xilinx, в результате чего первым ничего не останется, кроме как сконцентрироваться на дизайне прошивок. Станут так сказать софтвер-фирмой.
Previous post Next post
Up