Xputer — это проект реконфигурируемого компьютера , предложенный ученым-компьютерщиком Райнером Хартенштейном. Хартенштейн использует различные термины для описания различных инноваций в проекте, включая config-ware, flow-ware, morph-ware и «анти-машина».
Xputer представляет собой переход от традиционной архитектуры компьютера фон Неймана к крупнозернистой архитектуре «мягкого арифметико-логического устройства (АЛУ)». [1] Параллелизм достигается с помощью настраиваемых элементов, известных как реконфигурируемые массивы каналов передачи данных (rDPA), организованных в двумерный массив АЛУ, аналогичный KressArray . [ 1] [2] [3]
Архитектура Xputer основана на потоке данных и является аналогом архитектуры компьютера фон Неймана, основанной на инструкциях .
Архитектура Xputer была одной из первых крупнозернистых реконфигурируемых архитектур [2] и состояла из реконфигурируемого массива каналов данных (rDPA), организованного как двумерный массив АЛУ (rDPU). [2] Ширина шины между АЛУ в первой версии Xputer составляла 32 бита. [2]
АЛУ (также известные как rDPU) используются для вычисления одной математической операции, такой как сложение, вычитание или умножение, а также могут использоваться исключительно для маршрутизации. [2]
АЛУ соединены в ячеистую сеть посредством трех типов соединений, а поток данных по этим соединениям управляется блоком генерации адресов. [2]
Программы для Xputer написаны на языке C и скомпилированы для использования на Xputer с помощью компилятора CoDeX, написанного автором. [2] Компилятор CoDeX отображает соответствующие части программы на языке C на структуру rDPA Xputer. [2] Оставшаяся часть программы выполняется на хост-системе, например, на персональном компьютере .
Реконфигурируемый массив каналов передачи данных (rDPA) — это полупроводниковое устройство, содержащее реконфигурируемые блоки каналов передачи данных и программируемые межсоединения, впервые предложенное Райнером Крессом в 1993 году в Университете Кайзерслаутерна .
Вместо ПЛИС ( программируемых пользователем вентильных матриц ), имеющих однобитные конфигурируемые логические блоки (CLB), rDPA имеют многобитные (например, 32-битные) реконфигурируемые блоки тракта данных (rDPU).
Каждый rDPU может быть настроен на выполнение индивидуальной функции. Эти rDPU и межсоединения могут быть запрограммированы после процесса производства заказчиком/дизайнером (отсюда и термин «реконфигурируемый»), так что rDPA может выполнять любые необходимые сложные вычисления. Поскольку rDPU имеют ширину в несколько бит (например, 32 бита), мы говорим о грубозернистой реконфигурируемости — в отличие от FPGA с конфигурируемыми логическими блоками шириной в один бит, называемыми мелкозернистой реконфигурируемостью.
rDPA структурно программируются из исходного кода «config-ware» , скомпилированного в конвейерные сети для отображения на rDPA. rDPA не управляются потоком инструкций и не имеют выборки инструкций во время выполнения. rDPU не имеют счетчика программ. [4]