18 research outputs found
A Bibliography of NPS Space Systems Related Student Research, 2013-2022
Dudley Knox Library, Naval Postgraduate School.Approved for Public Release; distribution is unlimite
A Modular Platform for Adaptive Heterogeneous Many-Core Architectures
Multi-/many-core heterogeneous architectures are shaping current and upcoming generations of compute-centric platforms which are widely used starting from mobile and wearable devices to high-performance cloud computing servers. Heterogeneous many-core architectures sought to achieve an order of magnitude higher energy efficiency as well as computing performance scaling by replacing homogeneous and power-hungry general-purpose processors with multiple heterogeneous compute units supporting multiple core types and domain-specific accelerators. Drifting from homogeneous architectures to complex heterogeneous systems is heavily adopted by chip designers and the silicon industry for more than a decade. Recent silicon chips are based on a heterogeneous SoC which combines a scalable number of heterogeneous processing units from different types (e.g. CPU, GPU, custom
accelerator).
This shifting in computing paradigm is associated with several system-level design challenges related to the integration and communication between a highly scalable number of heterogeneous compute units as well as SoC peripherals and storage units. Moreover, the increasing design complexities make the production of heterogeneous SoC chips a monopoly for only big market players due to the increasing development and design costs. Accordingly, recent initiatives towards agile hardware development open-source tools and microarchitecture aim to democratize silicon chip production for academic and commercial usage.
Agile hardware development aims to reduce development costs by providing an ecosystem for open-source hardware microarchitectures and hardware design processes. Therefore, heterogeneous many-core development and customization will be relatively less complex and less time-consuming than conventional design process methods.
In order to provide a modular and agile many-core development approach, this dissertation proposes a development platform for heterogeneous and self-adaptive many-core architectures consisting of a scalable number of heterogeneous tiles that maintain design regularity features while supporting heterogeneity. The proposed platform hides the integration complexities
by supporting modular tile architectures for general-purpose processing cores
supporting multi-instruction set architectures (multi-ISAs) and custom hardware accelerators. By leveraging field-programmable-gate-arrays (FPGAs), the self-adaptive feature of the many-core platform can be achieved by using dynamic and partial reconfiguration (DPR) techniques.
This dissertation realizes the proposed modular and adaptive heterogeneous many-core platform through three main contributions. The first contribution proposes and realizes a many-core architecture for heterogeneous ISAs. It provides a modular and reusable tilebased architecture for several heterogeneous ISAs based on open-source RISC-V ISA. The modular tile-based architecture features a configurable number of processing cores with different RISC-V ISAs and different memory hierarchies.
To increase the level of heterogeneity to support the integration of custom hardware accelerators, a novel hybrid memory/accelerator tile architecture is developed and realized as the second contribution. The hybrid tile is a modular and reusable tile that can be configured at run-time to operate as a scratchpad shared memory between compute tiles or as an accelerator tile hosting a local hardware accelerator logic. The hybrid tile is designed and implemented to be seamlessly integrated into the proposed tile-based platform.
The third contribution deals with the self-adaptation features by providing a reconfiguration management approach to internally control the DPR process through processing cores (RISC-V based). The internal reconfiguration process relies on a novel DPR controller targeting FPGA design flow for RISC-V-based SoC to change the types and functionalities of compute tiles at run-time
Analysis and Mitigation of Remote Side-Channel and Fault Attacks on the Electrical Level
In der fortlaufenden Miniaturisierung von integrierten Schaltungen werden physikalische Grenzen erreicht, wobei beispielsweise Einzelatomtransistoren eine mögliche untere Grenze für Strukturgrößen darstellen.
Zudem ist die Herstellung der neuesten Generationen von Mikrochips heutzutage finanziell nur noch von großen, multinationalen Unternehmen zu stemmen.
Aufgrund dieser Entwicklung ist Miniaturisierung nicht länger die treibende Kraft um die Leistung von elektronischen Komponenten weiter zu erhöhen.
Stattdessen werden klassische Computerarchitekturen mit generischen Prozessoren weiterentwickelt zu heterogenen Systemen mit hoher Parallelität und speziellen Beschleunigern.
Allerdings wird in diesen heterogenen Systemen auch der Schutz von privaten Daten gegen Angreifer zunehmend schwieriger.
Neue Arten von Hardware-Komponenten, neue Arten von Anwendungen und eine allgemein erhöhte Komplexität sind einige der Faktoren, die die Sicherheit in solchen Systemen zur Herausforderung machen.
Kryptografische Algorithmen sind oftmals nur unter bestimmten Annahmen über den Angreifer wirklich sicher.
Es wird zum Beispiel oft angenommen, dass der Angreifer nur auf Eingaben und Ausgaben eines Moduls zugreifen kann, während interne Signale und Zwischenwerte verborgen sind.
In echten Implementierungen zeigen jedoch Angriffe über Seitenkanäle und Faults die Grenzen dieses sogenannten Black-Box-Modells auf.
Während bei Seitenkanalangriffen der Angreifer datenabhängige Messgrößen wie Stromverbrauch oder elektromagnetische Strahlung ausnutzt, wird bei Fault Angriffen aktiv in die Berechnungen eingegriffen, und die falschen Ausgabewerte zum Finden der geheimen Daten verwendet.
Diese Art von Angriffen auf Implementierungen wurde ursprünglich nur im Kontext eines lokalen Angreifers mit Zugriff auf das Zielgerät behandelt.
Jedoch haben bereits Angriffe, die auf der Messung der Zeit für bestimmte Speicherzugriffe basieren, gezeigt, dass die Bedrohung auch durch Angreifer mit Fernzugriff besteht.
In dieser Arbeit wird die Bedrohung durch Seitenkanal- und Fault-Angriffe über Fernzugriff behandelt, welche eng mit der Entwicklung zu mehr heterogenen Systemen verknüpft sind.
Ein Beispiel für neuartige Hardware im heterogenen Rechnen sind Field-Programmable Gate Arrays (FPGAs), mit welchen sich fast beliebige Schaltungen in programmierbarer Logik realisieren lassen.
Diese Logik-Chips werden bereits jetzt als Beschleuniger sowohl in der Cloud als auch in Endgeräten eingesetzt.
Allerdings wurde gezeigt, wie die Flexibilität dieser Beschleuniger zur Implementierung von Sensoren zur Abschätzung der Versorgungsspannung ausgenutzt werden kann.
Zudem können durch eine spezielle Art der Aktivierung von großen Mengen an Logik Berechnungen in anderen Schaltungen für Fault Angriffe gestört werden.
Diese Bedrohung wird hier beispielsweise durch die Erweiterung bestehender Angriffe weiter analysiert und es werden Strategien zur Absicherung dagegen entwickelt
Black-body radiation induced correlated excitation of Potassium Rydberg atoms in tweezer arrays
Im Rahmen dieser Arbeit stellen wir die Realisierung einer neuartigen Plattform zur Quantensimulation mit Kaliumatomen in optischen Pinzetten vor. Wechselwirkungen zwischen den Atomen werden durch die Verwendung von Zuständen mit großen Hauptquantenzahlen, auch bekannt als Rydberg-Zustände, erzeugt. Atome, die zu Rydberg-Zuständen angeregt werden, interagieren durch Dipol-Dipol- oder van-der-Waals-Wechselwirkungen, für die eine große Reichweite charakteristisch ist. Die Wechselwirkung führt zu starken Energieverschiebungen bei typischen Abständen zwischen den gefangenen Atomen.
Wir haben das Experiment für die Erzeugung von Wechselwirkungen durch Off-Resonanz-Dressing eines Rydberg-Zustands geplant. Durch verstimmte Dressing-Wechselwirkung bleibt der Langstreckencharakter des gekoppelten Rydberg-Zustands erhalten. Ein Vorteil von Kalium ist seine Grundzustandsaufspaltung, die eine technisch unkomplizierte Beeinflussung beider Grundzustände ermöglicht, so dass Wechselwirkungen erzeugt werden können, die bisher mit Rydberg-Zuständen nicht realisiert wurden.
In dieser Arbeit wird eine Methode zur Erzeugung optischer Pinzetten durch eine holographische Technik vorgestellt und wie man sie mit einzelnen Kaliumatomen präpariert. Die besondere Kombination von Kalium mit 1064nm-Licht erforderte die Anwendung spezifischer Techniken für die Präparation und Abbildung einzelner Atome. Die Raman-Seitenband-Kühlung wird eingesetzt, um Einschränkungen aufgrund von Inhomogenitäten der Lichtverschiebung zwischen den Fallen abzumildern. Das deterministische Laden einzelner Atome in die optischen Pinzetten hat sich im Falle von 1064nm-Licht als schwierig erwiesen und erforderte die Verwendung von anderem Fallenlicht.
Ein Einzelphotonenschema wird verwendet, um direkt an Rydberg-Zustände bei einer Wellenlänge von 286nm zu koppeln. Dabei wird das UV-Licht dazu verwendet, Atome die in einer eindimensionalen Kette angeordnet sind, durch Rydberg Dressing anzuregen und somit durch die Wechselwirkungsverschiebung Korrelationen zu generieren.
Das System ermöglichte die mikroskopische Untersuchung von Avalanche-Verlusten, die experimentell bei der Realisierung des Rydberg-Dressings beobachtet wurden. Die Ursache für diese Verluste wurde auf das Vorhandensein von Verunreinigungen zurückgeführt, in diesem Fall Rydberg-Atome die durch Schwarkörperstrahlung erzeugt wurden und entgegengesetzte Parität zu den durch das UV gekoppelten Atomen besitzen. Solche Verunreinigungen erleichtern die direkte Anregung der Atome aufgrund von Verschiebungen der Dipol-Dipol-Wechselwirkung, wodurch die Lebensdauer des angezogenen Zustands verringert wird. Derselbe Effekt ist in unserem System zu beobachten, wenn die Atome verstimmt an einen Rydberg-Zustand gekoppelt sind. Durch die Möglichkeit Verluste an einzelnen Atomen zu messen, ist es Möglich Paarkorrelationen zu verwenden, um die Erleichterung der Verluste zu bestätigen und die typische Reichweite dazu zu identifizieren. Wir bestätigen die Dipol-Dipol-Skalierung der Erleichterung, die von den durch die Schwarzkörperstrahlung gekoppelten Zuständen erzeugt wird. Wir können auch die Auswirkung der Bewegung der Rydberg-Atome auf diesen Prozess in unserem System identifizieren. Darüber hinaus wird die Signatur des Avalanche-Verlustes bei der Auswertung von Korrelationen höherer Ordnung beobachtet.
Zusammenfassend stellt diese Arbeit eine neue Plattform für die Quantensimulation mit Kaliumatomen in optischen Pinzetten vor. Wir identifizieren die Ursache für einen begrenzenden Faktor der Rydberg-Dressing-Technik bei Raumtemperatur. Wir schlagen Ideen vor, um dieses Problem entweder dynamisch zu lösen, indem wir die Bewegung des Atoms aus der Atomebene heraus erzwingen, oder indem wir die Verunreinigungen durch optisches Pumpen entfernen.In the framework of this thesis, we introduce the realization of a novel platform for quantum simulation with Potassium atoms in optical tweezers. Interactions between the atoms are created by using states with large principal quantum numbers, also known as Rydberg states. Atoms excited to Rydberg states interact through dipole-dipole or van-der-Waals interactions, which have a long range character. The interaction produces strong energy shifts at typical distances between the trapped atoms.
We planned the experiment for the generation of interactions through off-resonant dressing of a Rydberg state. The off-resonant dressing conserves the long-range character of the coupled Rydberg state. An advantage of Potassium is its ground state splitting that allows for a technically uncomplicated dressing of both ground states with the capability to engineer interactions not realized before with Rydberg states.
This thesis presents a method to generate optical tweezers through a holographic technique and how to prepare them with single Potassium atoms. The particular combination of Potassium with 1064nm light required the application of specific techniques for the preparation and imaging of single atoms. Raman sideband cooling is implemented to mitigate limitations from light shifts inhomogeneities between the traps. The deterministic loading of single atoms into the optical tweezers had been proven difficult in the case of 1064nm light and required the use of different trapping light.
A single-photon scheme is used to directly couple to Rydberg states at a wavelength of 286nm. The UV light allows us to off-resonantly dress atoms prepared in a one-dimensional chain and the generation of quantum correlations between the atoms thanks to the created interaction shift.
The system enabled the microscopic study of avalanche losses that have been experimentally seen during the realization of Rydberg dressing. The cause of such losses was attributed to the presence of impurities, Rydberg atoms with opposite parity to the coupled by UV light, generated by black-body radiation. Such impurities facilitate the direct excitation of atoms due to dipole-dipole interaction shifts, reducing the dressed state lifetime. This same effect can be seen in our system when the atoms are off-resonantly coupled to a Rydberg state. The capacity to identify single atomic losses allows us to use a two-body correlation to confirm the facilitation character of the loss event and to measure the typical facilitation range. We confirm the dipole-dipole scaling of the facilitation generated by the states coupled by black-body radiation. We can also identify the effect of the Rydberg atom motion on the facilitation process in our system. Furthermore, the signature of the avalanche loss is observed with the evaluation of higher-order correlations.
In summary, this thesis presents a new platform for quantum simulation with Potassium atoms in optical tweezers. We identify the cause of one limiting factor of the Rydberg dressing technique at room temperature. We propose ideas to solve this problem either dynamically, forcing the movement of the atom out of the atomic plane, or by removing the impurities through optical pumping
Spiking Neural Networks models targeted for implementation on Reconfigurable Hardware
La tesis presentada se centra en la denominada tercera generación de redes neuronales artificiales, las Redes Neuronales Spiking (SNN) también llamadas ‘de espigas’ o ‘de eventos’. Este campo de investigación se convirtió en un tema popular e importante en la última década debido al progreso de la neurociencia computacional. Las Redes Neuronales Spiking, que tienen no sólo la plasticidad espacial sino también temporal, ofrecen una alternativa prometedora a las redes neuronales artificiales clásicas (ANN) y están más cerca de la operación real de las neuronas biológicas ya que la información se codifica y transmite usando múltiples espigas o eventos en forma de trenes de pulsos.
Este campo ha ido creciendo en los últimos años y ampliado el área de ingenierı́a neuromórfica cuya principal área de trabajo es el uso de VLSI analógicos, digitales, mixtos analógico/digital y software que implementa modelos de sistemas neuronales spiking.
Esta tesis analiza las Redes Neuronales Spiking desde la perspectiva de Aprendizaje Automático, donde la plausibilidad biológica no es el objetivo principal, pero la capacidad de crear algoritmos de inteligencia artificial basados en SNN es uno de los objetivos principales, junto con su viabilidad de implementación de hardware. Con el fin de cumplir con los objetivos, varios modelos neuronales y topologı́as de red son revisados y comparados. La codificación de picos o la representación de datos con los picos también se discute en este trabajo.
El desarrollo de topologı́as SNN y algoritmos capaces de proporcionar capacidades de inteligencia artificial basadas en espigas de entrada al sistema es uno de los principales temas de esta tesis. Sin embargo, se hace también hincapié en su implementación hardware ya que existen modelos complejos para SNN que en muchos casos no son viables para sistemas en tiempo real y requieren de sistemas de alta capacidad computacional para ser ejecutados.
El tema principal de la investigación en este trabajo es la evaluación de algoritmos existentes y el desarrollo de nuevos algoritmos, estructuras de datos y métodos de codificación para la implementación hardware de las redes neuronales de spiking, especialmente dirigidas a FPGA (Field-Programmable Gate Arrays). Los dispositivos FPGA son elegidos debido a sus excelentes capacidades de cálculo paralelo masivo, bajo consumo de energı́a, baja latencia y versatilidad. En los últimos años, las FPGA se convirtieron en una popular plataforma para tareas clásicas de aprendizaje de máquinas, tales como reconocimiento de imágenes, control automático, predicción de series temporales, robótica, etc. Ası́, la tesis investiga todas las cuestiones relacionadas con el despliegue de un sistema completo de hardware basado en espigas, desde la codificación de información externa como entradas hasta la salida final de un sistema de inteligencia artificial basado en SNN, incluida la optimización en la transmisión de datos, y todo ello implementado en arquitecturas hardware que optimizan el rendimiento y permiten la implementación de redes spiking de un elevado número de neuronas.
Se propone una nueva arquitectura simplificada de neuronas de tipo LIF (Leaky Integrate-and-Fire). La neurona se evalúa para redes de tipo Perceptron y Restricted Boltzmann Machine (RBM) para probar su rendimiento. Además, las capacidades de aprendizaje de las redes propuestas se desarrollan mediante la definición de un procedimiento optimizado para el aprendizaje de STDP (Spike Time Dependent Plasticity). Las propuestas de optimización en software son completadas por nuevas arquitecturas de hardware, especialmente diseñadas para la implementación de FPGA.
En lo que se refiere a las arquitecturas de hardware, esta tesis define la llamada ”neurona autómata”, basada en un formato de representación de espigas novedoso también y definido en esta tesis, llamado ‘Variable Timeslot Length Address-Event Representation’ (VTSAER). Este formato tiene una mayor versatilidad que anteriores propuestas de AER, eliminando la necesidad de marcas de tiempo y permitiendo un verdadero sincronismo de cualquier número arbitrario de eventos. La estructura del VTSAER permite procesar la información en las neuronas de espigas como un autómata finito alimentado por eventos. Este nuevo enfoque ayuda a separar el estado del sistema de la tasa de entrada de datos y reducir el número de canales de entrada/salida. Otra novedad propuesta en esta tesis es una arquitectura vectorizada de capas de las redes neuronales. Esta arquitectura permite calcular el estado de cualquier número arbitrario de capas reutilizando los mismos bloques neuronales de hardware varias veces.
Este concepto de procesamiento vectorial de datos se puede aplicar no sólo en las redes neuronales de espigas, sino también en redes neuronales clásicas no-spiking de tipo ANN y otros algoritmos de aprendizaje automático. Con la arquitectura vectorizada y la neurona autómata, el factor limitante para el tamaño de la red es sólo la cantidad de memoria en el FPGA, lo que es una mejora significativa a las implementaciones anteriores. En cuanto a los algoritmos de aprendizaje para SNN, esta tesis describe una nueva
aplicación del algoritmo de aprendizaje de Spike Timing Dependent Plasticity. STDP sigue siendo el algoritmo de aprendizaje más popular para las redes neuronales spiking,derivado de las observaciones de los fenómenos biológicos. Implementaciones de hardware digital de la STDP rara vez se encuentran dado que el algoritmo está utilizando causalidad de sincronización hacia atrás que requiere un empleo significativo de recursos de hardware. La nueva implementación propuesta en esta tesis está resolviendo el problema de causalidad con una sobrecarga de hardware muy pequeña. La versión mejorada de STDP se puede utilizar en redes de número arbitrario de neuronas. El proceso de actualización de pesos es independiente para cada neurona y no afecta al flujo global de entrada de espigas.
La implementación FPGA de algoritmos de codificación visual también se cubre en esta tesis. Se describe la codificación de campos receptivos visuales tipo Gabor y se presentan dos implementaciones de hardware. El método de codificación de campo receptivo es muy similar a la operación de convolución utilizada en redes neuronales no-spiking.
Los campos especı́ficos de orientación de Gabor son importantes en el procesamiento de imágenes, ya que son fenómenos bien estudiados observados en la corteza visual de mamı́feros y se desempeñan bien en el procesamiento de imágenes y en las tareas de codificación de espigas. Las dos propuestas de implementación en FPGA son arquitectura paralela y vectorizada. La comparación se realiza utilizando tamaños de campo receptivo tı́picamente usados en tareas prácticas que muestran las posibilidades de aplicación para cada una de las propuestas de implementación.
Además, la implementación del hardware digital de algoritmos requiere la adaptación de la aritmética, ya que la aritmética de punto fijo se utiliza para evitar la complejidad adicional dada por los cálculos de coma flotante. Por lo tanto, se realiza un extenso estudio de la aritmética de punto fijo en el hardware de codificación y procesamiento de spikes para probar que el punto fijo es capaz de proporcionar la exactitud y precisión requeridas a un menor costo computacional y de recursos. Todos los algoritmos y arquitecturas propuestos se prueban resolviendo problemas clásicos con bases de datos abiertos (open source) para poder hacer una comparación con otros autores: los conjuntos de datos SEMEION e Iris se utilizan en este caso. Con respecto a los resultados de hardware, las arquitecturas digitales propuestas permiten una alta frecuencia de operación de reloj, cercana al máximo permitido por el dispositivo FPGA (alcanza hasta 387MHz). Los algoritmos y arquitecturas propuestos también permiten SNN de tamaño arbitrario, limitándose sólo a la capacidad del dispositivo.
Todas las cuestiones antes mencionadas forman una compleja solución novedosa para la implementación de redes neuronales de espigas en hardware FPGA con velocidad
de procesamiento varios cientos de veces más rápido que las simulaciones de software y una precisión comparable. Los bloques de hardware propuestos son versátiles, capaces de implementar una amplia gama de modificaciones de los algoritmos descritos y adaptar múltiples topologı́as SNN con diferentes números de entradas, número de capas, número de neuronas por capa, número de salidas, longitud de bits y, en general, aquellos parámetros que permiten implementar múltiples formas de SNN. En total, utilizando los bloques de hardware desarrollados en esta tesis, es posible construir un sistema neuromórfico masivo autosuficiente con un ciclo de procesamiento completo hecho dentro de un chip. De este modo, los sistemas neuromórficos podrı́an ser implementados a un costo menor en términos de desarrollo y tiempo de diseño, junto con placas de hardware más simples.This thesis describes a novel architecture of the Spiking Neural Networks implemented
in hardware using Field-Programmable Gate Arrays. By starting from the state of the
art theoretical and practical works, a new approach to the problem is proposed. The
presented work is dealing with both software and hardware topics such as:
• Spiking neural models with focus on their performance and feasibility in hardware.
A novel simplified neuron model is created and tested.
• Learning of SNNs in software and hardware. The well-known learning algorithms
are implemented and tested with the simplified neuron model.
• Data representation and conversion in spiking neural systems. A new version of
Address-Event Representation protocol is proposed, effectively allowing the finite
automata approach to the SNN implementation. A novel hardware architecture
to encode images is presented.
• Hardware platforms’ resources and their usability for SNN implementation. The
latest commercial FPGA devices are evaluated as the prospective platform for
large-scale SNN implementation.
• Spiking perceptron and spiking Restricted Boltzmann machine implementation.
Two popular network models are implemented and tested, utilizing the proposed
neuronal model.
• Neural network learning in hardware. The previously studied algorithms are im-
plemented in the hardware.
The aforementioned material was partially published in two journal and five conference
papers. The system has been fully developed and tested using public domain datasets
Survey of FPGA applications in the period 2000 – 2015 (Technical Report)
Romoth J, Porrmann M, Rückert U. Survey of FPGA applications in the period 2000 – 2015 (Technical Report).; 2017.Since their introduction, FPGAs can be seen in more and more different fields of applications. The key advantage is the combination of software-like flexibility with the performance otherwise common to hardware. Nevertheless, every application field introduces special requirements to the used computational architecture. This paper provides an overview of the different topics FPGAs have been used for in the last 15 years of research and why they have been chosen over other processing units like e.g. CPUs
FPGA structures for high speed and low overhead dynamic circuit specialization
A Field Programmable Gate Array (FPGA) is a programmable digital electronic chip. The FPGA does not come with a predefined function from the manufacturer; instead, the developer has to define its function through implementing a digital circuit on the FPGA resources. The functionality of the FPGA can be reprogrammed as desired and hence the name “field programmable”. FPGAs are useful in small volume digital electronic products as the design of a digital custom chip is expensive. Changing the FPGA (also called configuring it) is done by changing the configuration data (in the form of bitstreams) that defines the FPGA functionality. These bitstreams are stored in a memory of the FPGA called configuration memory. The SRAM cells of LookUp Tables (LUTs), Block Random Access Memories (BRAMs) and DSP blocks together form the configuration memory of an FPGA. The configuration data can be modified according to the user’s needs to implement the user-defined hardware. The simplest way to program the configuration memory is to download the bitstreams using a JTAG interface. However, modern techniques such as Partial Reconfiguration (PR) enable us to configure a part in the configuration memory with partial bitstreams during run-time. The reconfiguration
is achieved by swapping in partial bitstreams into the configuration memory via a configuration interface called Internal Configuration Access Port (ICAP). The ICAP is a hardware primitive (macro) present in the FPGA used to access the
configuration memory internally by an embedded processor. The reconfiguration technique adds flexibility to use specialized ci rcuits that are more compact and more efficient t han t heir b ulky c ounterparts. An example of such an implementation is the use of specialized multipliers instead of big generic multipliers in an FIR implementation with constant coefficients. To specialize these circuits and reconfigure during the run-time, researchers at the HES group proposed the novel technique called parameterized reconfiguration that can be used to efficiently and automatically implement Dynamic Circuit Specialization (DCS) that is built on top of the Partial Reconfiguration method. It uses
the run-time reconfiguration technique that is tailored to implement a parameterized design. An application is said to be parameterized if some of its input values change much less frequently than the rest. These inputs are called parameters. Instead of implementing these parameters as regular inputs, in DCS these inputs are implemented as constants, and the application is optimized for the constants. For every change in parameter values, the design is re-optimized (specialized) during run-time and implemented by reconfiguring the optimized design for a new set of parameters. In DCS, the bitstreams of the parameterized design are expressed as Boolean functions of the parameters. For every infrequent change in parameters, a specialized FPGA configuration is generated by evaluating the corresponding Boolean functions, and the FPGA is reconfigured with the specialized configuration. A detailed study of overheads of DCS and providing suitable solutions with appropriate custom FPGA structures is the primary goal of the dissertation. I also suggest different improvements to the FPGA configuration memory architecture. After offering the custom FPGA structures, I investigated the role of DCS on FPGA overlays and the use of custom FPGA structures that help to reduce the overheads of DCS on FPGA overlays. By doing so, I hope I can convince the developer to use DCS (which now comes with minimal costs) in real-world applications. I start the investigations of overheads of DCS by implementing an adaptive FIR filter (using the DCS technique) on three different Xilinx FPGA platforms: Virtex-II Pro, Virtex-5, and Zynq-SoC. The study of how DCS behaves and what is its overhead in the evolution of the three FPGA platforms is the non-trivial basis to discover the costs of DCS. After that, I propose custom FPGA structures (reconfiguration controllers and reconfiguration drivers) to reduce the main overhead (reconfiguration time) of DCS. These structures not only reduce the reconfiguration time but also help curbing the power hungry part of the DCS system. After these chapters, I study the role of DCS on FPGA overlays. I investigate the effect of the proposed FPGA structures on Virtual-Coarse-Grained Reconfigurable Arrays (VCGRAs). I classify the VCGRA implementations into three types: the conventional VCGRA, partially parameterized VCGRA and fully parameterized VCGRA depending upon the level of parameterization. I have designed two variants of VCGRA grids for HPC image processing applications,
namely, the MAC grid and Pixie. Finally, I try to tackle the reconfiguration time overhead at the hardware level of the FPGA by customizing the FPGA configuration memory architecture. In this part of my research, I propose to use a parallel memory structure to improve the reconfiguration time of DCS drastically. However, this improvement comes with a
significant overhead of hardware resources which will need to be solved in future research on commercial FPGA configuration memory architectures