| 1 | % les objectifs globaux, | 
|---|
| 2 | An embedded system is an application integrated into one or several chips | 
|---|
| 3 | in order to accelerate it or to embedd it into a small device such as a | 
|---|
| 4 | personal digital assistant (PDA). This topic is investigated since 80s | 
|---|
| 5 | using Applications Specific Integrated Circuits (ASIC), Digital Signal | 
|---|
| 6 | Processing (DSP) and parallel computing on multiprocessor machines or | 
|---|
| 7 | networks.  More recently, since end of 90s, other technologies appeared | 
|---|
| 8 | like Very Large Instruction Word (VLIW), Application Specific Instruction | 
|---|
| 9 | Processors (ASIP), System on Chip (SoC), Multi-Processors SoC (MPSoC). | 
|---|
| 10 | \\ | 
|---|
| 11 | During these last decades embedded system was reserved to major industrial | 
|---|
| 12 | companies targeting high volume market due to the design and fabrication | 
|---|
| 13 | costs. | 
|---|
| 14 | Nowadays Field Programmable Gate Arrays (FPGA), like Virtex5 from Xilinx | 
|---|
| 15 | and Stratix4 from Altera, can implement a SoC with multiple processors and | 
|---|
| 16 | several coprocessors for less than 10K euros per item. | 
|---|
| 17 | In addition, High Level Synthesis (HLS) becomes more mature and allows to | 
|---|
| 18 | automate design and to drastically decrease its cost in terms of man power. | 
|---|
| 19 | Thus, both FPGA and HLS tend to spread over HPC for small companies | 
|---|
| 20 | targeting low volume markets. | 
|---|
| 21 | \par | 
|---|
| 22 | To get an efficient embedded system, designer has to take into account | 
|---|
| 23 | application characteristics when it chooses one of the former technologies. | 
|---|
| 24 | This choice is not easy and in most cases designer has to try different | 
|---|
| 25 | technologies to retain the most adapted one. | 
|---|
| 26 | \\ | 
|---|
| 27 | The first objective of COACH is to provide a framework to | 
|---|
| 28 | design embedded system on FPGA device. | 
|---|
| 29 | COACH framework allows designer to explore various software/hardware | 
|---|
| 30 | partitions of the target application, to run timing and functional | 
|---|
| 31 | simulations and to generate automatically both the software and the | 
|---|
| 32 | synthesizable description of the hardware. | 
|---|
| 33 | The main topics of the project are: | 
|---|
| 34 | \begin{itemize} | 
|---|
| 35 | \item Design space exploration: It consists in analysing the application | 
|---|
| 36 | runnig on FPGA, defining the target technology (SoC, MPSoC, ASIP, ...) and | 
|---|
| 37 | hardware/software partitioning of tasks depending on technology choice. | 
|---|
| 38 | This exploration is driven basically by throughput, latency and power | 
|---|
| 39 | consumption criteria. | 
|---|
| 40 | \item Micro-architectural exploration: When hardware components are | 
|---|
| 41 | required, the HLS tools of the framework generate them automatically. At | 
|---|
| 42 | this stage the framework provides various HLS tools allowing the | 
|---|
| 43 | micro-architectural space design exploration. The exploration criteria are | 
|---|
| 44 | also throughput, latency and power consumption. | 
|---|
| 45 | % FIXME | 
|---|
| 46 | %CA At this stage, preliminary source-level transformations will be | 
|---|
| 47 | %CA required to improve the efficiency of the target component. | 
|---|
| 48 | %CA COACH will also provide such facilities, such as automatic parallelization | 
|---|
| 49 | %CA and memory optimisation. | 
|---|
| 50 | \item Performance measurement: For each point of design space exploration, | 
|---|
| 51 | metrics of criteria are available such as throughput, latency, power | 
|---|
| 52 | consumption, area, memory allocation and data locality. | 
|---|
| 53 | They are evaluated using virtual prototyping, estimation or analysing | 
|---|
| 54 | methodologies. | 
|---|
| 55 | \item Targeted hardware technology: The COACH description of system is | 
|---|
| 56 | independent of the FPGA family. | 
|---|
| 57 | Every point of the design exploration space can be implemented on any FPGA | 
|---|
| 58 | having the required resources. | 
|---|
| 59 | Basically, COACH handles both Altera and Xilinx FPGA families and supports | 
|---|
| 60 | 3 generic target architectures: | 
|---|
| 61 | the COACH architecture based on the MIPS of the TSAR ANR project and a VCI ring bus, | 
|---|
| 62 | the Altera architecture based on the NIOS and AVALON bus, | 
|---|
| 63 | the Xilinx architecture based on the MICROBLAZE and OPB bus. | 
|---|
| 64 | \end{itemize} | 
|---|
| 65 | As an extension of embedded system design, COACH deals also with High | 
|---|
| 66 | Performance Computing (HPC). | 
|---|
| 67 | In HPC, the kind of targeted application is an existing one running on PC. | 
|---|
| 68 | COACH helps designer to accelerate it by migrating critical parts into a | 
|---|
| 69 | SoC implemented on a FPGA plugged to the PC bus.\\ | 
|---|
| 70 | Finally COACH will be developped under the General Public Licence for the software, | 
|---|
| 71 | and USAGE LIBRE NON COMMERCIAL for the COACH architecture. | 
|---|
| 72 | % | 
|---|
| 73 | % verrous scientifiques et techniques | 
|---|
| 74 | \mbox{}\vspace*{.9ex}\par | 
|---|
| 75 | System design is a very complicated task and in this project we try to simplify it | 
|---|
| 76 | as much as possible. For this purpose we have to deal with the following scientific | 
|---|
| 77 | and technological barriers. | 
|---|
| 78 | \begin{itemize} | 
|---|
| 79 | \item The run frequency of the coprocessors generated by the HLS must respect | 
|---|
| 80 | accurately the system frequency given bt the processors and bus. | 
|---|
| 81 | \item HLS tools are sensitive to the style in which the algorithm is written | 
|---|
| 82 | and the domain they target. The HLS tools of COACH must have a common language | 
|---|
| 83 | and style to avoid engineering work to the designer. | 
|---|
| 84 | \item The main problem in HPC is in the communication between the PC and the SoC | 
|---|
| 85 | firstly at the efficiency level and secondly to eliminate enginnering effort to | 
|---|
| 86 | implement it. | 
|---|
| 87 | \end{itemize} | 
|---|
| 88 | % | 
|---|
| 89 | % le programme de travail | 
|---|
| 90 | \vspace*{.9ex}\par | 
|---|
| 91 | COACH is the result of the will of several laboratories to unify their know | 
|---|
| 92 | hows and skills in the following domains: Operating system and hardware | 
|---|
| 93 | communication (TIMA, SITI), SoC and MPSoC (LIP6 and TIMA), ASIP (IRISA) and | 
|---|
| 94 | HLS (LIP6, Lab-STIC and LIP). | 
|---|
| 95 | So COACH does not starts from scratch but it relies | 
|---|
| 96 | on SocLib~\cite{soclib} with the MUTEX and DNA/OS operating system for | 
|---|
| 97 | system prototyping, | 
|---|
| 98 | on BEE~\cite{bee}, GAUT~\cite{gaut08}, ROMA~\cite{roma}, SYNTOL~\cite{syntol} | 
|---|
| 99 | and UGH~\cite{ugh08} for HLS. | 
|---|
| 100 | The project objective is to integrate and enhance these various tools into | 
|---|
| 101 | a unique free framework masking as much as possible these domains and its | 
|---|
| 102 | different tools to the system designer.  The main steps of this projects are: | 
|---|
| 103 | 1) Definition of the designer input as set of communicating tasks, each | 
|---|
| 104 | task beeing described in C++ language. | 
|---|
| 105 | 2) Definition of the xhls format, an internal format for representing a | 
|---|
| 106 | task. | 
|---|
| 107 | 3) Developping a GCC addon for generating the xhls date from a C++ task | 
|---|
| 108 | description. | 
|---|
| 109 | 4) Adapting the existing HLS tools to read and write xhls format and | 
|---|
| 110 | enhancing them. This allows to swap from one tool to the other and | 
|---|
| 111 | chain them. | 
|---|
| 112 | 5) Modifying the Design System Explorator of SocLib to let the designer | 
|---|
| 113 | to explore the design space and then to generate the bitstream to | 
|---|
| 114 | the target FPGA. | 
|---|
| 115 | \par | 
|---|
| 116 | The role of the industrials BUL, THALES, XXX, XXX is to provide real | 
|---|
| 117 | benchmark to guide the design of framework and prove that COACH is | 
|---|
| 118 | usuable and cover a large spectrum of applications. | 
|---|
| 119 | % | 
|---|
| 120 | % les retombées scientifiques, techniques et économiques | 
|---|
| 121 | \vspace*{.9ex}\par | 
|---|
| 122 | The main scientific contributions of the project are | 
|---|
| 123 | firstly to make high level synthesis an elementary tool of system design, | 
|---|
| 124 | seconly to unify various synthesis techniques (same input and output formats) | 
|---|
| 125 | allowing the designer to swap from one to an other and even to chain them | 
|---|
| 126 | without rewritting effort, | 
|---|
| 127 | and finally to provide a system description independent of the target | 
|---|
| 128 | architecture and the FPGA family. | 
|---|
| 129 | \par | 
|---|
| 130 | The market of embedded system and HPC is about 4,600 M\$ today and is | 
|---|
| 131 | estimated to 5,600 M\$ in 2012. | 
|---|
| 132 | This market is dominated by Multi-core CPUs based solution and is controlled | 
|---|
| 133 | by major companies that can support the very high Non Recurring Engineering (NRE) | 
|---|
| 134 | costs involved in designing such system. | 
|---|
| 135 | Small companies can only be present in this market with GPUs based solutions that have | 
|---|
| 136 | low NRE costs but limit the application domains.\\ | 
|---|
| 137 | COACH reduces the NRE costs to the design costs (the FPGA device being only a few | 
|---|
| 138 | K\euro) and reduces drastically them. | 
|---|
| 139 | So one can expect that tools targeting FPGA and dedicated to software developpers | 
|---|
| 140 | will gain market share over Multi-core CPUs and GPUs HPC based solutions. | 
|---|
| 141 | Moreover this market can also be boosted by small and even very small new companies | 
|---|
| 142 | that will be able to propose embedded system and accelerating solutions for standard | 
|---|
| 143 | software applications with acceptable prices.\\ | 
|---|
| 144 | The two major FPGA companies Altera and Xilinx expect thus by supporting | 
|---|
| 145 | and participating in this project. | 
|---|
| 146 |  | 
|---|