Mercurial > hg > Members > kono > Cerium
comparison TaskManager/Cell/spe/CellScheduler.cc @ 629:8843edf37c0e
Cell 64 bit tried, but not yet worked.
Cell's list DMA is 32bit.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 18 Nov 2009 13:32:58 +0900 |
parents | ab866bc8a624 |
children | 8cc609285bbe |
comparison
equal
deleted
inserted
replaced
628:306c9a7717c3 | 629:8843edf37c0e |
---|---|
34 * alloc してすぐ get しても、アドレス何も入ってないです。 | 34 * alloc してすぐ get しても、アドレス何も入ってないです。 |
35 */ | 35 */ |
36 void | 36 void |
37 CellScheduler::mainMem_alloc(int id, int size) | 37 CellScheduler::mainMem_alloc(int id, int size) |
38 { | 38 { |
39 mainMemList[id] = NULL; | 39 mainMemList[id] = (memaddr)NULL; |
40 | 40 |
41 mainMemNum++; | 41 mainMemNum++; |
42 mail_write((memaddr)MY_SPE_COMMAND_MALLOC); | 42 mail_write((memaddr)MY_SPE_COMMAND_MALLOC); |
43 mail_write((memaddr)id); | 43 mail_write((memaddr)id); |
44 mail_write((memaddr)size); | 44 mail_write((memaddr)size); |
52 | 52 |
53 while (mainMemNum > 0) { | 53 while (mainMemNum > 0) { |
54 id = (unsigned long)mail_read(); | 54 id = (unsigned long)mail_read(); |
55 addr = mail_read(); | 55 addr = mail_read(); |
56 | 56 |
57 mainMemList[id] = (void*)addr; | 57 mainMemList[id] = (memaddr)addr; |
58 mainMemNum--; | 58 mainMemNum--; |
59 } | 59 } |
60 } | 60 } |
61 | 61 |
62 /* | 62 /* |
72 | 72 |
73 uint32 | 73 uint32 |
74 CellScheduler::get_tag() | 74 CellScheduler::get_tag() |
75 { | 75 { |
76 static int count = 0; | 76 static int count = 0; |
77 // int i = (count++ % 2); | |
78 // return TEX_LOAD1*i + TEX_LOAD2*(1-i); | |
79 // 0,1,2,3 | |
80 return TEX_LOAD1+(count++ % 2); | 77 return TEX_LOAD1+(count++ % 2); |
81 } | 78 } |
82 | 79 |
83 | 80 |
84 | 81 |