SlideShare une entreprise Scribd logo
1  sur  72
Télécharger pour lire hors ligne
第六章

快取效能補償

         1
簡報綱要

6.1   引言
6.2   記憶體效能失衡
6.3   快取結構設計
6.4   記憶體平均存取時間

6.5   區域存取性       6.9   集合關聯映射
6.6   映射函數        6.10 寫入策略
6.7   直接映射        6.11 快取階層
6.8   完全關聯映射      6.12 結語        2
核心重點

    快取記憶體利用區域存取
•
    原理,以補償晶片之間的
    效能失衡,改善范紐曼瓶
    頸。

    快取有三種映射函數:直接映射、完全關聯映射、集合關聯
•
    映射,可以把少量的高速快取記憶體,搭配大量的慢速記憶
    體,建構出完美的快取結構。

                             3
「快速逐慢速」,即使快速有錯,仍然如此。


  ~ 計算機界的「劣幣逐良幣」定律




                       4
6.2


      5
效能失衡!
長時間以來,CPU一直追求高速,但記憶體卻追求高容
量,兩者的趨勢逐漸拉大速度的差異,產生效能失衡的
問題。
依照擷取−解碼−執行的指令週期,CPU和記憶體之間的
往返,顯然是所有晶片之間最頻繁的部分,如果CPU每次
擷取指令都必須經由慢速的記憶體,那麼記憶體參考將
造成執行效能的瓶頸。

                            6
效能失衡

橋接器能夠溝通匯流排協
定,不代表可以發揮最佳化
的效能表現。


從CPU−記憶體、CPU−I/O、I/O−記憶體出發,都會出現效能失衡
從CPU−記憶體、CPU−I/O、I/O−記憶體出發,都會出現效能失衡
(performance unbalance)情況。
(performance unbalance)情況。

                                 7
CPU內頻和外頻

              CPU的內頻 = 外頻 × 倍數




外頻雖然慢速,但進入CPU內部的倍頻電路後,呈倍數地轉
換成內頻,變成CPU內部高速運作的時序。

                             8
市場常以CPU頻率來評估電腦的效能,試問一個
CPU外頻為200MHz,內部具有16倍頻電路,則其內部頻
率為何?
 解答>
   CPU的內頻 = 外頻 × 倍數 = 200MHz × 16
           = 3200MHz = 3.2GHz


                                    9
FSB(前端匯流排)
   FSB與外頻

                             0.8GHz
                   3.2GHz

Intel特別把CPU連接到北橋
的區域匯流排,稱為FSB(前
端匯流排)。

FSB支援800MHz(等效時脈),由於一個時脈週期,可傳送四個
FSB支援800MHz(等效時脈),由於一個時脈週期,可傳送四個
位元資訊,因此外頻仍然為200MHz(真實時脈)。
位元資訊,因此外頻仍然為200MHz(真實時脈)。

                                         10
不管如何…
不管如何…

一旦CPU要擷取記憶體內容(指令或資料),
一旦CPU要擷取記憶體內容(指令或資料),
就必須通過區域匯流排,此時CPU必須要從高
就必須通過區域匯流排,此時CPU必須要從高
速的內頻,降到慢速的外頻(或FSB頻率)。
速的內頻,降到慢速的外頻(或FSB頻率)。




                        11
6.3


      12
※照片出處   http://en.wikipedia.org/wiki/Maurice_Wilkes
魏爾克斯
 魏爾克斯生於1913的英格蘭,二戰結束後,魏爾克斯回到
 劍橋大學,建立了數學實驗室。(後改為電腦實驗室)
 1946年,魏爾克斯參加為愛
 1946年,魏爾克斯參加為愛
 尼克計算機所舉辦的暑期研
 習,從此開啟他在計算機界
 的卓越貢獻,相關傑出成就
 與榮耀(含杜林獎),證明
 他在計算機界無比崇高的領
 導地位。
       Maurice Wilkes(1913~)                                           13
想要使用快速記憶體,可以把少量的快速記憶體(比如:
32,000個字組),搭配大量的慢速核心記憶體(比如:
1,000,000字組),在實際的應用案例中,整體存取的效
能將會比較接近快速記憶體而的表現,而不是慢速記憶
體。
            ~魏爾克斯(Maurice Wilkes)



                                14
這種觀念稱為快取結構設計,
   快取結構可以用來補償
記憶體效能失衡問題和改善范紐曼瓶頸。




                     15
快取結構設計

主記憶體通常是大量且慢速
的DRAM記憶體模組;而快取
記憶體則是少量且高速的
SRAM記憶體。

CPU先跟快取記憶體索取字組,擊中(hit)時會有很快的存取
CPU先跟快取記憶體索取字組,擊中(hit)時會有很快的存取
速度;反之,失誤(miss)則必須再向主記憶體索取字組,代
速度;反之,失誤(miss)則必須再向主記憶體索取字組,代
價有些慘重,整體存取時間更久。
                            16
6.4


      17
AMAT
                         AMAT = C + (1-h) M
                         其中:
整個記憶體平均存取時間                        擊中次數
                         h擊中率 =           ×100%
(Average Memory Access             請求總數

Time)簡寫成AMAT。

 其中,C代表快取記憶體的存取時間,M代表主記憶體的存
 取時間,h代表擊中率,1-h代表失誤率。

                                              18
如圖6-2,快取記憶體存取時間為1ns,而主記憶
體存取時間為6ns,試以快取擊中率為90%來看,試問這
兩個記憶體的平均存取時間(AMAT)為何?
解答>

AMAT = C + (1-h) M = 1ns + (1-0.9)×6ns = 1.6ns

整體平均存取時間會往快取記憶體的存取時間(1ns)
靠攏,接近快取效能!

                                                 19
平行設計
現代快取技術會使用平行設計,來降低快取失誤的慘痛代
價,至少要做到:最壞的情況不能比原先還壞。
最簡單的方法,就是讓CPU擷取字組時,同時發出訊號給
快取記憶體和主記憶體,讓兩者平行工作,一旦快取擊中
時,則會主動取消主記憶體的命令;反之,若快取失誤,
則因為主記憶體同時進行存取動作,因此將跟原先沒有快
取時,一樣的存取時間而已,沒有惡化。


                        20
6.5


      21
區域存取性
 • 空間區域存取性
    (Spatial locality)
 • 時間區域存取性                快取記憶體容量一般並不
                          大,往往無法容納整個程
    (Temporal locality)
                          式或資料。
                          式或資料

如果我們能夠掌握程式的行為模式,把即將要執行的指令或
資料,以區塊的方式擷取到快取內部,如此將能夠提昇擊中
率,降低失誤率。

                                    22
空間區域存取性!
在程式執行的過程中,CPU存取指令和資料的方式,總是
傾向在某個局部區域內進行。
簡單地說,程式流程大都一個指令緊接著一個指令,逐
步順序地往下執行,遇到副程式和迴圈指令,也會不斷
地重覆存取局部區域內的指令,這種特性就是所謂的空
間區域性。



                           23
時間區域存取性!
長時間來看,程式是依順序執行指令,浮動地流過整個
程式區域;
但以短時間來看,CPU好像固定在某些區域內,不斷地進
行記憶體的存取動作而已,因此剛剛才執行過的指令
(或被擷取的資料),有很高的機率會再度被執行(或
擷取)。



                           24
6.6


      25
僧多粥少

               快取發生失誤時,會直接
               從主記憶體搬走對應的記
               憶區塊,放在快取線上。

因此一個快取線路可以對應到某一個區塊,問題在於主記憶
體遠大於快取記憶體,因此區塊數也就遠多於快取線,僧多
粥少,焦點演變到眾多的區塊如何搶奪少量的快取線。

                         26
”小容量 vs 大容量“的函數配置法:

       直接映射快取
   •
       完全關聯快取
   •
       集合關聯快取
   •




                      27
標籤
快取結構除了必須紀錄主記憶體的內容(K個字組)外,
還必須紀錄主記憶體的位址,稱為標籤(tag),標籤是
快取記憶體最大的特點,也是快取記憶體與主記憶體最大
的差別。
最簡單的標籤就是把整個主記憶體的位址,都完全儲存,
以後只要比對標籤,就可以知道是否擊中。然而,只要我
們能善用快取本身的位址索引,標籤並不一定要記錄位址
的所有位元。

                         28
6.7


      29
