Mercurial > hg > Members > kono > Cerium
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 から呼ばれるので