Category Archives: 上班

IC 設計公司營收排名 2019

最近營收公布的速度也太慢了, 先整理出第一頁, 後面要追上比較難, 應該不會翻盤吧! 等到大家都公布了, 我再把後面幾頁補齊.

排名 公司 代碼 2019 (K NTD) 註解
1 聯發科 2454 246,222,731  
2 聯詠 3034 64,372,306  
3 瑞昱 2379 60,744,006  
  群聯 [*] 8299 44,693,441 IC 設計佔 25% 左右
  擎亞 [*] 8096 22,788,153 電子通路
4 奇景光電 HIMX 20,529,600 估 672 M USD
5 瑞鼎 3592 13,931,466  
6 矽創 8016 13,802,738  
7 慧榮 SIMO  [估]13,000,000 估 424 M USD
8 晶豪 3006 10,952,222  
9 創意 3443 10,710,068  
  新唐 [*] 4919 10,367,269 有晶圓廠
10 義隆 2458 9,487,977  
11 敦泰 3545 6,573,617  
12 原相 3227  6,075,020  
13 致新 8081 5,672,678  
14 智原 3035 5,306,351  
15 凌陽 2401 5,035,947  
16 威盛 2388 5,032,526  
17 盛群 6202 4,584,105  
18 茂達 6138 4,545,707  
19 鈺創 5351 3,681,468  
20 聯陽 3014 3,664,910  

  [21-40]

