Xputer es un diseño de computadora reconfigurable propuesto por el científico informático Reiner Hartenstein. Hartenstein utiliza varios términos para describir las distintas innovaciones del diseño, entre ellos config-ware, flow-ware, morph-ware y "anti-machine" .
El Xputer representa un cambio de la arquitectura tradicional de computadoras de Von Neumann hacia una arquitectura de " unidad lógica aritmética (ALU) blanda" de grano grueso . [1] El paralelismo se logra mediante elementos configurables conocidos como matrices de rutas de datos reconfigurables (rDPA), organizadas en una matriz bidimensional de ALU similar a KressArray . [1] [2] [3]
La arquitectura Xputer está basada en flujo de datos y es la contraparte de la arquitectura informática de von Neumann basada en instrucciones .
La arquitectura Xputer fue una de las primeras arquitecturas reconfigurables de grano grueso [2] y consiste en una matriz de rutas de datos reconfigurables (rDPA) organizada como una matriz bidimensional de ALU (rDPU). [2] El ancho de bus entre las ALU era de 32 bits en la primera versión de Xputer. [2]
Las ALU (también conocidas como rDPU) se utilizan para calcular una única operación matemática, como suma, resta o multiplicación, y también se pueden utilizar puramente para enrutamiento. [2]
Las ALU están conectadas en malla a través de tres tipos de conexiones, y el flujo de datos a lo largo de estas conexiones es administrado por una unidad de generación de direcciones. [2]
Los programas para Xputer se escriben en lenguaje C y se compilan para su uso en Xputer utilizando el compilador CoDeX escrito por el autor. [2] El compilador CoDeX asigna partes adecuadas del programa C a la estructura rDPA de Xputer. [2] El resto del programa se ejecuta en el sistema host, como una computadora personal .
Una matriz de rutas de datos reconfigurables (rDPA) es un dispositivo semiconductor que contiene unidades de rutas de datos reconfigurables e interconexiones programables, propuesto por primera vez por Rainer Kress en 1993, en la Universidad de Kaiserslautern .
En lugar de que los FPGAs ( matrices de puertas programables en campo ) tengan bloques lógicos configurables (CLB) de un solo bit, los rDPA tienen unidades de ruta de datos reconfigurables (rDPU) de varios bits de ancho (por ejemplo, ancho de ruta de 32 bits).
Cada rDPU se puede configurar para realizar una función individual. Estas rDPU y sus interconexiones se pueden programar después del proceso de fabricación por el cliente/diseñador (de ahí el término "reconfigurable") para que el rDPA pueda realizar cualquier cálculo complejo que se necesite. Debido a que las rDPU tienen varios bits de ancho (por ejemplo, 32 bits), hablamos de reconfigurabilidad de grano grueso, en contraste con los FPGA con bloques lógicos configurables de un solo bit de ancho, llamados reconfigurables de ganancia fina.
Los rDPA se programan estructuralmente a partir de un código fuente "config-ware" , compilado en redes de tuberías para ser mapeados en el rDPA. Los rDPA no están controlados por flujo de instrucciones y no tienen búsqueda de instrucciones en tiempo de ejecución. Las rDPU no tienen un contador de programa. [4]