Финский стартап Flow Computing уже несколько недель горячо обсуждают в полупроводниковой индустрии. Компания утверждает, что разработала дизайн процессора, который значительно опережает классические парадигмы и должен многократно ускорить производительность CPU. Теперь в пресс-релизе более подробно рассказано о планируемых подходах.
Flow Computing хочет разработать IP-блок, который может быть интегрирован в процессор или SoC. Это блок параллельной обработки (Parallel Processing Unit, PPU), структуру которого можно менять. Вариативность основана на количестве ядер на PPU, которое можно менять от 4, 16, 64 до 256 и более. Для смарт-часов достаточно четырех ядер, в то время как смартфон может иметь 64 ядра. Также можно выбрать количество и тип функциональных блоков: ALU, FPU, MU, GU и NU. Даже размер кэша, буферов и Scratchpad можно выбрать в зависимости от области применения.
Что же Flow Computing хочет улучить по сравнению с классическим дизайном CPU? Здесь нужно упомянуть нескольких аспектов. Во-первых, это доступ к памяти. Общий доступ к памяти - основная проблема для многоядерных систем. Он замедляет выполнение, а межсоединения в виде кольца или сетки между ядрами вызывают дополнительные задержки. По мнению Flow Computing, обычные иерархии кэшей вызывают проблемы с когерентностью и масштабируемостью.
В отличие от классического подхода, дизайн Flow Computing призван скрыть задержки обращений к памяти за счет параллельного доступа к памяти других потоков. Проблемы с когерентностью отсутствуют, поскольку кэши не используются. Однако здесь также используется сеть на кристалле (Network-on-Chip, NOC), которая должна быть достаточно быстрой.
Во-вторых, даже если ядра процессора способны параллельно выполнять несколько потоков, согласно Flow Computing, приходится добавлять задержки для синхронизации потоков, поскольку они зависят друг от друга. Синхронизация может стоить от 100 до 1.000 тактов.
Для Flow FPU такая синхронизация не требуется, поэтому одновременно могут выполняться несколько операций, не зависящих друг от друга.
При использовании Flow FPU возможно 100-кратное увеличение производительности процессора. Flow Computing называет его SuperCPU. Опубликованные на данный момент подробности доступны на сайте Flow Computing. Однако там все не так детально, как хотелось бы.
Flow Computing хочет предложить свой FPU в качестве IP, который вендоры смогут лицензировать. Уже ведутся переговоры с производителями процессоров, такими как AMD, Apple, ARM, Intel, NVIDIA, Qualcomm и Tenstorrent.
Возвращение Cell от IBM
Те, кто знаком с архитектурой процессоров, наверняка заметят, что основные принципы Flow FPU довольно близки к процессору Cell от IBM. Cell расшифровывается как Cell Broadband Engine и представляет собой конвейерную архитектуру многоядерных процессоров, предназначенную для параллельных вычислений.
Процессоры Cell состояли из восьми синергетических элементов обработки (Synergistic Processing Elements, SPE), которые, в свою очередь, имели АЛУ. Имелась лишь небольшая локальная память объемом 256 кбайт, за пределами которой обмен данными с основной памятью осуществлялся только через контроллер (MFC, Memory Flow Controller). Здесь также не было кэшей, а только вышеупомянутая локальная память SRAM, что значительно снижало задержки по сравнению с архитектурой процессора, поддерживающей кэши – такой, какой мы ее знаем до сих пор. Не было необходимости в сложной поддержке внеочередного выполнения или предсказании переходов.
В период с 2006 по 2008 год IBM выпустила на рынок несколько разработок. Sony использовала процессор Cell с семью SPE в PlayStation 3. Теоретическая пиковая производительность процессоров Cell была значительно выше, чем у Pentium 4 в то время. В 2012 году IBM прекратила продажи серверов с процессорами Cell. На тот момент в них уже преобладали процессоры x86, и они выигрывали за счет большей гибкости программного обеспечения.