排名 公司 代碼 2019 (K NTD) 註解
21 愛普 6531 3,460,665  
22 祥碩 5269 3,314,891 `
23 松翰 5471  3,234,503  
24 宜特 [*] 3289 3,075,350 FIB IC
25 尼克森 3317 2,808,424  
26 聚積 3527 2,805,789  
27 晶焱 6411 2,761,781  
28 立積 4968 2,749,555  
29 凌通 4952 2,634,421  
30 信驊 5274 2,484,295  
31 偉詮 2436 2,322,116  
32 富鼎 8261 2,217,445  
33 創惟 6104 1,958,541  
34 合邦 6103 1,905,135  
35 揚智 3041 1,809,433  
36 研通 6229 1,560,850  
37 力旺 3529 1,410,085  
38 晶宏 3141 1,195,929  
39 安國 8054 1,183,792  
40 禾瑞亞 3556 1,147,034  

[41~]

排名 公司 代碼 2019 (K NTD) 註解
41 普誠 6129 1,099,518  
42 點序 6485 1,073,764  
43 類比科 3438 1,069,647  
44 通嘉 3588 1,048,390  
45 九齊 6494 1,044,641  
46 九暘 8040 982,774  
47 凌陽創新 5236 972,123  
48 系微 6231 959,482  
49 海德威 3268 942,500  
50 亞信 3169 723,153  
51 虹冠 3257 687,633  
52 鑫創 3259 633,419  
53 迅杰 6243 559,933  
54 佑華微 8024 541,684  
55 笙科 5272  521,596  
56 笙泉科技 3122 404,460  
57 驊訊 6237 402,544  
58 通泰 5487 398,927  
59 譜瑞 4966 382,050  
60 旺玖 6233 365,148  
61 聯傑 3094 242,531  
62 金麗科 3228 228,393  
63 矽統 2363  222,952  
64 沛亨 6291 153,021  
65 凱鈺 5468 135,644  
66 點晶 3288 120,209  
67 倚強 3219 104,504  
68 太欣 5302 56,825  
69 世紀民生 5314 51,919  
70 凌泰 6198 21,040  
         
[Note]        
  匯率 30.55    

[後記]

  1. 補上晶焱之後, 公司應該齊了.
  2. 去年並沒有發生併購下市的事.
  3. 螃蟹公司業績不錯, 感覺有機會追上聯詠.

Excel 小技巧

前陣子看到網路上的美股投資 Excel 檔 [1], 覺得很厲害. 仿照它可以用來管理同仁在每個子產品線的計畫投資了多少人力. 不過, 想要把它從 Google Doc 搬到 Windows 平台,  很多厲害的指令都不能用了!!

首先是這個 D2 = if(isblank(A2),,counta(SPLIT(B2,”,”)))

D2 可以將 B2 裡面的項目數算出來 (counta), 但先要用 SPLIT 把 B2 按照逗號 (,) 隔開. 不過 Office 裡面的 Excel 函數就做不到這點. 取而代之, 另外一個技術是計算逗號數再加一. 
B2=IF(ISBLANK(A2),,LEN(C2)-LEN(SUBSTITUTE(C2,”,”,””))+1)
它的原理是先算整個長度 LEN, 再減去字串中的逗號被取代的次數 (SUBSTITUTE). 這樣逗號的前後有空白也沒有關係.

第二個是上述的 C2, 它可以去另外一個工作表 (Portfolio) query 整張 ($B$5:$O$70) 裡面, 有沒有 B 欄的內容等於本頁的 A2 (也就是上圖中的 Apple), 有的話就取出它 O 欄的值.
C2=if(isblank(A2),,query(Portfolio!$B$5:$O$70,“select O where B='”&A2&“‘”))
我覺得這個功能超強大, 不過 Office 的 Excel 也不能用. 取而代之的, 是用
C2=VLOOKUP($B2,Portfolio!$C$5:$O$70, 13, FALSE)
用垂直方向 LOOKUP 找 B2, 找到之後, 選右方第十三欄的內容. 這看起來很矬, 但也算是堪用.

第三個技巧是, H 欄可以把所有股票中, 每個單月的配息分別加起來, 從一月到十二月. 例如:
H2 =sum(query($B$2:$E$64, “select E where B like ‘%Jan%'”))
它 query 整張 (B2:E64) 裡面 B 欄裡面找到有 Jan 這個單字的列, 將其 E 欄的內容累加起來 (sum).
然而, Office Excel 的 query 也不是這樣用的. 因此我先把 H2 的內容 ‘Jan’, 前後加上萬用字元 (*), CONCATENATE(“*”,$H2,”*”).
CONCATENATE(“*”,$H2,”*”)
SUMIF() 是條件式的函數, 第一個參數是加總的範圍為整張 (B2:B64), 第二個參數是條件式是否成立. 目前是 *Jan*, *Feb*’…這些是否存在. 第三個參數是要加總的內容.
H2 =SUMIF($B$2:$B$ˊˊ64,CONCATENATE(“*”,$H2,”*”),$E$2:$E$64) 
這個作法也等效於 Google Doc.
以上供大家參考, 也避免自己忘記.
[Note]

  1. http://www.twoinvesting.com/2017/10/dividend-stock-portfolio-spreadsheet-on-google-sheets/

SPIN_LOCK 小註解

最近看到一個 Kernel config 叫做 CONFIG_UNINLINE_SPIN_UNLOCK, 這 un 又 un, 真的是讓人看得眼花. 雖然說現在人強調 “減法” 的思維, 看這個名詞還是得用 “加法”. STEP 1: SPIN_LOCK [1], 多處理器共用一個資源時, 透過 SPIN_LOCK 去鎖住不讓其他人用. 自己用完後, 設為 unlock, 別人就可以用. 怎麼知道可不可以用呢? 要透過 trylock() 來判斷是否拿到資源. 如果拿不到回直接回傳 busy, 除非一直 try 否則也不會浪費資源. 真的 try 不停就要看演算了 [2].

STEP 2: INLINE_SPIN_LOCK. inline 是指會將 spin_lock() 插入程式之中. 但它也不只是當作巨集處理而已, 參考 [3] 這段話, 它會把 spin_lock() 這個函式的內容優化之後才代入. 
The point of making a function inline is to hint to the compiler that it is worth making some form of extra effort to call the function faster than it would otherwise – generally by substituting the code of the function into its caller. As well as eliminating the need for a call and return sequence, it might allow the compiler to perform certain optimizations between the bodies of both functions.

STEP 3:  INLINE_SPIN_UNLOCK. 有鎖的動作就有解鎖. 使用之前, kernel config 要先打開. 追溯到 2012 年, 當初只有 CONFIG_INLINE_SPIN_UNLOCK [4].

STEP 4:  Linus Torvalds 自己建議把原本預設開 CONFIG_INLINE_SPIN_UNLOCK, 改為預設 CONFIG_UNINLINE_SPIN_UNLOCK 未定義 [4].
-CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_UNINLINE_SPIN_UNLOCK is not set

想要 debug inline spin unlock 的人如果想要加 debug code, 開這個 config 就不會因為 inline 的作用, 使自己的 code 和原本 inline 的函式融為一體, 以致於無法正確地 debug.

預期的路人心得:  不能因為負負得正, 就把 CONFIG_UNINLINE_SPIN_UNLOCK 想成 CONFIG_INLINE_SPIN_LOCK. 哈!
[Ref]

  1. https://blog.csdn.net/u010144805/article/details/80354679
  2. https://locklessinc.com/articles/locks/
  3. www.greenend.org.uk/rjk/tech/inline.html
  4. http://lkml.iu.edu/hypermail/linux/kernel/1203.2/03015.html