直接映射,就好像
分配8個學生到僅有4個座位的教室,最簡單的分配方式
就是1號學生分配1號座位、2號學生分配2號座位、…,
一直到4號後,座位第一次分配滿;
接著第二次的循環配置,也就是重複一次,5號學生分配
1號座位、6號學生分配2號座位、….依此類推。
這種直接配置方式相當簡易,每個學生總是「對號入
座」,但是因為一個座位分配給二個學生,如果這二個
學生搶奪同一座位,就必須有一種配置規則,來防止衝
突的發生。
                             30
直接映射

                假設快取線和區塊大小
                都是1B,快取有4個快取
                都是1B,快取有4個快取
                線,主記憶體有8個區
                線,主記憶體有8個區
                塊。

直接映射依順序分配區塊,每個區塊只能放到固定的快取線,
一個快取線對應到二個區塊(一對多的函數關係)(二個區塊
搶一個快取線)。

                           31
二個區塊搶一個快取線

    2:1




             32
後到趕先來
直接映射的置換規則,就是:「後到趕先來」。
比較慢出現的區塊總是把先前的區塊置換掉,好
像是後到的學生趕走先坐好座位的學生一樣,這
種規則有點單純,因為即使教室還有其它空位,
學生仍然必須對號入座,無法使用其它空白的快
取線。


                        33
如圖,使用直接映射函數,來連結快取與主記憶體之間的對
應。並且假設:
1.主記憶體共有8個位元組位址;快取則有4個位元組快取線。
2.快取記憶體有三個部分:最左邊索引位址;中間標籤
(Tag);右邊則是資料。
3.主記憶體的區塊為1個位元組,快取線也是1 個位元組。
4.一開始快取完全空白。
CPU會依序地進行記憶體參考(memory reference)動作,總
共有六個參考位址(如最左邊欄位)(二進位表示),請依序
存取這六個參考位址,然後填寫下列8個空格的最終資料?並
且計算其擊中率為多少?                         34
欲存取的           快取記憶體       主記憶體
參考位址      位址 標籤    資料     位址    資料
 001      00              000   11H
 010      01              001   22H
 011      10              010   33H
 100      11              011   44H
 010                      100   55H
 011                      101   66H
        ※位址、標籤以二進制表示      110   77H
       ※資料以16進制表示,簡寫為H。   111   88H

                                      35
解答>
(i)首先,決定Tag(標籤)的長度:
快取索引位址2位元,而主記憶體位址有3位元,
因此Tag長度是1位元。
其次,瞭解其置換法:直接映射的置換法是「後
到趕先來」



                         36
(ii)存取動作如下:
1. 第一個參考欲擷取主記憶體位址001:快取miss
          所以 填入0,而 填入22H
2.   第二個參考欲擷取主記憶體位址010:快取miss
          所以 填入0,而 填入33H
3.   第三個參考欲擷取主記憶體位址011:快取miss
          所以 填入0,而 填入44H
4.   第四個參考欲擷取主記憶體位址100:快取miss
          所以 填入1,而 填入55H
5.   第五個參考欲擷取主記憶體位址010:快取hit
       直接擷取快取內容 ,不會擷取主記憶體
6.   第六個參考欲擷取主記憶體位址011:快取hit
       直接擷取快取內容 ,不會擷取主記憶體       37
(iii)
   快取擊中率:總共6個存取動作,2個hit。

        2
          × 100% = 33.3%
        6




                           38
6.8


      39
完全關聯映射
沿用:分配8個學生到僅有4個座位的教室為例。
完全關聯映射,就像是「先來先坐」。
老師不須為學生配置座位,學生來教室看到有座位
就坐下….(盡量坐前面的座位),一直等到所有
的座位坐滿以後,才要注意置換問題。


                         40
8個區塊搶四個快取線

    8:4




             41
完全關聯映射的置換規則:
• FIFO(First In First Out,先進先出):如果
發生置換行為的話,先進先出置換法就是最先進入
快取線的記憶區塊,總是會最先被淘汰出去。
• LRU(Least Recently Used,近來無用法):淘
汰快取線中,最久沒作存取的區塊。(計算時間)
• LFU(Least Frequently Used,最罕使用法):
淘汰快取線中,最少使用的區塊。(計數頻率)
• 亂數置換(Random Replacement):隨機淘汰一
條快取線。
                                      42
如圖使用完全關聯映射,來連結快取與主記憶體之間的對應。並
且假設:
1.主記憶體共有8個位元組位址;快取則有4個位元組快取線。
2.快取記憶體有二個部分:左邊標籤(Tag);右邊則是資料。
3.主記憶體的區塊為1個位元組,快取線也是1 個位元組。
4.一開始快取空白,當快取空白時,依序先填資料1、2、3、4。
5.若需置換資料,請使用LRU置換法。
CPU會依序地進行記憶體參考(memory reference)動作,總共有
六個參考位址(如最左邊欄位)(二進位表示),請依序存取這
六個參考位址,然後填寫下列8個空格的最終資料?並且計算其擊
中率為多少?                               43
欲存取的                    快取記憶體                     主記憶體
           標籤 資料   標籤   資料   標籤   資料 標籤 資料
參考位址                                             位址    資料
            1  1    2    2    3    3  4  4
       →                                     →
 001                                             000   11H
       ←                                     ←
 010                                             001   22H
 011                                             010   33H
 100                                             011   44H
 010                                             100   55H
 011                                             101   66H
               ※位址、標籤以二進制表示                      110   77H
             ※資料以16進制表示,簡寫為H。                    111   88H
                                                       44
解答>
(i)首先,決定Tag(標籤)長度:
完全關聯映射與索引位址無關,主記憶體3位元,
因此Tag(標籤)長度就是3位元。
其次,所謂LRU置換法就是:淘汰快取線中,最久
沒有存取的區塊。



                          45
(ii)存取動作如下:
1. 第一個參考欲擷取主記憶體位址001:快取miss
        所以 填入001,而 填入22H。
2. 第二個參考欲擷取主記憶體位址010:快取miss
         所以 填入010,而 填入33H
3. 第三個參考欲擷取主記憶體位址011:快取miss
         所以 填入011,而 填入44H
4. 第四個參考欲擷取主記憶體位址100:快取miss
         所以 填入1,而 填入55H
5. 第五個參考欲擷取主記憶體位址010:快取hit
     因此直接擷取快取內容 ,不會擷取主記憶體
6. 第六個參考欲擷取主記憶體位址011:快取hit
     因此直接擷取快取內容 ,不會擷取主記憶體     46
(iii)
   快取擊中率:總共6個存取動作,2個hit。

        2
          × 100% = 33.3%
        6




                           47
6.9


      48
二向集合關聯映射,就好像
分配8個學生到教室,教室內有2排座位,每排各有二個座
位,總共還是有4個座位,而這二個座位可以共用,教師分
配學生的方式是以排為單位(非以座位來分配),也就
是:1號學生分配第1排、2號第2排、…;3號再從第1排重
新開始、4號第2排、…以此類推。
換言之,每排只有二個座位,但配置給4個學生,如果有三
個(或以上)的學生搶奪同一排的座位,就必須有一種置
換規則,來防止衝突的發生。置換方法可以自行自訂規
則,一般和完全集合關聯的置換演算法觀念相同。
                           49
集合關聯映射

               集合關聯映射結合直接映
               射和完全關聯映射的優
               點。

以二向集合關聯來看,不管有幾排,總是有二個集合,而每
筆資料「依排分配座位」,可以放在第一個集合,或第二個
集合。

                         50
4個區塊搶2個快取線

    4:2




             51
如圖使用集合關聯映射,來連結快取與主記憶體之間的
對應。並且假設:
1.主記憶體共有8個位元組位址;快取則有4個位元組快取線。
2.快取記憶體有二個部分:最左邊是索引位址,中間標籤
(Tag);右邊則是資料。
3.主記憶體的區塊為1個位元組,快取線也是1 個位元組。
4.一開始快取完全空白,當快取空白時,依序先填資料1,然
後再填資料2;
5.若需置換資料,請使用LRU置換法。
CPU會依序地進行記憶體參考(memory reference)動作,總
共有六個參考位址(如最左邊欄位)(二進位表示),請依序
存取這六個參考位址,然後填寫下列8個空格的最終資料?並
且計算其擊中率為多少?
                                   52
欲存取的               快取記憶體                   主記憶體
           位址   Tag1 資料1   Tag2 資料2
參考位址                                      位址    資料
       →                              →
           0                              000
 001                                            11H
       ←                              ←
           1                              001
 010                                            22H
                                          010
 011                                            33H
                                          011
 100                                            44H
                                          100
 010                                            55H
                                          101
 011                                            66H
                                          110
           ※位址、標籤(Tag)使用二進制。                    77H
                                          111
           ※資料使用16進制,簡寫為H。                      88H

                                                 53
解答>(i)首先,決定Tag(標籤)的長度:
快取索引位址1 位元,而主記憶體3位元,因此Tag
(標籤)長度是2位元。
其次,LRU置換法:淘汰快取線中,最久沒有存取的
區塊。




                            54
(ii)存取動作如下:
1. 第一個參考欲擷取主記憶體位址001:快取miss
        所以 填入00,而 填入22H
2. 第二個參考欲擷取主記憶體位址010:快取miss
        所以 填入01,而 填入33H
3. 第三個參考欲擷取主記憶體位址011:快取miss
        所以 填入01,而 填入44H
4. 第四個參考欲擷取主記憶體位址100:快取miss
        所以 填入10,而 填入55H
5. 第五個參考欲擷取主記憶體位址010:快取hit
    因此直接擷取快取內容 ,不會擷取主記憶體
6. 第六個參考欲擷取主記憶體位址011:快取hit
    因此直接擷取快取內容 ,不會擷取主記憶體      55
(iii)
   快取擊中率:總共6個存取動作,2個hit。

        2
          × 100% = 33.3%
        6




                           56
檢視差異
觀察以上三種映射函數,檢視其差別:

• 直接映射:2個區塊搶1個快取線     (2:1)

• 二向集合關聯映射:4個區塊搶2個快取線(4:2)

• 完全關聯映射:8個區塊搶4個快取線   (8:4)

看起來,這三者比例相同,擊中率似乎也會相同。


                              57
檢視差異
如果站在區域存取的角度來看,這三者意義不同,以
(8:4)為例,能夠參與搶奪快取線總是侷限在附近
幾個區塊而已,因此實際的競爭者會少於8個區塊,擊
中率相對也會比較好。
換言之,一旦加入區域存取觀念,擊中率應該以完全
關聯映射最好,二向集合關聯映射居次,直接映射最
差。(注意:實現成本剛好相反)

                           58
6.10


       59
Load
 記憶體參考動作有二:
 • 載入(Load)記憶體
                  大部分的記憶體參考動
 • 儲存(Store)記憶體
                  作(約有七、八成)是
                  載入(Load)動作。
                  載入(Load)動作。

不管在載入的任何時刻…,也不管是擊中或失誤與否,主記
不管在載入的任何時刻…,也不管是擊中或失誤與否,主記
憶區塊為正本,快取線則是複本,正本和複本總是相同,兩
者具有一致性。(稱為:快取一致性)

                            60
Store
 Store有兩種寫入策略:

 • 寫透法(write through)
                        少部分的記憶體參考動
                        作(約有一、二成)是
 • 寫回法(write back)
                        儲存(Store)記憶體。
                        儲存(Store)記憶體。

比如:CPU經過運算(或其它行為)得到某個結果,而且這
比如:CPU經過運算(或其它行為)得到某個結果,而且這
個結果必須寫入記憶體,此時主記憶體和快取記憶體可能因
為正副本,而導致「快取不一致性」問題。

                                   61
寫透法


                CPU同時更新快取記憶
                CPU同時更新快取記憶
                體和主記憶體。


這種方法對於單一快取系統而言,可以確保主記憶體和快取
的一致性,讓資料永遠有效,缺點則是:在慢速的記憶體匯
流排上,產生大量的資料流量,造成速度瓶頸。

                          62
寫回法

               先更新快取記憶體,暫時
               不更新主記憶體,以減少
  發生置換行為
               不必要的寫入流量。


等到快取記憶體要被取代之前,才更新入主記憶體資料。看
起來,這種方式好像會出現正複本不一致,但對於單一快取
記憶體而言,這種方法和寫透一樣,也不會有什麼問題。

                         63
