Hardware execution of constraint handling rules

DSpace/Manakin Repository

Show simple item record

dc.contributor.advisor Orlando, Salvatore it_IT
dc.contributor.advisor Maron, Gaetano it_IT
dc.contributor.author Triossi, Andrea <1979> it_IT
dc.date.accessioned 2012-07-07T08:32:30Z it_IT
dc.date.accessioned 2012-07-30T16:05:45Z
dc.date.available 2012-07-07T08:32:30Z it_IT
dc.date.available 2012-07-30T16:05:45Z
dc.date.issued 2012-03-12 it_IT
dc.identifier.uri http://hdl.handle.net/10579/1232 it_IT
dc.description.abstract In this thesis we want to investigate the compiling of the well-established language Constraint Handling Rule (CHR) to a low level hardware description language (HDL). The benefit introduced by a CHR-based hardware synthesis is twofold: it increases the abstraction level of the common synthesis work-flow and it can give significant speed up to the execution of a CHR program in terms of computational time. We want to propose a method that sets CHR as a starting point for a hardware description. The developed hardware will be able to turn all the intrinsic concurrency of the language into parallelism. The rules application is mainly achieved by a custom executor that handles constraints according to the best degree of parallelism the implemented CHR specification can offer. Afterwards we want to integrate the generated hardware code, deployed in a Field Programmable Gate Array (FPGA), within the traditional software execution model of CHR. The result will be a prototype system consisting of a CHR execution engine composed of a general purpose processor coupled with a specialized hardware accelerator. The former will execute a CHR specification while the latter will unburden the processor by executing in parallel the most computational intensive rules. Finally the performance of the proposed system architecture will be validated by time efficiency measures. it_IT
dc.description.abstract In questa tesi si vuole investigare la compilazione dell'ormai consolidato linguaggio Constraint Handling Rules (CHR) in un hardware description language (HDL) a basso livello. Il vantaggio introdotto da una sintesi di hardware basata su CHR è duplice: permette di aumentare il livello di astrazione del tradizionale processo di sintesi di hardware e può dare accelerazioni significative all'esecuzione di un programma CHR in termini di tempo di computazione. Viene proposto un metodo che parte da CHR per effettuare una descrizione dell'hardware. L'hardware sviluppato sarà in grado di convertire tutta la concorrenza intrinseca al linguaggio in parallelismo. L'applicazione delle regole viene realizzata tramite uno speciale esecutore che tratta i vincoli in modo da effettuare il più alto grado di parallelismo che il programma CHR implementato possa offrire. Successivamente si vuole integrare il codice hardware così sviluppato, e caricato in una Field Programmable Gate Array (FPGA), con il tipico modello di esecuzione di CHR. Ne risulterà un prototipo di un motore di esecuzione basato su CHR e composto da un generico processore accoppiato con uno specifico acceleratore hardware. Il primo eseguirà un programma CHR, mentre il secondo libererà il processore dall'esecuzione delle regole più computazionalmente pesanti tramite la loro parallelizzazione. In conclusione le prestazioni delle architetture proposte saranno avvalorate da misure di efficienza temporale. it_IT
dc.format.medium Tesi cartacea it_IT
dc.language.iso en it_IT
dc.publisher Università Ca' Foscari Venezia it_IT
dc.rights © Andrea Triossi, 2012 it_IT
dc.subject Constraint programming it_IT
dc.subject Hardware synthesis it_IT
dc.subject Field Programmable Gate Array (FPGA) it_IT
dc.title Hardware execution of constraint handling rules it_IT
dc.type Doctoral Thesis it_IT
dc.degree.name Informatica it_IT
dc.degree.level Dottorato di ricerca it_IT
dc.degree.grantor Scuola di dottorato in Scienze e tecnologie (SDST) it_IT
dc.description.academicyear 2010/2011 it_IT
dc.description.cycle 24 it_IT
dc.degree.coordinator Salibra, Antonino it_IT
dc.location.shelfmark D001162 it_IT
dc.location Venezia, Archivio Università Ca' Foscari, Tesi Dottorato it_IT
dc.rights.accessrights openAccess it_IT
dc.thesis.matricno 955599 it_IT
dc.format.pagenumber [4], VI, 115 p. it_IT
dc.subject.miur INF/01 INFORMATICA it_IT
dc.description.tableofcontent 1 Introduction 1 I Background 5 2 Constraint Handling Rules 7 2.1 Declarative Programming 7 2.1.1 Functional Programming 8 2.1.2 Logic Programming 9 2.1.3 Constraint Programming 11 2.1.4 Rule-based Programming 12 2.2 Constraint Handling Rules 13 2.2.1 Semantics 14 2.2.2 Important CHR properties 22 2.2.3 Parallel execution of CHR 27 3 Reconfigurable Computing 29 3.1 Field-Programmable Gate Arrays 29 3.1.1 FPGAs Architecture 30 3.1.2 Configuration Logic Block 30 3.1.3 Routing system and I/O blocks 31 3.1.4 Embedded components 31 3.1.5 FPGA vs. ASIC 33 3.2 Programming reconfigurable systems 33 3.2.1 FPGA configuration 34 3.2.2 Register transfer level 34 3.2.3 VHDL 36 3.2.4 FPGA physical synthesis 39 3.3 High level synthesis 42 3.3.1 Early HLLs for hardware synthesis 43 3.3.2 Advances in HLLs for hardware synthesis 43 II From CHR to hardware 49 4 Hardware Compilation 51 4.1 The CHR subset 52 4.2 Principles of the hardware blocks 53 4.2.1 Rule Hardware Blocks 53 4.2.2 Program Hardware Block 55 4.2.3 Combinatorial Switch 57 4.3 A structural implementation 60 4.4 Experimental results 61 4.4.1 Greatest common divisor 61 4.4.2 Floyd-Warshall algorithm 63 4.5 Merge sort implementation 64 5 Improving Parallelization 67 5.1 Strong parallelism 67 5.2 Massive parallelism 72 5.2.1 Experimental results 74 5.3 PHB parallelism 74 5.4 Optimizing Merge sort 76 5.4.1 Experimental results 77 6 Hybrid Compilation 79 6.1 Related hardware accelerators 80 6.2 A hardware accelerator for CHR 81 6.2.1 Hardware/software compilation 82 6.2.2 GCD matrix calculation 83 6.2.3 Preflow push algorithm 88 6.2.4 Interval domains solver 90 Conclusions 93 A Program listings 97 B Completeness and time complexity of the synthesizable CHR 105 Bibliography 107 it_IT
dc.identifier.bibliographiccitation Andrea Triossi. "Hardware execution of constraint handling rules", Università Ca' Foscari Venezia, tesi di dottorato, 24. ciclo, 2012 it_IT


Files in this item

This item appears in the following Collection(s)

Show simple item record