做 architecture 的命運
做 architecture 的命運,就是一輩子都要處於覺得自己很弱、很多東西要補足的心理狀態
要懂的東西太多了,隨便一個 topic 就可能同時需要懂:
- domain knowledge,該應用的 application layer 怎麼運作
- compiler/toolchain/runtime/... 在各不同平台特性,限制
- assembly language,每家的寫法可能各有不同,CPU/DSP 可能寫法又都有不同 style,又 SIMD 指令也有可能差異更大
- memory hierarchy, TCM, 各層 cache 構
- 課本上的 architecture, 從最基本的 pipeline 到 O3
- RTL & microarchitecture & etc
- power-related knowledge
- For benchmarking,要有心理準備見招拆招,前陣子為了測 iPhone,連 iOS app 都在學,還得天天和 Apple LLVM 混熟
- 有時得有駭客能力,才能分析對手
- 看情況增加,有的時候也要懂 OS
覺得做這行真的滿辛苦的,不管是哪一個 topic,總是能遇到該 topic 的專家,隨時要有被電的心理準備,不抱著一個 open mind 有一直學習的打算的話,日子會很苦的