A POLYMORPHIC COMPUTING ARCHITECTURE BASED ON A DATAFLOW PROCESSOR CORE Hentrich, David Computer Computer Architecture Dataflow Polymorphic Computing Processor Reconfigurable Computing Overall, this work provides an introduction to the subject of polymorphic computing, provides a new innovative polymorphic computer architecture, and studies the architecture's performance with various test programs. The most important innovation of this work is the creation of an instruction set and computer architecture that allows individual instructions in an algorithm to be migrated in a fine-grained manner throughout a fabric of processors without the need for the algorithm to be aware of the underlying computer architecture. Essentially, the algorithms are independent of the underlying processing fabric and can be arbitrarily \draped" over the underlying processor fabric. Logically, this allows the computer architecture of the system to be modified under an algorithm. The intent of this is to create a system where the underlying computer architecture can be modified to improve the performance of an algorithm during runtime. The specific categories of contributions of this work are: 1. A definition of polymorphic computing, 2. A history of reconfigurable computing (the roots of polymorphic computing), 3. A description of relevant computer architecture concepts, 4. Case-studies of current polymorphic computing systems, 5. A new dataflow processor with performance monitoring features at the instruction and microarchitecture levels, 6. A new dataflow instruction set that contributes several advances to the field of dataflow instruction set design, 7. A polymorphic computing architecture based on the dataflow processor that allows programs to be migrated (\draped") across underlying cores in a fine- grained manner (i.e. on an instruction-by-instruction basis), 8. A description of how to write programs for the dataflow processor, 9. A number of programs written in the new instruction set for the dataflow processor/polymorphic computing architecture, 10. A performance evaluation of the ideal performance of the above programs in a single dataflow core, 11. A performance evaluation of a subset of the above programs in several polymorphic compute fabrics that were fine-grained placed (\draped") using a genetic search algorithm, 12. An iterative, deterministic algorithm for placing (\draping") functions in several polymorphic compute fabrics in a fine-grained manner based on runtime monitoring, 13. A performance evaluation of a subset of the above programs that were placed (\draped") in several polymorphic compute fabrics using the deterministic instruction placement algorithm, and 14. A comparison of the results between the genetic search instruction placement evaluation and the deterministic algorithm instruction placement evaluation. Ph.D. in Computer Engineering, May 2018 Oruklu, Erdal 2018 2018-05 Dissertation application/pdf islandora:15798 http://hdl.handle.net/10560/4428 en In Copyright http://rightsstatements.org/page/InC/1.0/ Restricted Access