Разработан чип, выполняющий задачи центрального процессора без его участия
«Мы создаём нечто, обладающее возможностями центрального процессора, но на один-два порядка более эффективное», — считает соучредитель компании Брэндон Люсия.
Ключевым нововведением стало изобретение архитектуры, которая позволяет размещать инструкции любой программы на кристалле, а не передавать их последовательно из памяти, как это делается сейчас в процессорах, основанных на архитектуре фон Неймана.
Архитектура фон Неймана доминировала в вычислительной технике на протяжении десятилетий. По сути, она считывает из памяти инструкцию, которая сообщает процессору, что делать с данными: прибавить их к чему-то, перевернуть и т. д. — и помещает результат в память. Затем она считывает следующую инструкцию, и следующую, и так далее.
Звучит просто, но на самом деле это требует больших затрат. «Несколько миллиардов раз в секунду вы извлекаете инструкцию из памяти. Эта операция требует затрат энергии», — говорит Люсия. Кроме того, чтобы процесс не останавливался, современные процессоры должны предугадывать, какая инструкция будет следующей, что требует применения логики под названием прогнозирование ветвлений и дополнительных затрат.
Вместо этого E1 отображает последовательность инструкций в виде пространственного пути, по которому перемещаются данные. По сути, E1 представляет собой массив «плиток». Каждая из них похожа на упрощённое процессорное ядро, способное выполнять набор инструкций, но лишённое выборки инструкций, прогнозирования ветвлений и других вспомогательных функций. Плитки соединены между собой в специально разработанную программируемую сеть.
Компилятор E1, называемый effcc Compiler, считывает программу, написанную на C или другом распространённом языке для других платформ, и сопоставляет каждую инструкцию в программе плитке. Затем он настраивает сеть таким образом, чтобы данные поступали на одну плитку, обрабатывались, а результат становился входными данными для следующего плитки — и всё это в правильной последовательности для выполнения программы. Когда последовательность разветвляется, например, когда программа встречает конструкцию if/then/else, пространственная структура плиток тоже меняется. «Это как стрелочный перевод на железной дороге», — говорит Люсия.
«Существуют и другие архитектуры, основанные на потоковой передаче данных», — отмечает Люсия. TPU от Google и чипы Inferentia от Amazon, например, разработаны на основе архитектуры потоковой передачи данных, называемой систолическим массивом. Но систолические массивы и другие решения, основанные на потоковой передаче данных, ограничены подмножеством всех возможных путей передачи данных, которые могут потребоваться программному обеспечению.
В отличие от этого, сетевая структура E1 позволяет использовать любой произвольный путь, который может запросить программа. Решающее значение здесь имеет способность структуры поддерживать так называемые произвольные циклы, например цикл while. (Представьте: «пока горит красный свет, жми на тормоз».) Для таких циклов требуется канал обратной связи. «Оказывается, это сложнее, чем кажется на первый взгляд», — говорит Люсия. Структура E1 может передавать значения по каналам обратной связи таким образом, чтобы это позволяло выполнять вычисления общего назначения. «Многие другие архитектуры потоковой передачи данных не подходят для решения общих задач, потому что не могут справиться с этой задачей… Нам потребовались годы, чтобы сделать всё правильно».
Сообщение Разработан чип, выполняющий задачи центрального процессора без его участия появились сначала на Время электроники.