gg02_0006
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 第三世代OSASKの仮想CPUの仕様(2)
-(by K, 2013.03.09)
--(osask.netに書こうと思ったんだけどパスワードを忘れて新...
-今回はメモリアクセスに関する話に限定
--これは結構重要なので、たくさん書くことがある。
--普通のCPUとはかなり異なる。
--そしてCLEとの違いが大きいのもここかもしれない。
** 基本的な仕組み
-アドレスレジスタは、必ずなんらかの構造体のポインタが入る...
-ポインタのキャストは認めるが、メモリ上に展開されている構...
-これらを言語レベルではなく、仮想機械語レベルで保証する。
-mallocの際には構造体を指定しなければならず、メモリ確保成...
--この構造体情報があるからこそ、ポインタのキャストが不整...
-配列アクセスについてはデフォルトではバウンドチェックが毎...
-32bitのint域を8bitの char [4] でキャストしてアクセスする...
--これによってエンディアンに依存しなくなる。
--逆に char [] に対して、intでアクセスして4倍速にする技も...
--そういう方法で高速化したいのなら「ネイティブコード混在...
--性能よりもエンディアンに依存しないことを重視するのでこ...
-アドレッシング記述はこんな感じになる。
--MOV REG12,AREG04.abc.def
--MOV AREG08,AREG07.ary[REG3+2].adr
--LEA AREG05,AREG07.ary[REG3+2]
--アドレスレジスタの後に構造体のメンバ名を書く。そしてア...
--C言語をもっと正確に模倣するのなら AREG04->abc.def にな...
--バイトコード的にはメンバ名をそのまま入れるのは非効率な...
--アクセスしたいデータに到達するためには2つ以上の添え字が...
-mallocの際に構造体が記録されるのと同様に、スタックも構造...
--こういう仕様なのでお気軽にPUSH/POPするのではなくて、関...
** 構造体のメンバID
-(書き途中)
** 仮想記憶
-gg02では、メモリがあまり十分ではない環境などでは、メモリ...
-こういうことが可能なように、レジスタ上、メモリ上でポイン...
--メモリリークを探すこともおそらく容易だろう。
-(書き途中)(セグメンテーション、ページングの代わりなど...
** 考察
-(書き途中)
* こめんと欄
#comment
終了行:
* 第三世代OSASKの仮想CPUの仕様(2)
-(by K, 2013.03.09)
--(osask.netに書こうと思ったんだけどパスワードを忘れて新...
-今回はメモリアクセスに関する話に限定
--これは結構重要なので、たくさん書くことがある。
--普通のCPUとはかなり異なる。
--そしてCLEとの違いが大きいのもここかもしれない。
** 基本的な仕組み
-アドレスレジスタは、必ずなんらかの構造体のポインタが入る...
-ポインタのキャストは認めるが、メモリ上に展開されている構...
-これらを言語レベルではなく、仮想機械語レベルで保証する。
-mallocの際には構造体を指定しなければならず、メモリ確保成...
--この構造体情報があるからこそ、ポインタのキャストが不整...
-配列アクセスについてはデフォルトではバウンドチェックが毎...
-32bitのint域を8bitの char [4] でキャストしてアクセスする...
--これによってエンディアンに依存しなくなる。
--逆に char [] に対して、intでアクセスして4倍速にする技も...
--そういう方法で高速化したいのなら「ネイティブコード混在...
--性能よりもエンディアンに依存しないことを重視するのでこ...
-アドレッシング記述はこんな感じになる。
--MOV REG12,AREG04.abc.def
--MOV AREG08,AREG07.ary[REG3+2].adr
--LEA AREG05,AREG07.ary[REG3+2]
--アドレスレジスタの後に構造体のメンバ名を書く。そしてア...
--C言語をもっと正確に模倣するのなら AREG04->abc.def にな...
--バイトコード的にはメンバ名をそのまま入れるのは非効率な...
--アクセスしたいデータに到達するためには2つ以上の添え字が...
-mallocの際に構造体が記録されるのと同様に、スタックも構造...
--こういう仕様なのでお気軽にPUSH/POPするのではなくて、関...
** 構造体のメンバID
-(書き途中)
** 仮想記憶
-gg02では、メモリがあまり十分ではない環境などでは、メモリ...
-こういうことが可能なように、レジスタ上、メモリ上でポイン...
--メモリリークを探すこともおそらく容易だろう。
-(書き途中)(セグメンテーション、ページングの代わりなど...
** 考察
-(書き途中)
* こめんと欄
#comment
ページ名: