Re: [轉錄] Netburst的成功與教訓
※ 引述《raynorchen (狼子野心。)》之銘言:
: 為一塊CPU(工廠)提升處理能力,最重要的是什麼呢?解決這個問題有著很多的思
: 路,而NetBurst的思想很明確,那就是提升處理器流水線的級數,這個做法相當於是在工
: 廠裏塞進大量的工人。從最初的Willamette,到末期的Prescott,Intel不斷地增加CPU的
: 流水線級數,最終達到了驚人的31級,這比上一代的圖拉丁PentiumⅢ已經多了3倍。
: 增加管線級數的好處是顯而易見的,它使得CPU潛在的處理能力有著大幅提升,但也
: 有著很多缺點。我們再拿工廠做例子:如果Prescott是一條生產管線,這條生產線上有31
: 位工人,每個人都負責相對較輕的任務,例如第一個人打開蓋子,第二個人擰上螺絲,第
: 三個人......生產線越長,每個人的工作就越簡單。這樣的設計對付大資料的任務非常有
: 效,但是對付小資料量的簡單任務時,則有『殺雞用牛刀』的味道。事實上,我們日常用
: 到的指令,多數都是簡單指令,在處理這樣的指令時,超長管線的設計會存在很大的延遲
: ,單週期處理的指令數有限,效率不高。為了改善這一狀況,唯一的辦法就是提高管線的
: 速度,減短處理的週期,這樣做的直觀的表現就是CPU的頻率大幅提升。
pipeline 跟資料量大小有什麼關係?
pipeline 最大的幾個殺手, RaW, WaR, struct hazard
還有最大殺手 branch 跟資料大小通通沒有關係.
現在 compiler 都會特別針對執行單元的平行處理量,
對各別指令 (特別是 logic/add, misc, load/store)
做調度, 以其這些指令在最後 dispath 到執行層面時
可以跑到最佳狀態, 不過, 這還是跟資料量大小無關..
第二個, 單週期能處理多少指令跟 pipeline 也一點
關係都沒有, 難到一個要跑上 22 cycle 的 EMMS 會
因為 super-pipeline 就只需要 1-cycle?
這還只是舉個很簡單的例子而已.
: 簡單地總結一下,NetBurst的設計思想無非是三點:低效(相對)、高頻、長管線,
: 對於『通用型處理器』來講,這樣的設計可以在保持高性能的情況下兼顧各種情況下的運
: 用。單純就思路來說是很容易說明的。但要將這個想法轉化為現實,卻是一件困難的事。
: 就當初的設計水準來講,為NetBurst從紙面到成品的轉變,Intel付出了長期而艱辛的努
: 力。起初,Intel對NetBurst抱有極大的信心。實際上,在今天受到眾多用戶追捧的Core
: 2 Duo(以及它的前輩Pentium3、PentiumM)的P8、P6架構,在當時看來只是一種用來過
: 渡到NetBurst的東西,單純從設計思想上分析,兩種架構的優劣很容易看的出來。
結果講了那麼多, 在 netbrust 下為了跑更高的時脈,
執行單元做了多大的改進或犧牲卻隻字不提.
這段的意思是說, 所有的 CPU 只要套上 super-pipeline
就像吃了灑尿牛丸一樣, 可以更美麗, 考試都得一百分?
pipeline 的設計沒有那麼簡單可以嗎... ?
: 在長久的等待後,2000年,Intel發佈了第一代的Willamette核心的entium4,並大肆
: 宣傳NetBurst的先進性。但是現實卻給了Intel一個不小的打擊,這種打擊不僅來自于它
: 的對手AMD的K7,也來自於Intel自己。雖然Willamette核心的Pentium 4的頻率已經達到
: 了1.7GHz,但是有測試表明,它的性能還不如上一代的PentiumⅢ(圖拉丁) 。為了擺脫
: 在民用市場上兩代CPU自相殘殺的尷尬局面,Intel甚至將圖拉丁PentiumⅢ『升格』為伺
: 服器用的『PentiumⅢ-S』,但是這一切的作為都無濟於事。
初代的 Pentium4 是 800Mhz, 我手上還有樣品.
第一個正式出貨的 Pentium4 是 1.4Ghz, 也非 1.7
: 從今天看來,Willamette是NetBurst實踐的初代產物,在設計上很不成熟。當初受到
: Duron頻率首先突破1GHz的刺激,從Willamette開始追求更高的頻率。受限於當時的180nm
: 工藝及平臺的限制,過小的L2以及還是不夠高的頻率,加上不成熟的Socket423介面,使
: 得Willamette飽受批評。
這段更神奇了, Willamette 出現的時代 AMD 還停留在
卡夾式 Athlon 而且還是 0.25um 的製品, AMD 到轉進
0.18um 才有代號為 thunderbird 與 spitfire 的產品
出現, 而 spitfire 正是 Duron.
Duron 一直到它的第二代產品 Morgen 才推進 1Ghz,
等到 Morgen 出現, Willamette 已經是它一年甚至兩
年前的產物.
受 Duron 刺激.... ? 原作者未免太看不起 intel 了..
: 這裡要向大家解釋一下L2對於Pentium 4的重要性,經常看到有人拿Athlon 64與Pentium
: 4的L1、L2直接進行比較。實際上,因為Athlon 64集成MC(記憶體控制器),拿兩者直接
: 對比毫無意義。Pentium 4採用較小的L1,並引入了一級追蹤快取來代替一級資料快取,
: 如果以鏢來比喻L1,那麼L2便是靶子,大的L2可以大幅提高資料的命中率。
這是全段最精彩的地方, "引入了一級追蹤快取來代替一級資料快取" ?
第一個, 請問有那一個 CPU instruction cache 可以取代
data-cache 的?
第二個, trace-cache 是為了取代 data-cache?
第三個, 原來 L1 越小 L2 命中率就可以越大? 這啥比喻?
那這樣大家心酸做那麼大 L1 幹麻? 全部拿掉變 0 命中率
不就變無限大?
: Intel並沒有因為起初的不順而放慢腳步,在接近兩年的研究後,於2002年1月推出了
: 新的NorthWood(北木)核心,『北木』被認為是Pentium4系列裏最成功的一個架構。
: 隨著新的130nm工藝引入、前端匯流排的飆升、HT超執行緒技術、以及雙通道DDR記憶體
: 的出現,這都幫助Intel在北木時代開始鑄造經典的Pentium 4形象。事實上就性能來說,
: 北木已戰勝了K7-巴頓。如果不是市面上大量出現了廉價巴頓2500+,也許AMD的歷史就該
: 重寫了。
FSB800 的 northwood 如果再打不贏 barton 那真的該自殺了.
: 事實上在管線的設計上,北木與威廉幾乎完全一致。但是性能上卻差距很大。這也從
: 側面證明了管線的長短與處理器性能不直接掛勾,如果有合適的環境,NetBurst將有更大
: 的發揮空間。威廉與北木『兩代』架構充分的論證了NetBurst的可行性,也大大增加了
: Intel繼續研發NetBurst的信心。在兩年後,2004年2月,末代Prcscott核心Pentium 4問
: 世。這同樣是一個經典的架構,但恐怕也將是歷史上受爭議的架構之一。
架構來架構去, northwood 叫一個架構 prescott 叫
一個架構, 那 netbrust 算什麼?
architecture 這個字是這樣用的?
: Prcscott採用了90nm制程,31級管線的設計,集成了更多的電晶體,頻率也飆升至
: 3.8GHz。自發佈以來使用至今,並根據介面、制程、單雙核的區別衍生出了Smithfield、
: Presler、Cedar Mill等幾個架構。其中65nm的Presler、Cedar Mill,將是NetBurst最後
: 的版本。
: 因為有了北木成功的經驗,人們對Prescott抱有很高的期望。但是P4 E系列的表現卻
: 令人大跌眼鏡。雖然有更大的L1、L2快取、更先進的90nm工藝、塞進了更多的電晶體、採
: 用了更長的管線,但同頻率下的P4E系列與P4C系列比起來,性能提升十分有限,甚至有一
: 定退步。
: 與性能有限的提升比起來,由於集成了更多的電晶體並運行在更高的頻率,Prescott
: 的發熱以及功耗卻有不小的提升。而在同一時間,AMD推出了新的K8架構——新的Athlon
: 64,事實求事的講,在民用領域,Prescott系的Pentium 4與K8架構的Athlon 64相比,它
: 的應用並不成功。關於Prescott Pentium 4與K8 Athlon 64的優劣,牽扯到了太多方面的
: 原因,不是只拿NetBurst就能講的清楚的。Pentium 4後期的不成功,其實不應將責任全
: 部推給NetBurst。基於NetBurst微架構的所有CPU將於2007年底全部停產,Intel也基本不
結果對於 netbrust 為什麼 phase-out 的理由還是隻字未提.
: 再繼續對其進行開發。屈指算來,從2000年威廉的發佈到07年底的停產,它陪伴我們將有
: 7年的時間。這7年,NetBurst為我們帶來了太多寶貴經驗與教訓,值得我們反思。這裏將
: 以Prescott為基礎進行一些討論,其中一些內容其實無關於NetBurst,但也是Pentium 4
: 系列發展中遇到的問題。
他提到問題了嗎?
: 經常看到這樣的說法:『Pentium 4高頻長管線設計,使得它的效率下降,發熱和功
: 耗上升,資料命中率下降,錯誤率提高。造成的管線清空帶來的效能損失巨大。』
: 其實只要對CPU的運算原理有所瞭解,就該知道把風馬牛不相及的幾個要素拼湊在一
: 起的這個說法是多麼的荒唐了。
是啊, 從以上文章看來不但是風牛馬不相及, 而且還是荒唐.
: 作為一款通用型處理器,無論它架構如何,它的最終目的都是為了運行各種不同的軟
: 體。而任務的處理就不得不提到他所處的環境與條件,要討論這個,不得不先從我們的系
: 統環境說起。
: 如果說我們現在絕大多數人所使用的X86系統、指令集是一個很是落後的古老產物,
: 是上個世紀才用的東西,應該會有很多人難以接受。但事實就是如此。X86原則上是逐週
: 期,逐指令進行操作,一個週期執行一條指令。可我們的需求不止是每週期一個指令,為
: 此,單指令多資料流程——SIMD誕生了。現在我們日常用的民用級CPU一般每個週期能夠
: 執行3~4條指令,這對於民用級的產品來說已經夠用了。SIMD其實不難理解,例如SSE2、
: SSE3、3D NOW!這些都屬於SIMD。
因為是 x86 所以是逐次執行指令? 這笑話真的很冷.
什麼叫 super-scale 我想原作者大概從來都沒有看過,
更不要說文中還提到一些 CPU 有多個執行單元是用來
做什麼用的.
如果我說 VAX 跟 PDP-II 它不是 x86 但也是這種執
行指令模式, 是不是也要拿出來批?
如果我說 MIPS 家族, SPARC 家族跟 ARM/Power 家族
也是這種指令執行模式, 是不是也要拿出來批?
除了 x86 以外都是 vector processor? 別鬧了.
第二個, 就算 x86 SIMD 好了, 從 3Dnow!, 3Dnow plus,
MMX, SSE, SSE2, SSE3, SSSE3 這些也鮮少有只需要
一個執行週期的指令 (大多是 2 起跳),
: 在我們的日常運算裏,用的最多的無非是兩種:整數運算與浮點運算。最早時的CPU其實
: 幾乎不具備浮點運算能力,但Pentium MMX改變了這個現狀,在加入了一個名為MMX的SIMD
: 指令集後,CPU開始具備了初級的浮點運算能力,其實上面提到的幾個指令集,都與浮點
: 運算有關。
PentiumMMX 的 MMX 可以算浮點喔?
給你拍拍腳..
: 至於整數與浮點的具體作用,舉幾個簡單的例子,整數運算應用比較多的地方,例如
: 科學計算,浮點運算應用的比較多的地方,例如視訊處理,遊戲等。在這裏再提一下X87
: —整數浮點轉換指令。這是個讓Pentium 4刻骨銘心的名字。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
這啥?
整數對浮點硬體轉換要到 SSE3 才有, 這樣就叫
對 Pentium4 刻骨銘心?
如果原作發現 3Dnow! plus 裡面有這指令, 而且
連 op code 都一模一樣時不知道做何表情..
: 以具體的型號來做下對比,Prescott Pentium 4與K8 Athlon 64的性能。就單核的同
: 級產品來講,Pentium 4與Athlon 64的表現有著很大差異。如果是專業設計,3DMAX或者是
: 播放高畫質HDTV之類的應用,Pentium 4要領先對手一大截,而如果是遊戲,Athlon64的表
: 現卻可以讓Pentium 4很鬱悶。
: 見到有人拿『長管線高頻率在大資料量,多工下有優勢,而遊戲講究效率。』解釋。
: 可是仔細想想,3DMAX可以輕載,而要調動到大資料量大高要求的遊戲也不少,似乎這樣
: 的解釋是毫無道理的。
他終於知道他解釋這些毫無道理可言了..
: 業界內有一個大的趨勢,那就是加強整數運算,弱化浮點運算。Pentium4的設計實際
: 上遵從了這個趨勢,強化X86,弱化X87。但遊戲來講,對浮點運算依舊有著較高的需求。
: 仔細看一下Pentium 4與Athlon 64的設計,Pentium 4擁有3個整數單元(其中有兩個
: 雙倍速的快速執行引擎,等效於4個,近日的G80也採用了類似的技術。)2個浮點單元,
: 串列的管線設計。Athlon 64擁有3個整數單元,3個浮點單元,3發並行的管線設計。就
: SIMD來說,Intel強調整數運算性能,但也推出了如SSE2、SSE3這樣的多媒體指令集(這
: 兩個指令集並非是單純的浮點指令集,而是包含了整數與浮點)。而Athlon 64強化了X87
: 性能,加強浮點運算能力(也許有人想提3D NOW!實際上這已經是很老的東西了,在現在
: 的應用裏作用有限)。
我不知道他是在葉界還是在夜界啦, x86 的發展趨勢
最好是強化整點弱化浮點! 如果是這樣大家做 SIMD
指令幹什麼? 而且 SSE 能做 DIVPD MMX 到現在沒有
對應的指令是為什麼?
Pentium P54C 從一開始就有對 FPU 做管線化, 領先
對手兩年快三年, intel 無聊嗎?
P6 micro-arch 一開始就針對高頻運作化浮點去開發,
否則 Pentium2/3/M, conroe 族可以跑到這麼高頻?
第二個, Netbrust 整數跟浮點是兩組執行單元, 但
兩個有分, 簡單的是兩個, 繁複指令還是一個, 而且
在 northwood 還是浮點與整點共用, 到 prescott
時才獨立成兩個, (請思考為什麼這麼有設計能力的
intel 要這麼做? 為了省錢嗎? 絕對不是), 浮點也
是兩個, 一個簡單跟 load/store, 一個 mul/div,
K7 講是講三組, 但它是三組 ALU (AGU), 三組被拆
成三部份的 FPU.
浮點不重要? 那 netbrust 幹麻到 prescott 時拆成
兩組完全獨立的 fmisc? 嫌 die size 太小?
: 從上面的比較中就可以看出造成兩者性能差異的原因了,這似乎與超長管線沒有什麼
: 關係。Intel曾推出SSE2、SSE3指令集以求加強遊戲性能,但結果卻很不成功。
: 既然談到了軟體,就不得不談『軟體優化』。再搬出工廠做比喻,一般為工廠做優化
: 都會考慮什麼呢?工廠有幾個門,每個門多大,用什麼運輸,生產線怎麼運行,每運行一
: 次週期有多長,有多少工人,哪個工人擰螺絲快,哪個工人擦玻璃快......。
: 要為CPU優化是件複雜的任務。CPU架構也直接影響了對它的優化設計,但超長的管線
: 不一定會增加優化的難度。從本人的認識看來,Prescott的架構十分煩瑣複雜,甚至於有
: 些怪異到難以理解,例如第11級與12級管線間上行可以達到256bit,而下行就只有8bit
: 。這樣的設計無疑為廠家為其優化增加了難度,降低了軟體商的熱情。這就是為什麼很多
: 對Pentium 4與Athlon 64都有深入優化的軟體(包括遊戲),P4的性能都不會輸給對方。
: 但是畢竟這麼做的廠家並不多,Prcscott的不成功,軟體是一個很重要的原因。
那一個可以上達 256bit?
到 SSE3 也是一次只能算 64bit float, load/store
也是一樣, stuffing 也是加載而已, 也不到 256bit.
而且這段是講 load-balanced, 這是硬體層面, 特別
是做指令排程還有 memory controller 協調時的重要
工作, 跟軟體有什麼關係?
除非你 CPU 都不用 cache 或 cache 是 "one byte
associability slot" 的話那我沒意見.
: 在X86繼任者的問題上,Intel選擇了IA64,而微軟選擇了X64。當初Intel宣稱威廉是
: 末代X86 CPU,顯然沒有預料到今日的X86-64,IA32(EM64T)。雖然至今我們都沒有從『
: 偽64bits』技術中獲得多少實質上的性能。
微軟選擇 x64? 那 IA64 平臺的 windows 跟 office 都是假的?
(我承認是開發心酸的沒錯..)
如果從頭到尾每個指令都可以 float 64bit access 這樣叫
"假的" 64bit 的話, 那 64bit MIPS, Alpha, Sparc64 也
通通都是假的, 還是只有 intel 的 64 才叫 64?
這話代表作者對 intel 以外平臺有非常大的岐視與成見.
: 末期的Pentium 4的發熱與功耗令人詬病,有很多人將它直接與長管線的設計掛勾,認
: 為長管線是導致高熱高能的原因。其實不然,發熱,功耗與管線設計沒有任何直接關係。
: 真正決定功耗和發熱的主要是三個物理要素:集成的電晶體規模、晶體頻率、製程工藝
: (電壓)。其實要說明這個很簡單,只要拿同製程,同頻率、集成電晶體數目相近的
: Athlon 64與Pentium 4比較一下就可以很容易看的出來。在早期的威廉和北木核心時,
: Pentium 4的發熱功耗其實都處於一個合理的範圍裏,長管線的設計,只是提供了一個大
: 的頻率的伸縮空間而已。
一個是用 SOI 一個是用 strain silicon, 最好是一樣..
: 這邊再次重提常見的『超長管線資料清空帶來的性能損失大幅降低Pentium 4性能
: 』的說法。的確,這樣的設計帶來較高的延遲,每當錯誤發生清空管線帶來的損失也比
: 較大,但是是否是因為這個原因造成了CPU的性能下降?這個問題就有待商榷。
: 其實從NetBurst設計初始,Intel就考慮到了這個問題,並且採用了多種設計去降低
: 它所帶來的影響。如亂序推測執行、高動態執行、縮短任務要求指令、採用追蹤快取等。
: 其實有很多都並非是NetBurst獨有的。這裏只簡單的講一下一級追蹤快取。通常來說,一
: 級快取包括一級資料快取與一級指令快取。其中指令快取負責及時解碼的工作。一級追蹤
~~~~~~~~~~~~~~~~~~~~~~~~~~
: 快取除了充當了指令快取解碼的工作外,還可以儲存解碼後的微指令(μOps)。這樣可
: 以減少重複運算,減輕CPU在高負荷時的解碼壓力。事實上,μOps的運用,並沒有達到In
: tel當初預想的程度。
他家的 instruction cache 都會解碼?
那我拿飯島愛給他解會不會變成小野麗莎?
真厲害耶, trace cache 把 decoder 綁上去只是
它一個實作手段而已, 此舉也只是為了要減少
decoder 的數量, 讓 decode 的工作能獨立進行,
(因為 decoder 是 x86 中的巨大時脈殺手)
"這樣可以減少重複運算,減輕CPU在高負荷時的
解碼壓力。"
這更神奇了, decode 動作是 CPU 在跑?
Core Arch. 才開始有的 FUSION 原來這代就有了?
: 實際上,Pentium 4清空管線的損失率並不高於Athlon 64。
: 雖然每個週期的損失Pentium 4較大,但是因為Pentium 4的週期短(頻率高),所以
: 在同一段時間內,兩者的損失差距很小。
: 其實要推翻這個說法很簡單,Prescott比NorthWood管線長了10級,
: 豈不是損失率要比NorthWood高很多?
: 事實上,同頻率的Pentium 4C與Pentium 4E的損失率基本是相等的。
: 伴隨著Pentium 4的發展,從NorthWood開始出現了『超執行序』技術(Hyper-Threadi
: ng)。單純從技術上來說,這雖然算不上革命,但也能算的上是大幅度的革新。不過它的
: 出現純屬無奈,Pentium 4使用時往往有大量的閒置資源,效率不高。為了解決這個問題
: ,Intel為Pentium 4添加了一段邏輯電路,使他可以類比出另一個獨
: 立的核心來。雖然距離真正的雙核心差距比較遠,但是這種設計思路確實值得稱讚。就它
: 的應用來看,在軟體的配合下,打開HT後CPU性能往往有30%提升。但是在民用軟體裏很少
: 有能用的到它的地方。此外有時打開HT反而性能會下降(這與追蹤快取不夠大有關)。具
: 體的內容,在這裏就不多做介紹了。
避重就輕, 不過有寫到重點, 不錯.
: NetBurst已經漸漸離我們遠去,在相當長的一段時間內,我們將無法在桌面級民用市
: 場看到類似的產品。儘管NetBurst末期的產品算不上成功,但是這並不妨礙他的設計思想
: 即使在今日也稱的上先進。CPU是一個多元的世界,硬體,軟體,市場,每個因素都不能
: 忽略。我們將懷念NetBurst的成功與教訓,一起開拓明日的世界。
要轉對岸的文章....
請找以前 GZeasy 那幾個主編寫的, 那幾個寫的都很深入,
也不會避重就輕的亂寫..
下次轉文以前煩請搞清楚裡面在寫些什麼, 你轉文立意是好的,
但轉到一篇劣文會把你的好意全部抹霎的乾乾淨淨.
--
多少年以來,我一直想寫一本書,叫[丑陋的中國人]。我記得美國有
一本「丑陋的美國人」,寫出來之後,美國國務院拿來做為他們行動的參
考。日本人也寫了一本[丑陋的日本人],作者是駐阿根廷的大使,他閣下
卻被撤職,這大概就是東方和西方的不同....在台北,聽我講演的人,一
聽說要講這個題目。就立刻不請我了。 -- 柏楊
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: dolphinus 來自: 220.132.88.73 (06/19 13:41)
推
06/19 13:49, , 1F
06/19 13:49, 1F
推
06/19 14:31, , 2F
06/19 14:31, 2F
→
06/19 14:32, , 3F
06/19 14:32, 3F
推
06/19 14:33, , 4F
06/19 14:33, 4F
推
06/19 14:35, , 5F
06/19 14:35, 5F
推
06/19 14:36, , 6F
06/19 14:36, 6F
→
06/19 14:38, , 7F
06/19 14:38, 7F
推
06/19 14:40, , 8F
06/19 14:40, 8F
→
06/19 14:40, , 9F
06/19 14:40, 9F
推
06/19 14:43, , 10F
06/19 14:43, 10F
→
06/19 14:43, , 11F
06/19 14:43, 11F
→
06/19 14:44, , 12F
06/19 14:44, 12F
推
06/19 14:45, , 13F
06/19 14:45, 13F
→
06/19 14:45, , 14F
06/19 14:45, 14F
推
06/19 14:52, , 15F
06/19 14:52, 15F
推
06/19 14:54, , 16F
06/19 14:54, 16F
推
06/19 14:55, , 17F
06/19 14:55, 17F
→
06/19 14:58, , 18F
06/19 14:58, 18F
→
06/19 14:46, , 19F
06/19 14:46, 19F
推
06/19 15:12, , 20F
06/19 15:12, 20F
推
06/19 15:29, , 21F
06/19 15:29, 21F
推
06/19 15:29, , 22F
06/19 15:29, 22F
推
06/19 15:32, , 23F
06/19 15:32, 23F
推
06/19 15:41, , 24F
06/19 15:41, 24F
推
06/19 15:49, , 25F
06/19 15:49, 25F
推
06/19 17:20, , 26F
06/19 17:20, 26F
推
06/19 17:22, , 27F
06/19 17:22, 27F
推
06/19 18:28, , 28F
06/19 18:28, 28F
推
06/19 18:32, , 29F
06/19 18:32, 29F
→
06/19 18:32, , 30F
06/19 18:32, 30F
→
06/19 18:33, , 31F
06/19 18:33, 31F
→
06/19 18:34, , 32F
06/19 18:34, 32F
→
06/19 18:36, , 33F
06/19 18:36, 33F
→
06/19 18:50, , 34F
06/19 18:50, 34F
推
06/19 18:57, , 35F
06/19 18:57, 35F
→
06/19 18:57, , 36F
06/19 18:57, 36F
推
06/19 19:23, , 37F
06/19 19:23, 37F
推
06/19 20:10, , 38F
06/19 20:10, 38F
推
06/19 21:34, , 39F
06/19 21:34, 39F
→
06/19 21:39, , 40F
06/19 21:39, 40F
→
06/19 21:41, , 41F
06/19 21:41, 41F
推
06/20 00:04, , 42F
06/20 00:04, 42F
推
06/20 00:08, , 43F
06/20 00:08, 43F
推
06/20 22:30, , 44F
06/20 22:30, 44F
hardware 近期熱門文章
PTT數位生活區 即時熱門文章