該從哪開始寫呢?這一直是我遲遲難以下筆的原因吧!總覺得從A不好從B又太匆匆。今天我媽來到台南參加婚宴,而後我們到了台南的茶店小聊了一下,我發覺我有好些時候不曾認真地看過她了。似乎憔悴了一些,又似乎有些煩惱寫在她臉上。記得有人曾跟我說過父母終究是你的根,天下無不是的父母,小時候的我是非曲直看得重,是就是何來模糊地帶?想必也是為此緣故,我與母親相處的並不愉快。
小時候還記得家裡開食品工廠,跟我最親的也就是我媽了。每天跟在他的身邊當個小跟班,逛街吃喝好不快樂,也總以為一切都來得輕易。而我爸從我小時候就是板著張臉,想當然也就不會受到小孩子喜愛,小時候我可討厭他了呢!我媽是白臉總是給我們糖吃,功課不寫也不會挨罵。父親則相反,我阿!深怕一個不用功便惹怒了他,尤其記得小時候我爸怪我國文作文寫不出來,我依然還記得他出的作文題目”電視“,與他的大大手掌隨時在我的臉旁,稍有不慎我的臉就從包子變成了叉燒包。
小時候的生活總是無憂無慮着,若要說到我最有印象的生活那大概就是搬家了。我就讀國小之前,我們從豐原搬到了台中,在從台中搬到了南投,在南投當地又搬了兩次家,也是這樣讓我對每個地方的生活都留下了一些些的片面印象。
先說說最一開始的豐原吧。從很小的時候開始我就有些過動,記憶力也不錯很多事情都會映像在腦海。還記得那時家裡是做自助餐的,住在騎樓的二樓,依稀記得三樓四樓市有租給其他房客的,我們家在一樓做生意。隔壁是一間小兒科診所,另外加上我大伯也是醫生,這大概跟我小時候吃藥打針都不太怕有絕對的關係(笑)。我記得那時每天都要做到晚上,媽媽還會帶著我騎著機車送便當到工廠去,那時台灣正值經濟起飛,木工廠鐵工廠盛行。晚上阿,騎在那路上周遭都是田地,晚風很涼依稀可聽到蛙鳴蟲響。
還記得我人生的第一次就發生在那樣的夜晚,那是一次送完便當要回家的路上。還記得媽媽說”是一間新開的店!不知道賣什麼?去看看“。小時的我從母親的身後探出頭,看著眼前一間小木頭裝潢的泡沫紅茶店,那時候路燈還沒很盛行所以他也就格外顯眼。是的!這是我人生中第一次喝到珍珠奶茶,我還記得當下的感動是難以言喻的,讓我的小小心靈無限蹦跳。接下來的幾天我天天在期待着,每天吵着要跟出去。直到我喝了胚芽奶茶,薄荷奶茶等等才漸漸退燒。雖說我媽總是覺得小孩子不該喝這麼多,不過我想媽媽應該也是母憑子貴,為此開心不已吧。
那時因為家裡做生意的關係,我也沒有童年齡的小孩或兄弟姐妹一同玩樂。隔壁診所與樓上鄰居就成了我每天的遊玩之所,還記得那時候三樓的住戶不知道叫什麼名字,我只管叫他大哥哥(不是你想的那種)他房間有著一臺小時候夢寐以求的紅白機!還記得每次去他房間,他總要捉弄我,把那台主機藏起來讓我找不著。在我找得精疲力盡的時候,叫我閉上眼睛他便個戲法就把它變出來,那時候可真是沒有柯南的精神阿,只相信怪力亂神!於是那時候我玩到了幾次的超級瑪麗我便也開心了。說說隔壁診所可以玩什麼好了,舉凡摺紙(用藥包紅白綠的紙),注射針筒當水槍,棉花沾水丟人(還可以丟在牆壁上,我現在都不敢說我大伯家天花板上有一個我小時候丟上去的棉花到現在還沒下來過XDDDD)。其中最有印象的就是“烏賊頭紙飛機“了,那時候我可是速度距離上都遠勝隔壁的醫生叔叔,也因此哪了不少的巧克力。看得出小時候很愛吃糖吃巧克力,所以很趣味的是聽說我的乳牙全部是蛀掉的XD。也不知道是不是我爸唬爛我!
豐原是一個我最早有記憶的地方,他給我的回憶深刻,但沒有濃厚的情感在裡頭。情感阿!總關注在早晨中午晚上那辛勤工作的父母身上,其實我多麼希望他們能多陪陪我。不過也許是有的只是我不甚記得了~。
ruru's home
2012年12月3日 星期一
回憶-序
很多時候有很多事存在回憶中,慢慢的你把它忘記,它也就好像不存在了. 不記得自己曾走過的路何其可悲!? 是該為自己過去的足跡留下一點點記錄,讓我知道我真走過這一遭!
其實從小時候開始對於寫文章就是一個莫名的恐懼, 還記得國文課最怕寫作文, 一只文章要求動輒五百字,令小時的我心生恐懼! 經常是拿到題目在起頭下筆處遲疑不定, 直到兩節課鐘響拍定, "你怎麼只寫五個字!?" 誰知如今卻是三天一報告五天一論文, 簡報投影片暫且不說, 英文專利也是要寫. 總想著再給我個童年吧, 我想我一定會快樂地寫完這五百字.
有時生活中有許多"文青們"所說的小確幸, 但我總難以用文字記錄下來, 以前的我不懂現在的我想做到又更難了! 綜觀許多文章圖畫相片我想這都是拿來記錄我們生活, 讓這美好的人生留下ㄧ絲記錄吧!
希望我能把想寫的寫完, 想記得事情太多了, 總忘了更多的事情呢!
其實從小時候開始對於寫文章就是一個莫名的恐懼, 還記得國文課最怕寫作文, 一只文章要求動輒五百字,令小時的我心生恐懼! 經常是拿到題目在起頭下筆處遲疑不定, 直到兩節課鐘響拍定, "你怎麼只寫五個字!?" 誰知如今卻是三天一報告五天一論文, 簡報投影片暫且不說, 英文專利也是要寫. 總想著再給我個童年吧, 我想我一定會快樂地寫完這五百字.
有時生活中有許多"文青們"所說的小確幸, 但我總難以用文字記錄下來, 以前的我不懂現在的我想做到又更難了! 綜觀許多文章圖畫相片我想這都是拿來記錄我們生活, 讓這美好的人生留下ㄧ絲記錄吧!
希望我能把想寫的寫完, 想記得事情太多了, 總忘了更多的事情呢!
2009年11月14日 星期六
mutil-core with thread
當需要指定特定的thread給特定的core(CPU)去執行,
WINDOWS 可先使用GetCurrentThread();函式先去抓到當前的thread,
接著再使用SetThreadAfinityMask(thread_handle,0x01);
將取得的thread指定給0x01就是第一core去執行.
WINDOWS 可先使用GetCurrentThread();函式先去抓到當前的thread,
接著再使用SetThreadAfinityMask(thread_handle,0x01);
將取得的thread指定給0x01就是第一core去執行.
2009年11月13日 星期五
SystemC Kernel 平行化相關紀錄
fiber 可與 pthread 共同使用,一為操作者一為工作排程
再使用上可讓特定條fiber assidn 給某pthread去執行
在win系統上要使用fiber 須先
#define _WIN32_WINNT 0x400 <==
#include
#include
#define FIBER_COUNT 5
void *fiber_context[FIBER_COUNT];
VOID WINAPI fiberProc(void*);
int main()
{
int i;
int fibers[FIBER_COUNT];
for (i = 0; i < FIBER_COUNT; i++)
fibers[i] = i;
fiber_context[0] = ConvertThreadToFiber(NULL);
for (i = 1; i < FIBER_COUNT; i++) {
fiber_context[i] = CreateFiber(0, fiberProc, &fibers[i]);
if (fiber_context[i] != NULL)
printf("Fiber %d created \n", i);
}
for (i = 1; i < FIBER_COUNT; i++) {
if (fiber_context[i] != NULL)
{
SwitchToFiber(fiber_context[i]);
}
}
}
void WINAPI fiberProc(void *fiber_nbr)
{
int nbr;
nbr = *((int*)fiber_nbr);
fprintf(stderr,"Hello from fiber %d\n", nbr);
SwitchToFiber(fiber_context[0]);
}
fiber 再次進入會從上次中斷那點往下繼續去執行
fiber也有屬於自己的fls可提供使用
===========
當systemC 要更新成releace mode /MTD => /MT
==========
使用windos win32 pthread時 須下載新的函示庫
Pre-build.2 裡面包含了include和 lib 分別包含了pthreads for win32 的頭文件和庫文件(包括動態連接庫)
將include 和lib 裡面的內容分別複製到你的編譯器的include 和 lib 目錄,
同時將lib 目錄中的 dll 文件copy 到操作系統的system32 文件夾中。
Project/settings pthreadVC2.lib
===========
TLS(P-thread local storage)
pthread_key_t tlsKey = 0;
void* thr_fn(void* arg){
int TLS_data = 0;
pthread_setspecific(tlsKey, &TLS_data); //將key 跟 data bine再一起
此時使用 TLS_data皆為TLS
pthread_key_delete(tlsKey); //刪除
}
===========
semaphore.h
sem_t sem_key;
sem_init(&sem_key,0,預設值);
sem_wait(&sem_key); //sem_key-- 減為負數 則sleep
sem_post(&sem_key); //sem_key++ 反之
再使用上可讓特定條fiber assidn 給某pthread去執行
在win系統上要使用fiber 須先
#define _WIN32_WINNT 0x400 <==
#include
#include
#define FIBER_COUNT 5
void *fiber_context[FIBER_COUNT];
VOID WINAPI fiberProc(void*);
int main()
{
int i;
int fibers[FIBER_COUNT];
for (i = 0; i < FIBER_COUNT; i++)
fibers[i] = i;
fiber_context[0] = ConvertThreadToFiber(NULL);
for (i = 1; i < FIBER_COUNT; i++) {
fiber_context[i] = CreateFiber(0, fiberProc, &fibers[i]);
if (fiber_context[i] != NULL)
printf("Fiber %d created \n", i);
}
for (i = 1; i < FIBER_COUNT; i++) {
if (fiber_context[i] != NULL)
{
SwitchToFiber(fiber_context[i]);
}
}
}
void WINAPI fiberProc(void *fiber_nbr)
{
int nbr;
nbr = *((int*)fiber_nbr);
fprintf(stderr,"Hello from fiber %d\n", nbr);
SwitchToFiber(fiber_context[0]);
}
fiber 再次進入會從上次中斷那點往下繼續去執行
fiber也有屬於自己的fls可提供使用
===========
當systemC 要更新成releace mode /MTD => /MT
==========
使用windos win32 pthread時 須下載新的函示庫
Pre-build.2 裡面包含了include和 lib 分別包含了pthreads for win32 的頭文件和庫文件(包括動態連接庫)
將include 和lib 裡面的內容分別複製到你的編譯器的include 和 lib 目錄,
同時將lib 目錄中的 dll 文件copy 到操作系統的system32 文件夾中。
Project/settings pthreadVC2.lib
===========
TLS(P-thread local storage)
pthread_key_t tlsKey = 0;
void* thr_fn(void* arg){
int TLS_data = 0;
pthread_setspecific(tlsKey, &TLS_data); //將key 跟 data bine再一起
此時使用 TLS_data皆為TLS
pthread_key_delete(tlsKey); //刪除
}
===========
semaphore.h
sem_t sem_key;
sem_init(&sem_key,0,預設值);
sem_wait(&sem_key); //sem_key-- 減為負數 則sleep
sem_post(&sem_key); //sem_key++ 反之
2009 11月14日 小紀錄
C++ 用於宣告大量類似的變數
可使用new 加上for loop
ex====
#define DEC_NUM 64
int main(){
char str[50]; //紀錄特殊字
dec_type *temp[DEC_NUM];
for(int i = 0; i sprintf(str, "hello%d",i);
temp[i] = new dec_type(str);
}
...
temp[i]->...;
...
}
可使用new 加上for loop
ex====
#define DEC_NUM 64
int main(){
char str[50]; //紀錄特殊字
dec_type *temp[DEC_NUM];
for(int i = 0; i
temp[i] = new dec_type(str);
}
...
temp[i]->...;
...
}
訂閱:
意見 (Atom)