Mercurial > hg > Papers > 2021 > anatofuz-master
diff paper/chapter/02-cbc.tex @ 60:1ce43db7c038
update
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 02 Feb 2021 18:47:49 +0900 |
parents | b1e2bcdd5191 |
children | 45395005373f |
line wrap: on
line diff
--- a/paper/chapter/02-cbc.tex Tue Feb 02 17:18:59 2021 +0900 +++ b/paper/chapter/02-cbc.tex Tue Feb 02 18:47:49 2021 +0900 @@ -23,14 +23,13 @@ これは呼び出し元の関数を次のCodeGearの継続対象として設定するものである。 これはGCCでは内部コードを生成を行う。 LLVM/clangでは\texttt{setjmp}と\texttt{longjmp}を使い実装している。 -したがってプログラマから見ると、通常のCの関数呼び出しの返り値をCodeGearから取得する事が可能となる。 +環境付きgotoを使うと、通常のCの関数呼び出しの返り値をCodeGearから取得する事が可能となる。 -\section{DataGearとMetaDataGear} +\section{DataGear} DataGearはCbCでのデータの単位である。 -基本はC言語の構造体そのものであるが、 DataGearの場合はデータに付随するメタ情報も取り扱う。 -これはデータ自身がどういう型を持っているかなどの情報である。 -ほかに計算を実行するCPU、 GPUの情報や、 計算に必要なすべてのDataGearの管理などの実行環境のメタデータもDataGearの形で表現される。 -このメタデータを扱うDataGearをMetaDataGearと呼ぶ。 +CbC上では構造体の形で表現される。 +各CodeGearの入力として受けるDataGearをInputDataGearと呼ぶ。 +逆に次の継続に渡すDataGearをOutputDataGearと呼ぶ。 \section{CbCを使ったシステムコールディスパッチの例題} @@ -56,6 +55,7 @@ CbCでのメタ計算はCodeGear、 DataGearの単位がそのまま使用できる。 メタ計算で使われるこれらの単位はそれぞれ、 MetaCodeGear、 MetaDataGearと呼ばれる。 + \section{MetaCodeGear} GearsOSでは、 CodeGearとDataGearを元にプログラミングを行う。 @@ -79,3 +79,7 @@ これは図\ref{meta-cg-dg}の下段に対応する。 \section{MetaDataGear} +基本はC言語の構造体そのものであるが、 DataGearの場合はデータに付随するメタ情報も取り扱う。 +これはデータ自身がどういう型を持っているかなどの情報である。 +ほかに計算を実行するCPU、 GPUの情報や、 計算に必要なすべてのDataGearの管理などの実行環境のメタデータもDataGearの形で表現される。 +このメタデータを扱うDataGearをMetaDataGearと呼ぶ。 \ No newline at end of file