Software Thread Integration for Converting TLP to ILP on VLIW/EPIC Architectures
| dc.contributor.advisor | Eric Rotenberg, Committee Member | en_US |
| dc.contributor.advisor | Tom Conte, Committee Member | en_US |
| dc.contributor.advisor | Alexander G. Dean, Committee Chair | en_US |
| dc.contributor.author | So, Won | en_US |
| dc.date.accessioned | 2010-04-02T17:52:58Z | |
| dc.date.available | 2010-04-02T17:52:58Z | |
| dc.date.issued | 2003-01-14 | en_US |
| dc.degree.discipline | Computer Engineering | en_US |
| dc.degree.level | thesis | en_US |
| dc.degree.name | MS | en_US |
| dc.description.abstract | Multimedia applications are pervasive in modern systems. They generally require a significantly higher level of performance than previous workloads of embedded systems. They have driven digital signal processor makers to adopt high-performance architectures like VLIW (Very-Long Instruction Word) or EPIC (Explicitly Parallel Instruction Computing). Despite many efforts to exploit instruction level parallelism (ILP) in the application, typical utilization levels for compiler-generated VLIW/EPIC code range from one-eighth to one-half because a single instruction stream has limited ILP. Software Thread Integration (STI) is a software technique which interleaves multiple threads at the machine instruction level. Integration of threads increases the number of independent instructions, allowing the compiler to generate a more efficient instruction schedule and hence faster runtime performance. We have developed techniques to use STI for converting thread level parallelism (TLP) to ILP on VLIW/EPIC architectures. By focusing on the abundant parallelism at the procedure level in the multimedia applications, we integrate parallel procedure calls, which can be seen as threads, by gathering work in the application. We rely on the programmer to identify parallel procedures, rather than rely on compiler identification. Our methods extend whole-program optimization by expanding the scope of the compiler through software thread integration and procedure cloning. It is effectively a superset of loop jamming as it allows a larger variety of threads to be jammed together. This thesis proposes a methodology to integrate multiple threads in multimedia applications and introduce the concept of a 'Smart RTOS' as an execution model for utilizing integrated threads efficiently in embedded systems. We demonstrate our technique by integrating three procedures from a JPEG application at C source code level, compiling with four compilers for the Itanium EPIC architecture and measuring the performance with the on-chip performance measurement units. Experimental results show procedure speedup of up to 18% and program speedup up to 11%. Detailed performance analysis demonstrates the primary bottleneck to be the Itanium's 16K instruction cache, which has limited room for the code expansion by STI. | en_US |
| dc.identifier.other | etd-10152002-164503 | en_US |
| dc.identifier.uri | http://www.lib.ncsu.edu/resolver/1840.16/73 | |
| dc.rights | I hereby certify that, if appropriate, I have obtained and attached hereto a written permission statement from the owner(s) of each third party copyrighted matter to be included in my thesis, dissertation, or project report, allowing distribution as specified below. I certify that the version I submitted is the same as that approved by my advisory committee. I hereby grant to NC State University or its agents the non-exclusive license to archive and make accessible, under the conditions specified below, my thesis, dissertation, or project report in whole or in part in all forms of media, now or hereafter known. I retain all other ownership rights to the copyright of the thesis, dissertation or project report. I also retain the right to use in future works (such as articles or books) all or part of this thesis, dissertation, or project report. | en_US |
| dc.subject | Smart RTOS | en_US |
| dc.subject | Software Thread Integration | en_US |
| dc.subject | STI | en_US |
| dc.subject | VLIW | en_US |
| dc.subject | EPIC | en_US |
| dc.subject | TLP | en_US |
| dc.subject | ILP | en_US |
| dc.title | Software Thread Integration for Converting TLP to ILP on VLIW/EPIC Architectures | en_US |
Files
Original bundle
1 - 1 of 1
