-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
16 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,20 @@ | ||
\begin{jabstract} | ||
|
||
WebAssemblyはWebブラウザでの実行を想定して設計された仮想命令セットアーキテクチャである。 | ||
Webブラウザにおける標準化された実行形式として利用が広がりつつあり、開発環境による対応も進んでいる。 | ||
また、WebAssemblyの命令セットや実行セマンティクスはWebブラウザ以外の環境への応用も想定されて設計されているため、実行形式としてのWebAssemblyの活用はWebブラウザ外にも広がっていくと想定される。 | ||
しかしながら、マイコンのような計算資源が限られた環境下におけるWebAssemblyの応用可能性については、いまだ十分に検討されていない。 | ||
現在、マイコンにおけるプログラムは静的に実行されるのが主流である。 | ||
すなわち、プログラムはフラッシュメモリ等に書き込まれ、起動時にブートローダがプログラムを参照して実行する。 | ||
そのため、処理内容を変更するためには、有線接続によって、もしくは無線接続によるOTA(Over-the-Air)アップデートによって、フラッシュメモリ上のプログラムを書き換えた上で再起動する必要がある。 | ||
|
||
そこで、本研究では、マイコンにおいてWebAssemblyバイナリをインターネット上からダウンロードし実行するための環境を設計する。 | ||
また、その実現可能性を評価するため、ESP32マイコン上にWebAssemblyバイナリのインタプリタを実装した。 | ||
その上で、実装した実行環境について、関数の呼び出しにおける実行速度とメモリフットプリントを計測し、ネイティブでの関数実行と比較した。 | ||
一方、Webページとして提供されるWebアプリケーションでは、プログラムは動的に実行される。 | ||
Webブラウザはアプリケーション・プラットフォームとして、Webページに記述されたスクリプトや外部へのリンクを辿り、必要なプログラムを取得した上で実行する。 | ||
これにより、アクセスするWebページごとに異なるアプリケーションを提供することができる上に、利用者の環境や状態によって処理内容を変更することもできる。 | ||
|
||
評価では、ネイティブでの関数実行に比べて定数を返す関数では約280倍、関数呼び出しと加算を含む関数では約3000倍のオーバヘッドがあることが明らかになった。また、関数呼び出しのたびに280バイトのヒープ領域を使用することが分かった。 | ||
本論文では、動的なアプリケーションの実行モデルをマイコン上でも実現するため、WebAssemblyを実行形式として用いたアプリケーション・プラットフォームの設計を提案する。 | ||
WebAssemblyは、Webブラウザ上で実行するためのプログラムを記述できる仮想的な命令セットアーキテクチャであり、Webブラウザにおける動的なアプリケーション実行モデルを高速化するために設計された。 | ||
Webブラウザでの動作を第一義的な目的として設計されたWebAssemblyだが、仕様としてWebブラウザ内での動作に限定する制約はない。 | ||
|
||
本研究では、マイコンにおいてWebAssemblyプログラムの動的な取得と実行を行う、マイコン向けWebAssembly実行環境を設計した。 | ||
その上で、本実行環境の実現可能性を検討するため、C言語でWebAssemblyインタプリタを実装した。 | ||
実装した実行環境を用いてESP32およびIntel Core i5 3GHzのCPUを搭載したPCで同一のWebAssemblyプログラムをそれぞれ実行した。その結果、同一のWebAssemblyプログラムを実行するために、ESP32ではPCの7倍から15倍程度のクロック数を必要とすることが分かった。 | ||
この結果を、同じWebAssemblyプログラムをPCのWebブラウザ上で実行した際の実行性能と比較した結果、30番目のフィボナッチ数を560ミリ秒で計算できる性能となることが推測された。 | ||
|
||
\end{jabstract} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters