Mercurial > hg > Members > kono > Cerium
diff TaskManager/ChangeLog @ 180:5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
author | gongo@localhost.localdomain |
---|---|
date | Mon, 22 Dec 2008 16:09:57 +0900 |
parents | 5c194c71eca8 |
children | df3cfc04e796 |
line wrap: on
line diff
--- a/TaskManager/ChangeLog Fri Dec 19 14:21:29 2008 +0900 +++ b/TaskManager/ChangeLog Mon Dec 22 16:09:57 2008 +0900 @@ -1,3 +1,54 @@ +2008-12-22 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> + + * Cell/spe/SchedTask.cc (SchedTask::__init__, SchedTask::read) + (SchedTask::exec, SchedTask::write): fix + (SchedTask::ex_read_normal, SchedTask::ex_read_renew) + (SchedTask::ex_exec_normal, SchedTask::ex_exec_renew) + (SchedTask::ex_write_normal, SchedTask::ex_write_renew): add + + SPE 内で生成されたタスクは、PPE で生成されたものと違い + + - add->inData + : PPE から DMA or SPE 内のものをそのまま使う + - PPE にタスクが終了したことを知らせる + : 生成されたタスクを待つ必要があるなら、その時点では送らない + + とか、まあいろいろ処理が違うわけです。 + そして、タスク内生成タスクの判断をする + + __flag_renewTask ? 0 = PPE で生成 : 1 = SPE で生成 + + という変数がある。これでいくつか処理を分けてるんだけど、 + 今までは + + if (__flag_renewTask) { + } else { + } + + ってやってた。これではいかんという事で、 + __init__() 内で、関数ポインタに、 + + ex_xxxx_normal: PPE で生成されたタスクに対する処理 + ex_xxxx_renew: SPE で生成されたタスクに対する処理 + + と入れて、if 文無しでやってみた。 + 今は ex_write_xxx しか書いてないが、これからread/exec でも + 出てくると思うので、作っておいた + + +2008-12-19 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> + + * Cell/spe/CellDmaManager.cc (CellDmaManager::dma_wait) + (CellDmaManager::mail_write, CellDmaManager::mail_read): fix + writech、readch の関数を、wrap (って言い方でおk?)された関数に変更。 + 最適化掛かってるっぽいし、長いよりはわかりやすいし。そのための wrap。 + + 例: + - before + spu_readch(SPU_RdInMspu_readch(SPU_RdInMbox); + - after + spu_read_in_mbox(void); + 2008-11-05 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> * add: Task 内での API