changeset 426:58fee2fce1bd

minor fix.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 24 Sep 2009 17:44:30 +0900
parents 799071db126e
children b3d997c05c9e
files TaskManager/kernel/schedule/Scheduler.h example/HelloWorld/README example/HelloWorld/spe/Hello.cc example/HelloWorld/spe/Hello.h example/get_segment/README example/get_segment/spe/Hello.cc example/get_segment/spe/spe-main.cc
diffstat 7 files changed, 28 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/Scheduler.h	Thu Sep 24 17:18:53 2009 +0900
+++ b/TaskManager/kernel/schedule/Scheduler.h	Thu Sep 24 17:44:30 2009 +0900
@@ -153,7 +153,6 @@
 
     MemorySegment * get_segment(memaddr addr, MemList *m);
     void allocate_code_segment(int count, int size);
-    MemorySegment * Scheduler::load_task(memaddr task);
 
     virtual uint32 get_tag();
     void put_segment(MemorySegment *s);
@@ -204,11 +203,11 @@
     extern memaddr __load_start_##segment,                             \
            memaddr __loat_stop_##segment,                              \
            spe_load_entry;                                             \
-    extern SchedTask* createTask_##str(Scheduler *manager)
+    extern SchedTask* createTask_##str(Scheduler *manager);
 
 
 #define SchedRegisterDynamicTask(cmd, str, segment)                    \
-    register_dynamic_task(cmd,  __load_start_##segment, __loat_stop_##segment, createTask__#str-spe_load_entry);
+    register_dynamic_task(cmd,  __load_start_##segment, __load_stop_##segment, createTask__##str-spe_load_entry);
 
 
 /* end */
--- a/example/HelloWorld/README	Thu Sep 24 17:18:53 2009 +0900
+++ b/example/HelloWorld/README	Thu Sep 24 17:44:30 2009 +0900
@@ -2,18 +2,18 @@
  * $Id: README,v 1.5 2008/11/01 02:37:12 gongo Exp $
  */
 
-- 
+- 概要
 
-"Hello, World!!" ϤץǤ
- Hello ʸɽޤ
+"Hello, World!!" を出力するプログラムです。
+タスク Hello が文字列を表示します。
 
-- ¹ˡ
+- 実行方法
 
 % ./hello [-count COUNT]
 
-  -count   ɽ "Hello, World!!" ο(Ĥޤꡢ Hello ο)Ǥ
+  -count   表示する "Hello, World!!" の数(つまり、タスク Hello の数)です。
 
-- ¹ (-cpu  Cerium ɸΥץǤ)
+- 実行例 (-cpu は Cerium 標準のオプションです)
 
 % ./hello
 [0] Hello, World!!
@@ -42,6 +42,6 @@
 [4] Hello, World!!
 [7] Hello, World!!
 
-ǤϡHello  10 Ĥ
-3 Ĥ CPU ˿ʬƼ¹ԤƤΤ
-ɽˤʤäƤʤ -> ˼¹ԤƤ뤳Ȥ狼ޤ
\ No newline at end of file
+上の例では、Hello タスク 10 個を、
+3 つの CPU に振り分けて実行しているので
+表示が順になっていない -> 並列に実行されていることがわかります。
\ No newline at end of file
--- a/example/HelloWorld/spe/Hello.cc	Thu Sep 24 17:18:53 2009 +0900
+++ b/example/HelloWorld/spe/Hello.cc	Thu Sep 24 17:44:30 2009 +0900
@@ -6,7 +6,7 @@
 SchedDefineTask(Hello);
 
 int
-Hello::run(void *rbuf, void *wbuf)
+Hello::run(SchedTask *smanager, void *rbuf, void *wbuf)
 {
     int task_id = get_param(0);
 
--- a/example/HelloWorld/spe/Hello.h	Thu Sep 24 17:18:53 2009 +0900
+++ b/example/HelloWorld/spe/Hello.h	Thu Sep 24 17:44:30 2009 +0900
@@ -9,7 +9,7 @@
 public:
     SchedConstructor(Hello);
     
-    int run(void *r, void *w);
+    int run(SchedTask *smanager, void *r, void *w);
 };
 
 #endif
--- a/example/get_segment/README	Thu Sep 24 17:18:53 2009 +0900
+++ b/example/get_segment/README	Thu Sep 24 17:44:30 2009 +0900
@@ -1,20 +1,20 @@
 
-- 
+- 概要
 
-SPE¦顢PPEΥᥤ򥢥뤿ˡĹ
+SPE側から、PPEのメインメモリをアクセスするために、固定長の
 
     MemorySegment
 
-ꥹȤˤ MemList 롣MemHash ˤꡢMemorySegment
-򸡺褦ˤ롣MemorySegement ϡMemList ǡLRU
-촹롣ˤꡢSPEˡᥤΥå
-뤳Ȥ롣
+をリストにした MemList を作る。MemHash により、MemorySegment
+を検索出来るようにする。MemorySegement は、MemList 上で、LRU
+で入れ換えられる。これにより、SPE上に、メインメモリのキャッシュ
+を作ることが出来る。
 
-MemList ϡTask ʬǴ롣ϡglobal_get/global_set
-ǡTask ۤƻۤȤ롣MemList
-Ƥޤǽ⤢롣λˤϡ١MemList
-ݤ롣
+MemList は、Task が自分で管理する。それは、global_get/global_set
+で、Task を越えて持ち越すことが出来る。ただし、MemList自体
+が削除されてしまう可能性もある。その時には、再度、MemListを
+確保する。
 
-åϡ񤭽Ф(put)⥵ݡȤƤ뤬get ơ
-get ΤǤФƤʤWriteBack ʤɤϼƤʤ
+キャッシュは、書き出し(put)もサポートしているが、get して、
+get したものが吐き出されてない前提。WriteBack などは実装してない。
 
--- a/example/get_segment/spe/Hello.cc	Thu Sep 24 17:18:53 2009 +0900
+++ b/example/get_segment/spe/Hello.cc	Thu Sep 24 17:44:30 2009 +0900
@@ -5,15 +5,12 @@
 /* これは必須 */
 SchedDefineDynamicTask(Hello,Segment1);
 
-#define PP_STORE 3
-#define SIZE (4096*sizeof(int))
-
 int
-Hello::run(ShcedTask *smanager, void *rbuf, void *wbuf)
+Hello::run(SchedTask *smanager, void *rbuf, void *wbuf)
 {
     int task_id = get_param(0);
 
-    fprintf(stderr,"Hello!\n");
+    printf("[%d] Hello, World!!\n", task_id);
 
     return 0;
 }
--- a/example/get_segment/spe/spe-main.cc	Thu Sep 24 17:18:53 2009 +0900
+++ b/example/get_segment/spe/spe-main.cc	Thu Sep 24 17:44:30 2009 +0900
@@ -1,7 +1,7 @@
 #include "Func.h"
 #include "Scheduler.h"
 
-SchedExternDynamicTask(Hello);
+SchedExternDynamicTask(Hello,Segment1);
 
 /**
  * この関数は SpeScheduler から呼ばれるので