view cerium-rl.html @ 0:a9fda18657b3 default tip

add
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 16 Dec 2009 10:05:04 +0900
parents
children
line wrap: on
line source

<html>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<head>
<title>Cerium Project</title>
</head>
<body>
<h1>Cerium Project</h1>
<a href=#content>content</a><br>
<nr>

<p>

<hr>
<h2><a name="content000">Double Linked TaskQueue</a></h2>
実装してみましたが、word count あたりでは、あまり効果はないらしい。
<p>

<hr>
<h2><a name="content001">HTask と ListData</a></h2>
128byte に align してない。ListData (DMA list の配列)は毎回送っている。
<p>
なので、一緒に送ってみたけど、速度的には関係ないらしい。
<p>
少なくとも、必要なサイズに抑えるべき。
<p>
ListData ではない read/write の Task が廃止されているのはおかしい。(大半は、そういうもののはず)
<p>

<hr>
<h2><a name="content002">Write DMA</a></h2>
Rendering Engine では使ってないらしい。
<p>
Object の破壊時に、Write DMA 待ちするとか言うコードはわかってない。
<p>
SPU Task の中で、outData を指定するのが正しい。
<p>
Task の中では 手動DMAを許さない方針で。
<p>

<hr>
<h2><a name="content003">ReNew Task</a></h2>
複雑すぎ。要書き直し。
<p>
TaskList を受け取った後、TaskQueue に書き換えて、あとはTaskQueue
で処理すれば良い。
<p>

<hr>
<h2><a name="content004">Task と HTask</a></h2>
PPU側のTaskと、SPU側のTaskで出来ることが違うのはおかしい。SPU側からも、PPU側のTaskが生成できた方が良い。
<p>
TaskManager から create するのと、ShcedTask から create する二つの方方法がある。
<p>

<hr>
<h2><a name="content005">Post function</a></h2>
引数に、SchedTask を渡せば、Task と同じ形式になる。そちらの方が良い。
<p>

<hr>
<h2><a name="content006">Application</a></h2>
Mac OS X は簡単に分離してみました。
<p>
Cell 側は、SPU Task id を調整する必要がある。
<p>
Embeded binary にした方が扱いが楽。Path の問題があるので。
<p>
hoge.app の下に、spu/task/xmlfile/binary と置くのが良いのでは。だったら、spu-main でも良いけど。
<p>
view.cc を直接変更するのは、やめて下さい。
<p>
MainLoop を自分で定義して、それを使う。
<p>

<hr>
<h2><a name="content007">Fifo の方が速い</a></h2>
どこが遅いのかを計測しないと。
<p>
Word count だけの問題か?
<p>

<hr>
<h2><a name="content008">Idle Time</a></h2>
mail blocking の idle time を計ってない?
<p>

<hr>
<h2><a name="content009">Memory Model</a></h2>
MemList で全体を統一するのが良いのではないか?
<p>

<pre>
    LRU, Hash, Queue

</pre>
として使う。これが、Code Segment に対応する Data Segment になる。
<p>
Copying を行ない、自動的な GC (Garbage Collection) になる。
<p>
MemList は固定長だが、不定長も許して良い。
<pre>
    read/write buf には、MemList を直接指定する

<h2><a name="content">Content</h2>
<ol>
<li><a href="#content000">  Double Linked TaskQueue</a>
<li><a href="#content001">  HTask と ListData</a>
<li><a href="#content002">  Write DMA</a>
<li><a href="#content003">  ReNew Task</a>
<li><a href="#content004">  Task と HTask</a>
<li><a href="#content005">  Post function</a>
<li><a href="#content006">  Application</a>
<li><a href="#content007">  Fifo の方が速い</a>
<li><a href="#content008">  Idle Time</a>
<li><a href="#content009">  Memory Model</a>
</ol>

</body></html>