annotate TaskManager/Fifo/FifoDmaManager.h @ 1483:f402f6444237 draft

create gpuTaskinit
author Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
date Mon, 06 Aug 2012 19:55:47 +0900
parents 70f461442b0f
children 7673e2ad2623
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
1 #ifndef INCLUDED_FIFO_DMA_MANAGER
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
2 #define INCLUDED_FIFO_DMA_MANAGER
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
3
307
3fc86ddf5d1c clean up include
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 109
diff changeset
4 #include "base.h"
3fc86ddf5d1c clean up include
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 109
diff changeset
5 #include "DmaManager.h"
1309
6941385ba022 add -p option
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
6
1190
cfbf4f264829 fix FifoDmaManager.h
Daichi TOMA <amothic@cr.ie.u-ryukyu.ac.jp>
parents: 1189
diff changeset
7 #ifdef __CERIUM_PARALLEL__
1196
27e35b4098a4 Rename MailManager
Daichi TOMA <e085740@ie.u-ryukyu.ac.jp>
parents: 1190
diff changeset
8 #include "SynchronizedMailManager.h"
1190
cfbf4f264829 fix FifoDmaManager.h
Daichi TOMA <amothic@cr.ie.u-ryukyu.ac.jp>
parents: 1189
diff changeset
9 #else
307
3fc86ddf5d1c clean up include
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 109
diff changeset
10 #include "MailManager.h"
1190
cfbf4f264829 fix FifoDmaManager.h
Daichi TOMA <amothic@cr.ie.u-ryukyu.ac.jp>
parents: 1189
diff changeset
11 #endif
3
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
12
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
13 class FifoDmaManager : public DmaManager {
647
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
14
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
15 protected:
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
16 /* variables */
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
17 MailManagerPtr mail_queue1;
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
18 MailManagerPtr mail_queue2;
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
19
3
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
20 public:
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 88
diff changeset
21 BASE_NEW_DELETE(FifoDmaManager);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 88
diff changeset
22
647
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
23 FifoDmaManager() {
1189
898fdcf53c31 add SemMailManager
Daichi TOMA
parents: 1024
diff changeset
24 #ifdef __CERIUM_PARALLEL__
1417
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
25 mail_queue1 = new SynchronizedMailManager();
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
26 mail_queue2 = new SynchronizedMailManager();
1189
898fdcf53c31 add SemMailManager
Daichi TOMA
parents: 1024
diff changeset
27 #else
1417
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
28 mail_queue1 = new MailManager();
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
29 mail_queue2 = new MailManager();
1189
898fdcf53c31 add SemMailManager
Daichi TOMA
parents: 1024
diff changeset
30 #endif
1417
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
31 start_dmawait_profile = &FifoDmaManager::null_start_dmawait_profile;
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
32 end_dmawait_profile = &FifoDmaManager::null_end_dmawait_profile;
647
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
33 }
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
34
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
35 ~FifoDmaManager() {
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
36 delete mail_queue1;
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
37 delete mail_queue2;
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
38 }
3
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
39
1309
6941385ba022 add -p option
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
40 /* variables */
6941385ba022 add -p option
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
41 protected:
1417
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
42 unsigned long long start_time, stop_time;
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
43 unsigned long long global_busy_time, global_load_time, global_store_time, global_mail_time;
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
44 unsigned long long dma_load_time, dma_store_time, dma_loadList_time, dma_storeList_time;
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
45 unsigned long long mail_read_time, mail_write_time;
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
46 unsigned long long mail_read_from_host_time, mail_write_from_host_time;
1309
6941385ba022 add -p option
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
47
3
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
48 /* functions */
1309
6941385ba022 add -p option
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
49 public:
1417
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
50 virtual void *dma_load(Scheduler *s, memaddr addr, uint32 size, uint32 mask);
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
51 virtual void *dma_load1(void *buf, memaddr addr, uint32 size, uint32 mask);
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
52 virtual void *dma_store(void *buf, memaddr addr, uint32 size, uint32 mask);
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
53 virtual void dma_wait(uint32 mask) ;
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
54 virtual void *get_writebuf(Scheduler *s, memaddr addr, uint32 size) ;
1309
6941385ba022 add -p option
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
55 void (FifoDmaManager::*start_dmawait_profile)();
6941385ba022 add -p option
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
56 void (FifoDmaManager::*end_dmawait_profile)(unsigned long long *counter);
1417
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
57 void start_profile();
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
58 void stop_profile();
1213
a49c02dffe6f DMA connector reogranization
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
59
1309
6941385ba022 add -p option
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
60 void show_dma_wait(Scheduler *s, int cpu);
3
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
61
1371
66ae94572433 add mail_time in profiler
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1364
diff changeset
62 void mail_write(memaddr data);
66ae94572433 add mail_time in profiler
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1364
diff changeset
63 void mail_write_finish_list(memaddr data);
66ae94572433 add mail_time in profiler
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1364
diff changeset
64 memaddr mail_read();
66ae94572433 add mail_time in profiler
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1364
diff changeset
65 memaddr task_list_mail_read();
647
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
66
1371
66ae94572433 add mail_time in profiler
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1364
diff changeset
67 void mail_write_from_host(memaddr data);
66ae94572433 add mail_time in profiler
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1364
diff changeset
68 memaddr mail_read_from_host();
66ae94572433 add mail_time in profiler
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1364
diff changeset
69 int has_mail_from_host();
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 88
diff changeset
70
1417
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
71 virtual void *dma_loadList(Scheduler *s, ListDataPtr list, uint32 mask);
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
72 virtual void dma_storeList(ListDataPtr, void *buff, uint32 mask);
1213
a49c02dffe6f DMA connector reogranization
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
73
a49c02dffe6f DMA connector reogranization
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1196
diff changeset
74 uint32 get_tag();
1417
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
75 virtual void bound(ListData *);
647
7ba4ad4538b1 MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
76
1309
6941385ba022 add -p option
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
77 private:
1417
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
78 void do_start_dmawait_profile();
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
79 void do_end_dmawait_profile(unsigned long long *counter);
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
80 void null_start_dmawait_profile();
70f461442b0f null DMA clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1401
diff changeset
81 void null_end_dmawait_profile(unsigned long long *counter);
1309
6941385ba022 add -p option
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1227
diff changeset
82
3
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
83 };
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
84
2356238ebea7 *** empty log message ***
gongo
parents:
diff changeset
85 #endif