Sur un FPGA (comme en électronique sur un ASIC), quand tu le "programmes", en fait tu programmes les X millions d'unités qui calculent des fonctions booléennes de 4 ou 5 bits vers 1 bit.
Contrairement au logiciel, il n'y a pas (ou très peu) de mémoire, et jamais en quantité "virtuellement illimitée" mais toujours en quantité exacte à définir dès le début. Un peut comme si toutes les dimensions étaient hardcodées à la compilation en soft. Par exemple, dans un CPU, tout est hardcodé : la taille des instructions, leur séquencement en micro-instructions, le nombre des registres, leur taille, etc.
Autant dire qu'il est très certainement impossible de faire exactement ce que tu décris dans un FPGA. Par contre, il peut tout à fait servir à accélérer comme un coprocesseur des calculs qui seraient coûteux en soft, parallélisables ou pipelinables, et qui ne nécessitent pas trop de données. Pour la compilation, je ne sais pas, par contre ça peut s'envisager pour la sécurité (calculs crypto pas toujours hyper efficaces en soft, c'est pour ça qu'Intel a proposé les instructions AES et que VIA et AMD (Geode) avaient des coprocesseurs crypto), pour des calculs d'encodage ou de décodage vidéo, etc.
# Ressources contraintes
Posté par khivapia . En réponse au message Utiliser un FPGA pour accélérer les compilations ?. Évalué à 6.
Sur un FPGA (comme en électronique sur un ASIC), quand tu le "programmes", en fait tu programmes les X millions d'unités qui calculent des fonctions booléennes de 4 ou 5 bits vers 1 bit.
Contrairement au logiciel, il n'y a pas (ou très peu) de mémoire, et jamais en quantité "virtuellement illimitée" mais toujours en quantité exacte à définir dès le début. Un peut comme si toutes les dimensions étaient hardcodées à la compilation en soft. Par exemple, dans un CPU, tout est hardcodé : la taille des instructions, leur séquencement en micro-instructions, le nombre des registres, leur taille, etc.
Autant dire qu'il est très certainement impossible de faire exactement ce que tu décris dans un FPGA. Par contre, il peut tout à fait servir à accélérer comme un coprocesseur des calculs qui seraient coûteux en soft, parallélisables ou pipelinables, et qui ne nécessitent pas trop de données. Pour la compilation, je ne sais pas, par contre ça peut s'envisager pour la sécurité (calculs crypto pas toujours hyper efficaces en soft, c'est pour ça qu'Intel a proposé les instructions AES et que VIA et AMD (Geode) avaient des coprocesseurs crypto), pour des calculs d'encodage ou de décodage vidéo, etc.