快取一致性問題
不管是寫透法或寫回法,對於多重快取系統的機器,都
會出現快取一致性問題。
以寫回法來看,當正複本資料不一樣時,如果其它的快
取系統在此時擷取其資料,就會出現問題;
同樣地,寫透法也有相同的問題,假設有兩筆快取系統
早已複製的複本,一旦某個快取系統進行寫透時,則兩
個複本還是會產生不同的結果,出現快取一致性問題。
個複本還是會產生不同的結果,出現快取一致性問題


                           64
6.11


       65
快取階層

                 大部分的電腦廠商喜歡將
                 快取記憶體分階層置放,
                 來降低失誤的代價。

L1快取失誤時,只要到L2快取進行存取,L2快取所付出的代
L1快取失誤時,只要到L2快取進行存取,L2快取所付出的代
價比記憶體輕微;即使L2又失誤,只要善用平行存取技術,
價比記憶體輕微;即使L2又失誤,只要善用平行存取技術,
到記憶體去存取,整體仍有比較好的效能表現。

                            66
處理器          類別      發表日期      L1快取         L2快取       L3快取
                  大型主機                              —         —
IBM 360/85                  1968    16 ~32 KB
                  迷你電腦                              —         —
PDP-11/70                   1975      1 KB
                  迷你電腦                              —         —
VAX 11/780                  1978     16 KB
                  大型主機                              —         —
IBM 3033                    1978     64 KB
                  大型主機                              —         —
IBM 3090                    1985   128~256KB
                                                    —         —
Intel 80486         PC      1989      8 KB
                                                              —
Pentium             PC      1993   8 KB/8 KB     256~512KB
                                                    —         —
PowerPC 601         PC      1993     32 KB
                                                    —         —
PowerPC 620         PC      1996   32KB/32KB
PowerPC G4        PC/伺服器    1999   32KB/32KB     256KB~1MB   2 MB
                  大型主機
IBM S/390 G4                1997     32 KB        256 KB     2 MB
                  大型主機                                        —
IBM S/390 G6                1999     256 KB        8 MB
                                                              —
Pentium 4         PC/伺服器    2000   8 KB/8 KB      256 KB
                  高階伺服器                                       —
IBM SP                      2000   64 KB/32 KB     8 MB
CRAY MTA          PC/伺服器    2001   16KB/16KB       96KB      4MB
Itanium           PC/伺服器    2001   16KB/16KB       96 KB     4 MB
                                                               67
                  高階伺服器                                       —
SGI Origin 2001             2001   32KB/32KB       4 MB
結   語



        68
如何以少量的快速記憶體,
  來加速大量慢速記憶體的存取,
       並且希望
整體記憶體參考速度盡量靠近快速記憶體,
  成本則靠近低廉的慢速記憶體。



                      69
當我們對快取結構進行剖析時,發現快取其實也
只是依據時間區域存取性和空間區域存取性的原
理,這表示程式設計師喜歡在程式中運用迴圈技
巧
(比如: for…next、do…while、loop、…)
確實是有所依據。顯然讓處理器不斷重複地執行
某一小段的指令或資料,有助於提昇擊中率,因
此迴圈技巧在具有快取結構的電腦中,應該受到
歡迎。
                                 70
問題在於,快取在剛啟動(startup)的狀態下,系
統仍然會付出較高的存取成本。
因為程式在執行初期,快取尚未擷取到指令或資料,
此時大部分的快取仍然空白,因此擊中率會特別的
低,效能較差(有些系統因此設計指令預先擷取器
Prefetcher)。
還好,程式在執行一段時間後,快取系統將開始進入
穩定的狀態下,而且會有相當不錯的執行效能。

                             71
第六章



課程結束
       72

Contenu connexe

Tendances

IE-019 何謂供應鏈管理
IE-019 何謂供應鏈管理IE-019 何謂供應鏈管理
IE-019 何謂供應鏈管理
handbook
 
97 08 19 46
97 08 19 4697 08 19 46
97 08 19 46
5045033
 
OSS International Case Study
OSS International Case StudyOSS International Case Study
OSS International Case Study
Ryan Chung
 
知識管理期末報告
知識管理期末報告知識管理期末報告
知識管理期末報告
guestabb317
 
Hr 003 工業工程系生涯規劃
Hr 003 工業工程系生涯規劃Hr 003 工業工程系生涯規劃
Hr 003 工業工程系生涯規劃
handbook
 
guangdongtiger is a cheater?
guangdongtiger is a cheater?guangdongtiger is a cheater?
guangdongtiger is a cheater?
Tony Liu
 
程式之美-微軟技術面試心得
程式之美-微軟技術面試心得程式之美-微軟技術面試心得
程式之美-微軟技術面試心得
Bob Wei
 
Cre 020 創意與創新行銷
Cre 020 創意與創新行銷Cre 020 創意與創新行銷
Cre 020 創意與創新行銷
handbook
 
CRE-019-創意思考與與創造力開發Ok
CRE-019-創意思考與與創造力開發OkCRE-019-創意思考與與創造力開發Ok
CRE-019-創意思考與與創造力開發Ok
handbook
 
Endnote使用教程
Endnote使用教程Endnote使用教程
Endnote使用教程
jimexifeng
 
張茂桂 再論公與私
張茂桂 再論公與私張茂桂 再論公與私
張茂桂 再論公與私
科幻嘴泡
 
IE-012 工業工程進學程
IE-012 工業工程進學程IE-012 工業工程進學程
IE-012 工業工程進學程
handbook
 
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
stps stps
 
Y450 User Guide V1.0 Sc 147002238
Y450 User Guide V1.0 Sc 147002238Y450 User Guide V1.0 Sc 147002238
Y450 User Guide V1.0 Sc 147002238
zcejzr
 

Tendances (20)

IE-019 何謂供應鏈管理
IE-019 何謂供應鏈管理IE-019 何謂供應鏈管理
IE-019 何謂供應鏈管理
 
97 08 19 46
97 08 19 4697 08 19 46
97 08 19 46
 
OSS International Case Study
OSS International Case StudyOSS International Case Study
OSS International Case Study
 
知識管理期末報告
知識管理期末報告知識管理期末報告
知識管理期末報告
 
Dry machining and near dry machining, Chinese
Dry machining and near dry machining, ChineseDry machining and near dry machining, Chinese
Dry machining and near dry machining, Chinese
 
Hr 003 工業工程系生涯規劃
Hr 003 工業工程系生涯規劃Hr 003 工業工程系生涯規劃
Hr 003 工業工程系生涯規劃
 
H1n1
H1n1H1n1
H1n1
 
複製 嘉智教學卓越獎簡報 2007版 20090529 F
複製  嘉智教學卓越獎簡報 2007版 20090529 F複製  嘉智教學卓越獎簡報 2007版 20090529 F
複製 嘉智教學卓越獎簡報 2007版 20090529 F
 
guangdongtiger is a cheater?
guangdongtiger is a cheater?guangdongtiger is a cheater?
guangdongtiger is a cheater?
 
程式之美-微軟技術面試心得
程式之美-微軟技術面試心得程式之美-微軟技術面試心得
程式之美-微軟技術面試心得
 
Cre 020 創意與創新行銷
Cre 020 創意與創新行銷Cre 020 創意與創新行銷
Cre 020 創意與創新行銷
 
CRE-019-創意思考與與創造力開發Ok
CRE-019-創意思考與與創造力開發OkCRE-019-創意思考與與創造力開發Ok
CRE-019-創意思考與與創造力開發Ok
 
Endnote使用教程
Endnote使用教程Endnote使用教程
Endnote使用教程
 
張茂桂 再論公與私
張茂桂 再論公與私張茂桂 再論公與私
張茂桂 再論公與私
 
IE-012 工業工程進學程
IE-012 工業工程進學程IE-012 工業工程進學程
IE-012 工業工程進學程
 
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
社子國民小學九十七年度與苗栗縣南庄鄉東河國小校際交流互訪活動實施計畫
 
Capstone2 final - Smart Shopping Bot
Capstone2 final - Smart Shopping BotCapstone2 final - Smart Shopping Bot
Capstone2 final - Smart Shopping Bot
 
Y450 User Guide V1.0 Sc 147002238
Y450 User Guide V1.0 Sc 147002238Y450 User Guide V1.0 Sc 147002238
Y450 User Guide V1.0 Sc 147002238
 
認識腸病毒
認識腸病毒認識腸病毒
認識腸病毒
 
09数据业务发展趋势浅析
09数据业务发展趋势浅析09数据业务发展趋势浅析
09数据业务发展趋势浅析
 

入門啟示錄Ch06簡報