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