2007年10月15日 星期一




呼,終於把 Tomasulo's Argorithm 推完ㄌ,


這個人真的是很厲害啊~
Scoreboard 計分版 (註1) 已經有一點小複雜了,

1967年(四十年前) IBM Robert Tomasulo 這個老傢伙還推出了進化版,

可見他內心的能量非常的強,才能又發現這麼強大的咒語 ...

( ㄆ,又寫到魔法少年賈修那邊去了... Orz ...

Tomasulo 演算法第一次實現(implemented)
是在 IBM360/91 的浮點運算單元FPU(Floating Point Unit),
運用了暫存器重新命名(Register Renaming)、

共用資料匯流排CDB(Common data bus) 廣播到訂位站(Reservation Station)
來增強指令的平行執行 (Improved Parallel execution of Instructions)。
而這是一種 Hardware 的 ILP (Instruction-Level Parallelism)方式,

所以是 Dynamic 的。


跟 Scoreboard 一樣,運用了暫存器重新命名(Register Renaming)能夠解決
WAR(Write after Read:又稱 Anti-Dependence)、
WAW(Write after Write:又稱 Output-Dependence)的危障(Harzard),
這個在第一步驟 Issue 時,便能消除。

而 RAW(Read after Write:又稱 True-Dependence),
只能藉由延後指令執行直到所有的Oprand(運算元)都到齊才能避免掉。
這個在第二步驟 Execute 時,便能消除。
最後,第三個步驟 Write Back,
就能運用 CDB傳到 Register 以及任何一個等待這個結果的
訂位站(Reservation Station)作一個緩衝。

(註1) : Scoreboarding; is a technique for allowing instructions to execute out-of-order when there are sufficient resources and no data dependences;

Example : The following is an example of the reservation station status when all of the instructions have issued, but only the first load instruction has completed and written its result to the CDB.
1. L.D F6, 34(R2)
2. L.D F2, 45(R3)
3. MUL.D F0, F2, F4
4. SUB.D F8, F2, F6
5. DIV.D F10, F0, F6
6. ADD.D F6, F8, F2


.End.

amzshar 發表在 痞客邦 留言(2) 人氣()

2008年3月12日 星期三

.
這禮拜的行程還蠻多ㄉ,因為交大資工這學期修了兩門主門,
(很慶幸撐到 研一 下ㄌ... ㄏㄏ)

一門是 傅心家教授 的 [多媒體資訊系統]
-> Multimedia Information System (類神經網路多媒體實驗室)

一門是 梁婷 教授的 [高等資料庫系統]
-> Advanced Database Management System (資訊擷取實驗室)

而這學期還有修 [論文研究] (就是跟教授 meeting, 非同步電路設計)
以及必修的 [專題研討] (就是共六次 禮拜六 的 Seminar 專家來演講)


中華隊賽程


所以
--- 星期一晚上 18:30:奧運棒球 中華-加拿大 ---

星期三晚上 : [論文研究]-非同步電路設計
--- 星期三晚上 18:30:奧運棒球 中華-澳洲 ---

星期四中午:參觀Boca新家 (後來取消ㄌ)
星期四晚上:[多媒體資訊系統]
--- 星期四晚上 18:30:奧運棒球 中華-南非 ---

星期五中午:隔壁部門專案上線,請吃飯 (因為我們是projectㄉ成員 :D )
星期五晚上:[高等資料庫系統]
--- 星期五晚上 18:30:奧運棒球 中華-韓國 ---

星期六早上:[專題研討]- (演講者:交大電機與控制工程系黃聖傑教授)

嗯~還蠻充實ㄉ ... XD

amzshar 發表在 痞客邦 留言(0) 人氣()

2007年8月20日 星期一

As we know, CPU includes 2 part.
One is CU (Control Unit), and the other is ALU (Arithmetics Logic Unit)
Let us design a 8-bit ALU by Belsa.

The ALU is as following :






----------------------------------------------------------
-- ALU8.balsa : 8-bit ALU
----------------------------------------------------------
-- 2007.07.29 by 9679505 Amzshar Liu ( AaA )
----------------------------------------------------------
--
-- 4 input ( aluop, src1, src2, PSW )
-- 2 output ( result, OPSW )
--
-- aluop is 3 bits ALU Operation Code
--
-- aluop : AND, OR, XOR, RLC, RRC, ADDC, SUBC, NONE
-- aluop = 0b000 -> AND
-- aluop = 0b001 -> OR
-- aluop = 0b010 -> XOR
-- aluop = 0b011 -> RLC (Rotate Left 1 bit with Carry)
-- aluop = 0b100 -> RRC (Rotate Right 1 bit with Carry)
-- aluop = 0b101 -> ADDC (src1 + src2 + PSW.CY)
-- aluop = 0b110 -> SUBC (src1 - src2 - PSW.CY)
-- aluop = 0b111 -> NONE
--
-- src1, src2 is 8 bits
-- result is 8 bits ALU Result
--
-- PSW, OPSW is 4 bits (P, OV, AC, CY)
-- P is 1 bit Parity Flag
-- OV is 1 bit Overflow Flag (1:overflow)
-- AC is 1 bit Auxilary Carry Flag
-- CY is 1 bit Carry Flag
--
-- All Op must update "PSW.P" according to "result"
-- ADDC : Update PSW.CY, PSW.AC, OV
-- SUBC : Update PSW.CY, PSW.AC, PV
--
----------------------------------------------------------

import [balsa.types.basic]

type OPType is 3 bits -- aluop OPType
type DataType is 8 bits -- src1, src2, result

type PswStatus is record -- PSW, OPSW
P, OV, AC, CY : bit
end

type InputType is record -- in_sigs
aluop : OPType;
src1 : DataType;
src2 : DataType;
PSW : PswStatus
end

type OutputType is record -- out_sigs
result : DataType;
OPSW : PswStatus
end

procedure ALU8(input in_sigs : InputType ; output out_sigs : OutputType) is
variable intmp : InputType
variable outtmp : OutputType
variable result : DataType -- outtmp.result
variable opsw : PswStatus -- outtmp.OPSW
-- variable P, OV, AC, CY : bit
variable src1tmp, src2tmp : DataType -- For ADDC, SUBC
variable CYtmp, Flag : bit -- For ADDC, SUBC
variable ADDSUB9 : 9 bits -- For ADDC, SUBC

---- Use shared add_sub to save cost
shared add_sub is
begin
ADDSUB9 := ( src1tmp + src2tmp + CYtmp as 9 bits ) ;

result := ( #ADDSUB9[0..7] as DataType ) ;

---- Overflow Detection Logic : Overflow = CarryIn[N-1] XOR CarryOut[N-1]
opsw.OV := #ADDSUB9[8] xor #src1tmp[7] xor #src2tmp[7] xor #ADDSUB9[7] ;

---- Flag=0 => ADDC => AC = 1, when there is a carry-out from bit 3
if( Flag = 0 ) then
opsw.AC :=( ( (not #src1tmp[4]) and (not #src2tmp[4]) and #result[4] ) or
( (not #src1tmp[4]) and #src2tmp[4] and (not #result[4]) ) or
( #src1tmp[4] and (not #src2tmp[4]) and (not #result[4]) ) or
( #src1tmp[4] and #src2tmp[4] and #result[4] ) ) ;

---- Flag=0 => ADDC => CY = 1 when there is a carry-out from bit 7
opsw.CY := #ADDSUB9[8]

else

---- Flag=1 => SUBC => AC = 1, if a borrow is needed for bit3
---- Because src2tmp = 1's complement of intmp.src2
opsw.AC :=( ( (not #src1tmp[4]) and (not #src2tmp[4]) and (not #result[4]) ) or
( (not #src1tmp[4]) and #src2tmp[4] and #result[4] ) or
( #src1tmp[4] and (not #src2tmp[4]) and #result[4] ) or
( #src1tmp[4] and #src2tmp[4] and (not #result[4]) ) ) ;

---- Flag=1 => SUBC => CY = 1 if a borrow is needed for bit7
opsw.CY := not #ADDSUB9[8]

end -- end if
end -- end begin

---- Update for outtmp.OPSW.P
shared ParityCheck is
begin
opsw.P := #result[0] xor #result[1] xor #result[2] xor #result[3] xor
#result[4] xor #result[5] xor #result[6] xor #result[7]
end -- end begin

---- Procedure BODY
begin
loop
in_sigs -> intmp ;
-- P := intmp.PSW.P
-- OV := intmp.PSW.OV
-- AC := intmp.PSW.AC
-- CY := intmp.PSW.CY ;
opsw := intmp.PSW ;

print "---> PSW (P, OV, AC, CY) => ", intmp.PSW.P , intmp.PSW.OV,
intmp.PSW.AC, intmp.PSW.CY ;

case intmp.aluop of
0b000 then ---- AND
result := intmp.src1 and intmp.src2 ;
print "aluop=000 : ", #intmp.src1, " AND ", #intmp.src2, " => ", #result

0b001 then ---- OR
result := intmp.src1 or intmp.src2 ;
print "aluop=001 : ", #intmp.src1, " OR ", #intmp.src2, " => ", #result

0b010 then ---- XOR
result := intmp.src1 xor intmp.src2 ;
print "aluop=010 : ", #intmp.src1, " XOR ", #intmp.src2, " => ", #result

0b011 then ---- RLC : (Rotate Left 1 bit with Cary)
result := ( #intmp.PSW.CY @ #intmp.src1[0..6] as DataType ) ;
opsw.CY := #intmp.src1[7] ;
print "aluop=011 : ", #intmp.src1, " RLC => ", #result

0b100 then ---- RRC : (Rotate right 1 bit with Cary)
result := ( #intmp.src1[1..7] @ #intmp.PSW.CY as DataType) ;
opsw.CY := #intmp.src1[0] ;
print "aluop=100 : ", #intmp.src1, " RRC => ", #result

0b101 then ---- ADDC is " result := src1 + src2 + CY " and Updated PSW
---- => result := src1tmp + src2tmp + CYtmp
src1tmp := intmp.src1 ;
src2tmp := intmp.src2 ;
CYtmp := intmp.PSW.CY ;
Flag := 0 ;
add_sub() ;
print "aluop=101 : ", #intmp.src1, " ADDC ", #intmp.src2, " => ", #result

0b110 then ---- SUBC is " result := src1 - src2 - CY " and Updated PSW
---- => result := src1 + ( (not src2) + 1 ) - CY
---- => result := src1 + ( not src2) + ( 1 - CY )
---- => result := src1tmp + src2tmp + CYtmp
src1tmp := intmp.src1 ;
---- Here for src2 1's complement
src2tmp := ( not intmp.src2 + 1 as DataType ) ;
---- Here (+1 - CY) for src2 2's complement
CYtmp := ( not intmp.PSW.CY as bit ) ;
Flag := 1 ;
add_sub() ;
print "aluop=110 : ", #intmp.src1, " SUBC ", #intmp.src2, " => ", #result

0b111 then ---- NONE
print "alop=111 : NONE ! " ;
continue
end; -- end case intmp.aluop

ParityCheck();

print "==> OPSW (P, OV, AC, CY) => ", opsw.P, opsw.OV, opsw.AC, opsw.CY ;

outtmp.result := result outtmp.OPSW := opsw ;
out_sigs <- outtmp ;

print ">>>=====================================================>>>"
end -- end loop
end -- end begin

amzshar 發表在 痞客邦 留言(0) 人氣()

2007年8月11日 星期六

這是我們 非同步電路設計 Project / LAB1 ,用 Balsa 語言寫一個 Wagging Shift Register





========================================

-- SRA1.balsa : Single Stage Shift Register
-- 20070515 by 9679505 / Amzshar Liu ( AaA )
import [balsa.types.basic]

procedure sra1(input i : byte ; output o : byte) is
variable x : byte
begin
loop
i -> x ; -- Input Communication
o <- x -- Output Communication
end -- end loop
end

========================================

(-- SRC1.balsa : 1-place Shift Register (Improved)
i -> [x -> y] -> o
--)

import [balsa.types.basic]

procedure src1(input i : byte ; output o : byte ) is
variable x, y :byte
channel cl : byte
begin
loop
o <- y
i -> x ;
y := x
end -- end loop
end
========================================
-- SRD1.balsa : demux i to o1, o2 alternately

--- 20070515 by 9679505 / Amzshar Liu ( AaA )
import [balsa.types.basic]

procedure srd1(input i : byte ; output o1 : byte ; output o2 : byte) is
variable x, y : byte
begin
loop
-- read channel i into register x while writing register y to channel o2
i -> x o2 <- y ;
-- read channel i into register y while writing register x to channel o1
i -> y o1 <- x
end -- end loop
end
========================================
-- SRE1.balsa : demux i1, i2 into o alternately
-- 20070515 by 9679505 / Amzshar Liu ( AaA )
import [balsa.types.basic]

procedure sre1(input i1 : byte ; input i2 : byte ; output o : byte) is
variable x, y : byte
begin
loop
i1 -> x o <- y ;
i2 -> y o <- x
end -- end loop
end
========================================
-- SRW8A.balsa: Multi-Stage Wagging Shift Register
-- 20070515 by 9679505 / Amzshar Liu ( AaA )
import [balsa.types.basic]
import [SRA1]
import [SRD1]
import [SRE1]

procedure srw8a(input i : byte ; output o : byte) is
constant n = 8
array 1..n/2 of channel c1, c2 : byte
begin
srd1(i, c1[1], c2[1])
sre1(c1[n/2], c2[n/2], o)
for i in 1..(n/2)-1 then
sra1(c1[i], c1[i+1])
sra1(c2[i], c2[i+1])
end -- end for
end

========================================
-- SRW8C.balsa: Multi-Stage Wagging Shift Register
-- 20070515 by 9679505 / Amzshar Liu ( AaA )
import [balsa.types.basic]
import [SRC1]
import [SRD1]
import [SRE1]

procedure srw8c(input i : byte ; output o : byte) is
constant n = 8
array 1..n/2 of channel c1, c2 : byte
begin
srd1(i, c1[1], c2[1])
sre1(c1[n/2], c2[n/2], o)
for i in 1..(n/2)-1 then
src1(c1[i], c1[i+1])
src1(c2[i], c2[i+1])
end -- end for
end

========================================


amzshar 發表在 痞客邦 留言(0) 人氣()

2007年8月4日 星期六

軟體越做越大,下載越來越多,我ㄉNotebook都裝不下ㄌ,
加上用 diggirl幹圖王 塞進來ㄉ檔案,一下暴增幾十GB ...
塞爆ㄌ我ㄉ60G 硬碟 ...Orz
於是上週 8/1(三) 在 Yahoo!奇摩拍賣標ㄌ一台
[ HITACHI 垂直寫錄 2.5" 5400轉/8M IDE 160G H.D.D. ]
放假回到桃園就收到ㄌ,真是超開心... 哈哈哈

所謂ㄉ"垂直寫入 Perpendicular Recording"
就是說傳統ㄉ硬碟不是垂直寫入ㄉ,而是長ㄉ像這樣,
Longitudinal recording aligns the data bits horizontally, parallel to the surface of the disk.



而新ㄉ技術 In contrast, perpendicular recording aligns bits vertically, perpendicular to the disk.
In this orientation materials and smaller crystalline grains can be used wherein it is harder to reverse the magnetic orientation, resulting in smaller physical bits that are still stable at room temperature.
長的就會像這樣



感覺同樣ㄉ距離,就可以塞更多ㄉ資料,讀寫頭也能以較小ㄉ距離來 Read/Write,酷ㄅ!!!
再看這張圖,比較有 feel ...


經過把玩之後,速度也有比較快,傳統ㄉ大概 Seek Time = 12 ~ 13 ms
而這顆 Seek Time = 11 ms (其實現在新ㄉ硬碟大多是這樣ㄉ速度啦~~~)

不過,比較慘ㄉ是,
因為Ghost 過來ㄉ開機速度還是一樣龜慢 ...
最後我還是重灌ㄌ O.S. ... 喵ㄉ勒 ... >.<"

amzshar 發表在 痞客邦 留言(0) 人氣()

2007年8月3日 星期五


原文 : http://taiwan.cnet.com/enterprise/technology/0,2000062852,20120001,00.htm

近年來UNIX伺服器用的處理器之發展可說是以3年為一個單位,每3年換替一個世代,在換替成新一世代前, 原有世代的處理器只會進行小幅的設計改版,並在設計改版的同時順便使用新的半導體製程技術來產製,除此之外不會有其他變化,更簡單說:在3年時間內該世代的技術架構不會有大幅變化。

反過來說:3年一次的新世代到臨時,就會帶來許多的新技術架構、新變革趨勢,這些新物都將成為新的衡量指標,衡量該運算系統是否跟上了時代潮流。因此,本文以下將針對碩果僅存的3大UNIX伺服器用處理器(POWER、SPARC、IA-64)為橫軸,以及2000年以來的3個技術世代(2001年、2004年、2007年)為縱軸,進行各項處理器技術的比較分析。

2001年:雙核 Dual Core
2001年IBM發表了POWER4處理器,該處理器的最大技術特點在於「雙核,Dual Core」架構,1個POWER4處理器內具有2個POWER3(POWER4前一世代的處理器)的執行核心,且2個核心都再行強化設計,如此使POWER4處理器的效能更上一層,同時也引發其他晶片業者的仿效。

雖然IBM於2001年就開發出雙核處理器,但業界其他業者一直到2004年才追趕上,2004年HP發表PA-8800的雙核處理器,該處理器是將其前一世代的PA-8700處理器進行雙併而成,同年Sun也發表UltraSPARC IV處理器,也是將2個前一世代處理器(即UltraSPARC III)進行雙併而得。

以上為UNIX伺服器所用的處理器,在此也順帶提x86伺服器用的處理器,無論是AMD的Opteron或Intel的Xeon都是在2005年進入雙核層級。另外,用來接替MIPS、Alpha、PA-RISC的IA-64處理器:Itanium 2則是在2006年才進入雙核。

2004年:雙核雙緒
同樣以IBM為技術指標,2004年IBM發表了POWER5處理器,POWER5是POWER4的強化提升,除了具有原有的雙核架構外,又為每個核心增加了雙緒架構,形成雙核雙緒,因此雙緒也成為UNIX伺服器的新技術要點。

IBM雖然是UNIX運算系統中最早提供雙緒能力的業者,但不表示是全業界第一,Intel在2002年的Xeon處理器中加添了超執行緒(HyperThreading,簡稱:HT)技術,此即屬於雙緒技術,所以x86系統比UNIX系統更早具備雙緒能力。

話雖如此,但回歸到純UNIX系統領域來看,除2004年IBM第一個到位外,一直到2007年才有第二個實現者,即是Sun與Fujitsu合作研發的SPARC64 VI處理器,該處理器不僅是原有SPARC64 V處理器的雙核版,同時也加入雙緒技術,與IBM POWER5同樣為雙核雙緒處理器。

至於Itanium 2,由於在2006年才完成雙核化,因此不易在隔年就實現雙緒設計,所以到目前為止都僅由雙核,而無雙核雙緒。

三大Unix伺服器架構在2004年以前的演進。而2007年則是另一個里程碑。

2007年:破4GHz的運作時脈

2007年IBM發表POWER6處理器,UNIX運算系統又進入一個新技術世代,雖然POWER6有諸多新的功效特點,但其中最受人矚目的一點是工作時脈,POWER6擁有4.7GHz的時脈,是目前所有處理器之最。

近年來處理器的時脈提升發展遭遇到前所未有的瓶頸,幾乎各業者的處理器都無法突破4GHz,3.8GHz已是極限,形成所謂的時脈壁障,事實上x86處理器之所以轉向多核化發展,很大原因也在於時脈速度無法突破,然又必須持續提升效能,只好轉向多核路線發展。

不過,IBM的POWER6證實處理器可以超越4GHz時脈,目前為止其他業者都難以突破此限,Sun與Fujitsu合作研發的SPARC64 VI也僅有2.4GHz,至於Itanium 2更只有1.6GHz。

其他比較
多核、多緒、超高時脈都是屬於硬體面的技術,且很多程度要倚賴半導體技術才能實現,但其實新世代技術還有許多是屬於功效面的,例如更先進的系統分割技術(Partitioning)、更高超的運算容錯(Fault-Tolerance)技術等,然在此無法一一比較,且有時此類型的技術還要搭配新版作業系統才能發揮(如Solaris 10、AIX 6等),必須與作業系統一起審視、評估才能比較出優劣。

此外,並非所有POWER6的新技術、新功效都具指標意義,例如POWER6具有向量運算能力,然向量運算只在科學、工程運算領域有運用,一般商業運算幾乎不會用上,這就不能列為指標性的新技術。

當然!上述僅以儘可能共通的工藝技術來比較,但並非所有的硬體設計都可以齊頭比較,例如POWER6與Itanium 2都具有L3 Cache(第三階快取記憶體),但SPARC64 VI則沒有,如此就無法比較。即便要比較,有的L3 Cache與處理器一同封裝,有些則設置在系統板上,如此也一樣難以等齊看待。

最後倒是還可以稍比較2點,此2點屬於整機性的表現,即比較「單一系統最高處理器數目」與「系統升級彈性」。在單一系統的處理器數而言POWER6居最劣勢,僅有16顆,此主要是因為採行新連接架構的緣故,但也因為新連接架構使POWER6的伺服器擁有最高的運用彈性,每一部單機都可以運作,而透過機外接線就可以將多機融合成單機。

至於SPARC64 VI與 Itanium 2都可以達64顆,過去SPARC64 V的系統甚至可達128顆,很明顯單機的處理器數目遠勝POWER6,但系統升級彈性上就不如POWER6,SPARC Enterprise M系列的伺服器仍是以「單一機櫃內各模組電路板的替換」來升級,IBM的POWER5/POWER5+系統也是如此,至於Itanium 2的系統也是以整機機櫃為主,不過Itanium 2系統不單是只有HP一家研製,也包括NEC、Fujitsu等,甚至也用於Bull、UNISYS的大型主機內,所以也很難一概而論。

.^.

amzshar 發表在 痞客邦 留言(0) 人氣()

2007年7月9日 星期一

想說可以在開學前抵9學分,於是想要來暑修一下
(唉!要是以前大學那麼用功就好了~ >"< )

這次交大資工所"暑假"共開了四門課,
-------------------------------
課號 課程名稱 學分 開課系所 開課教師
5017 視訊壓縮 3.00 電機專 蕭旭峰
5018 資料探勘 3.00 電機專 彭文志/黃俊龍
5019 計算機運算,組織與分類 3.00 電機專 鍾崇斌
5020 非同步電路設計 3.00 電機專 陳昌居
-------------------------------

上週三(7/4) 去聽了彭教授的Data Mining(資料探勘),覺得這是一門非常有趣的課,但是覺得兩個月內要修完,可能無法學到爐火純青的境界,所以等正課的時候再來修好了。是門需要 Databse、Statistics and Algorithm 技巧的課程。
課程綱要:
1. Introduction to data mining
2. Mining association rules
3. Data classification
4. Data warehouse and OLAP
5. Data clustering
6. Mining sequential patterns
7. mining
8. Stream data mining
9. Sensor data mining
10.Privacy data mining
... ... ... more ... ... ...
-------------------------------

上週六(7/7)早上 9:00~16:30 則是去聽鍾教授的"計算機運算,組織與分類",聽說是第一次開這樣的課程。因為對姓鍾感到特別親切,而且以前也修過鍾教授的"嵌入式系統",所以週末還是頂著大太陽去聽課。

嗯,聽了之後覺得可以複習大二到大四的計算機組織、機算機結構、數位邏輯...是門非常有廣度的課呦。

Summary :
1. Digital electronics—Semiconductor, devices, IC, and MOS electronics
2. Digitalization and digital systems
3. Combinational circuits—Fundamentals, simplification, design, and array logic
4. Sequential circuits—Fundamentals, analysis, simplification, and design
5. Computer abstractions and technology
6. Instructions: Language of the computer
7. Arithmetic for computers
8. Assessing and understanding performance
9. The processor: Datapath and control
10.Enhancing performance with pipelining
11.Computer categorization

-------------------------------

上週四(7/5)則是聽了陳教授的 Asyncronous Circuit Design,是一種不用 Clock 的電路設計,這真
是太酷了,有以下優點:Low power consumption, High operating speed, Less emission of electro-magnetic noise, Robustness towards variations in voltage, temperature,
and fabrication process parameters, Better composability and modularity,
and No clock distribution and clock skew problems。

最後,幾經考慮,決定修這個, ㄏㄏ ... (因為每個都想修 ... Orz ...

-------------------------------


.End.

amzshar 發表在 痞客邦 留言(0) 人氣()

2007年4月11日 星期三

因為考上交大研究所,今天中午請部門同事吃 「東京都日式料理百匯」竹北店
參考網址 ---> http://www.tokyodu.com.tw/ 感覺還不錯 ~

結果大家還真的蠻給他捧場的,前前後後來了 20 個人 ...
(奇怪,平常做事好像也沒那麼多人,大家平常都躲哪裡? ... ~.~ )
看大家都吃的好開心的,自己也覺得很高興 ...

吃飽后,閉著眼睛去刷卡,不想去 care 價錢,
突然想到不知道誰說的:"買東西不用看價錢",這不是大家夢寐以求的嗎?
不過,可惜我還沒到這個境界 ...

最近都在講:考上要請客,這樣以後誰還敢考上啊?

就如 Laurence 常說的 ~
什麼?生日要請客!?,這樣以後誰還敢生日啊!???

啃,不知道在寫啥ㄌ,大概是感冒越來越嚴重ㄌ,還是去看醫生吧 ...

amzshar 發表在 痞客邦 留言(0) 人氣()

2007年3月30日 星期五
感謝同事兼好友 Citrix Team 扛霸子 Hank 的通知,

原本預計 4/1 公布的 "國立交通大學 96學年度的碩士在職專班" 初試榜單

在今晚居然提前公布了 ~~~  

大概是怕四月一號愚人節吧!!!    \ o /


 

唉!沒想到沒那個機會與榮幸,參加第二階段的口試了 ... Orz ...

 

... ... ...

 

因為,直接錄取了 ... 

 

... ... ... more ... ... ...
這樣就可以名正言順的跟人家說 :
表面上我是個台X電 IT 砍搔騰,
其實我真正的身份是 "掩~搞~ㄙㄣ" ... (香港發音 ... 請參考 星爺 《喜劇之王》)

這也就是我想報考的主要動機 ... 哇~哈哈~~~

 

感謝這一鎮子工作上罩我的同事 以及幫我加油的親朋好友們!
謝謝您們 !!!


 


 

底下是朋友ㄉ留言,
只能說,看我多認真,他們真瞭解我啊~~~ 哈!
謝謝大家 !




.End.

amzshar 發表在 痞客邦 留言(0) 人氣()