Universitat Autònoma de Barcelona. Departament de Microelectrònica i Sistemes Electrònics.
Els últims avenços en els sistemes reconfigurables han fet possible que les darreres famílies de FPGAs tinguin prou recursos per permetre la implementació de sistemes multiprocessadors utilitzant més de 100 nuclis (soft-core) en una única FPGA. En aquesta tesis presento com implementar solucions basades en aquests sistemes i dos escenaris on aquests sistemes tenen interès. Les FPGAs s’utilitzen cada vegada més en la computació d’altes prestacions ja que poden arribar a oferir més eficiència energètica que altres arquitectures com ara CPUs o GPGPUs. Tanmateix, la baixa programabilitat d’aquests sistemes, fruit de l’ús de llenguatges HDL és un inconvenient que limita la seva adopció. La introducció recent de fluxos de disseny per FPGA basats en OpenCL és un avenç per reduir la dificultat de programació, però malgrat tot, produeix arquitectures de propòsit específic que no poden reutilitzar-se per altres aplicacions a no ser que es reconfiguri la plataforma. Construint many-soft-cores que utilitzin acceleradors simples es poden aconseguir prestacions i eficiència energètica i tot i així, encara disposar d’un sistema útil per executar altres aplicacions. Per fer-ho possible les eines de disseny actual per FPGA s’han complementat per afegir suport per construir arquitectures many-soft-core, proporcionar models de programació paral·lels i mètodes eficients per analitzar i optimitzar els dissenys. Per altra banda, es mostra com els mateixos mètodes es poden utilizar per desenvolupar un sistema de temps real i alts nivells de seguretat mitjançant l’aïllament de tasques en els diferents nuclis del sistema.
The latest advances on reconfigurable systems resulted in FPGA devices with enough resources to implement multiprocessing systems with more than 100 soft-cores on a single FPGA. In this thesis I present how to implement solutions based on such systems and I present two scenarios where those kind of sytems would be valuable. FPGAs are increasingly being used in HPC computing as they can bring higher energy efficiency than other alternative architectures such as CPUs or GPGPUs. However, the programmability barrier imposed by HDL languages is a serious drawback that limits their adoption. The recent introduction of OpenCL toolchains for FPGAs is a step towards destroying the barrier, but still produce application specific designs that cannot be reused for other general purpose computing unless the platform is reconfigured. Building many-soft-cores using simple hardware accelerators can bring performance and energy efficiency and still provide a general purpose system to be used for different applications. To make it possible the current FPGA toolchains has been complemented to add support for fast many-soft-core platform description, provide convenient parallel programming models, and efficient methods to optimize the designs. On the other hand I show how the same methods can be applied to implement a system using a task isolation approach to meet the requirements of a hard real-time safety critical system.
FPGA; Multiprocessor; Multiprocessador; Parallel programming; Programació paral·lela
621.3 Electrical engineering
Tecnologies