Qualcomm's QCT (semiconductor) division outpowered QTL (licensing)
雖然手機相關晶片業務仍有顯著成長,但 Qualcomm 手機業務營收出現趨緩,技術授權業務依然是 Qualcomm 目前重要營收來源。
依據 Qualcomm 在 2022 年第四季財報,總營收同比增長 22% 至 113.9 億美元,調整後每股盈餘為 3.13 美元。公司已開始停止招聘,同時也準備在必要時刻降低營運支出。
2022 年第三季全球前十大 IC 設計業者營收依序為:
Cirrus Logic Completes Acquisition of Wolfson Microelectronics
Will Semiconductor (韋爾半導體) 來自中國資本,對照 OmniVision Technologies
2018/2019: Will Semiconductor acquired OmniVision Technologies (for $2.178 billion) and SuperPix Micro Technology, merging them to form Omnivision Group.
2023 年排名 (第一季) : 出處
MPS (芯源系統有限公司)
第二季全球前十大 IC 設計營收季增 12.5%
Integrated circuit (IC) design companies revenue worldwide from 2017 to 2023, by quarter
System design helps us define a solution that meets the business requirements. It is one of the earliest decisions we can make when building a system. Often it is essential to think from a high level as these decisions are very difficult to correct later. It also makes it easier to reason about and manage architectural changes as the system evolves.
the benefits of CDN, including:
以下圖例以 5-way 為例(一棵樹的每個節點的度數小於等於 5)
B+ Trees 將所有資料(Data)存在 leaf node 上,leaf node 之外的 node 只會儲存 key 供索引,且每個 leaf node 會直接接到下一個 leaf node,可以利用類似 Binary Search Tree 的方式去搜尋目標值。
因為 B+ 將 leaf node 串接了,所以可以僅一次的搜尋就做到範圍查詢,以上圖為例,要搜尋 key 介於 5~16 之間的 Data,僅需搜尋下限 key = 5,並利用 leaf node 之間的 pointer 就可以將 5、6、7、9、12、16 這些目標找出。
對於硬碟來說,每個區塊大小固定,且 B+ Tree 的非葉節點只須儲存指標(Key),當 Data 所需空間很大時並不影響非葉節點,所以可增加(相較於 B Tree)每個 node 的指標數量,以減少 I/O 次數,因此被應用在 MySQL 的 InnoDB 中。
利用除法原理將 mod 10 和 div 10 合併
根據除法原理:
可以將 mod 10 和 div 10 合併,以此來減少除法的數量。
利用 bitwise operation 來去除除法運算
參考 Hacker's Delight 來實作除法。
這裡採用 bitwise operation 來實作除法,因為 有包含 這個因數,無法完全用 的次方項來表示,因此結果會是不準確的。然而,觀察上面的程式碼後可以發現, temp
不可能會大於 19
,因此只需要考慮 19
~0
的情況即可。
我們的目標是,得到 temp / 10
且直到小數點後第一位都是精準的。
這時,我們可以提出一個猜想,假設我們我們目標的最大數是 n
, l
則是比 n
還要小的非負整數。那麼假設 ( 是十位數 b 是個位數),且 ( 是十位數, 是個位數),則只要以 算出來的除數在 除以該除數後在經確度內,則 除與該除數仍然會在經確度內。證明如下:
假設 是除數,
因此,前述猜想也成立,接下來只需要針對 19
來做討論即可。
接下來只需要找到這之中可以用除法來表示的除數即可。
方法如下,透過 bitwise operation 得到的算式必定是 其中 為非負整數, 正整數。因此只需要透過查看 再配對適合的 即可。
其中, 便是一個可以使用的解。
接著,嘗試透過 bitwise operation 來配對數值。
關於這段程式碼,思路如下:
temp
減去 div 10 的結果乘與
其中 (((q << 2) + q) << 1)
就是 ( 也就是 測試結果如下:
執行結果:
結果正確。
可包裝為以下函式:
使用案例:
延伸閱讀: