Supporting Advanced Vector Extensions (AVX) on HBT-86
碩士 === 國立交通大學 === 資訊科學與工程研究所 === 105 === The HBT-86 is an LLVM-based retargetable hybrid binary translation system. The source binary Instruction Set Architectures (ISA) supported by HBT-86 including x86-32and x86-64 integer instructions, x87 floating-point instructions, and Streaming SIMD Extension...
Main Authors: | , |
---|---|
Other Authors: | |
Format: | Others |
Language: | en_US |
Published: |
2016
|
Online Access: | http://ndltd.ncl.edu.tw/handle/48025780390634408068 |
id |
ndltd-TW-105NCTU5394087 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-TW-105NCTU53940872017-09-07T04:17:55Z http://ndltd.ncl.edu.tw/handle/48025780390634408068 Supporting Advanced Vector Extensions (AVX) on HBT-86 在HBT-86上支援AVX指令集架構 Liu, Shang-Wen 劉尚雯 碩士 國立交通大學 資訊科學與工程研究所 105 The HBT-86 is an LLVM-based retargetable hybrid binary translation system. The source binary Instruction Set Architectures (ISA) supported by HBT-86 including x86-32and x86-64 integer instructions, x87 floating-point instructions, and Streaming SIMD Extensions (SSE). Furthermore, HBT-86 can generate target binary that can be executed on x86-32, x86-64, and ARM target platforms. In recently years, Intel proposed Advanced Vector Extensions (AVX) which is a 256-bit instruction set extension to SSE. However, HBT-86 has not supported AVX ISA yet, and thus it cannot successfully emulate the binary executable which contains AVX instructions. Therefore, our research aims to design and implement the emulation of AVX instructions on HBT-86. In this thesis, we translate the LLVM Machine Code into LLVM intermediate representation (IR) and emulate the behavior of AVX instructions and registers in the translated code. Besides, we also improve the supportiveness and compatibility of SSE in HBT-86. Moreover, we increase the supportiveness of system call. We compare our system with the Bochs which is a full emulator written in C++ and uses software emulation to emulate every instruction. It supports x86-32 and x86-64 source/target executable. In our AVX x86-32 to x86-64 emulation, our HBT-86 is 11.02 and 14.35 times faster than Bochs for integer and floating-point benchmark, respectively. While comparing with the native binary code, our HBT-86 is 4.16 and 3.34 times slower for integer and floating-point benchmarks, respectively. Finally, our HBT-86 may translate our AVX benchmarks into ARM binary code and execute these code on an ARM platform successfully. Shann, Jyh-Jiun 單智君 2016 學位論文 ; thesis 64 en_US |
collection |
NDLTD |
language |
en_US |
format |
Others
|
sources |
NDLTD |
description |
碩士 === 國立交通大學 === 資訊科學與工程研究所 === 105 === The HBT-86 is an LLVM-based retargetable hybrid binary translation system. The source binary Instruction Set Architectures (ISA) supported by HBT-86 including x86-32and x86-64 integer instructions, x87 floating-point instructions, and Streaming SIMD Extensions (SSE). Furthermore, HBT-86 can generate target binary that can be executed on x86-32, x86-64, and ARM target platforms.
In recently years, Intel proposed Advanced Vector Extensions (AVX) which is a 256-bit instruction set extension to SSE. However, HBT-86 has not supported AVX ISA yet, and thus it cannot successfully emulate the binary executable which contains AVX instructions. Therefore, our research aims to design and implement the emulation of AVX instructions on HBT-86. In this thesis, we translate the LLVM Machine Code into LLVM intermediate representation (IR) and emulate the behavior of AVX instructions and registers in the translated code. Besides, we also improve the supportiveness and compatibility of SSE in HBT-86. Moreover, we increase the supportiveness of system call.
We compare our system with the Bochs which is a full emulator written in C++ and uses software emulation to emulate every instruction. It supports x86-32 and x86-64 source/target executable. In our AVX x86-32 to x86-64 emulation, our HBT-86 is 11.02 and 14.35 times faster than Bochs for integer and floating-point benchmark, respectively. While comparing with the native binary code, our HBT-86 is 4.16 and 3.34 times slower for integer and floating-point benchmarks, respectively. Finally, our HBT-86 may translate our AVX benchmarks into ARM binary code and execute these code on an ARM platform successfully.
|
author2 |
Shann, Jyh-Jiun |
author_facet |
Shann, Jyh-Jiun Liu, Shang-Wen 劉尚雯 |
author |
Liu, Shang-Wen 劉尚雯 |
spellingShingle |
Liu, Shang-Wen 劉尚雯 Supporting Advanced Vector Extensions (AVX) on HBT-86 |
author_sort |
Liu, Shang-Wen |
title |
Supporting Advanced Vector Extensions (AVX) on HBT-86 |
title_short |
Supporting Advanced Vector Extensions (AVX) on HBT-86 |
title_full |
Supporting Advanced Vector Extensions (AVX) on HBT-86 |
title_fullStr |
Supporting Advanced Vector Extensions (AVX) on HBT-86 |
title_full_unstemmed |
Supporting Advanced Vector Extensions (AVX) on HBT-86 |
title_sort |
supporting advanced vector extensions (avx) on hbt-86 |
publishDate |
2016 |
url |
http://ndltd.ncl.edu.tw/handle/48025780390634408068 |
work_keys_str_mv |
AT liushangwen supportingadvancedvectorextensionsavxonhbt86 AT liúshàngwén supportingadvancedvectorextensionsavxonhbt86 AT liushangwen zàihbt86shàngzhīyuánavxzhǐlìngjíjiàgòu AT liúshàngwén zàihbt86shàngzhīyuánavxzhǐlìngjíjiàgòu |
_version_ |
1718527833244958720 |