Chiplet 小整理

今天跟前同事吃晚餐, 討論到 chiplet 這個東西, 感覺滿有趣的, 最近想花一點時間來整理. 不過更深入的研究要等我們新 IC Danvers bring up 以後才可以. 剛剛在辦公室玩了一下 Android 12 還跑得滿順的, 把進度寫到月報寄出, 就來 Google chiplet, 順便做個紀錄. 接下來有空再看進階的 UCIE.

Chiplet 的誕生主要考量到單一顆大晶片的良率會降低, 於是把 “traditional monolithic" 這樣的 IC 拆成 4 顆來實作. EPYC 是 AMD 的 server 級 processor. 拆成 4 顆之後. 面積由 777 mm2 長到 852 mm2. 算起來胖了 10%. 下圖取材自 [1].

但 IC 變胖不是天險, 在每顆小 IC 裡面, 我們可以看到 IO, 類比的東西其實是可以抽出來的. 於是乎 4 小 IC 不用長得很像, 而是像拼圖一樣取最大綜效. 下圖同樣取材自 [1], 但是為了避免抄襲太嚴重, 我講一些原來沒有的.

圖片中橘色的部分叫做 CCX (Zen CPU Complex) [2], 多 complex (複雜)呢? 每個 CCX 都有 Core 和 private L2 cache 和 shared L3 cache, 所以 Core+Cache 這樣 CC 地複雜, 就叫做 CCX. 然後也看到一個藍框裡面有白色無限大符號, 那個叫做 Infinity Fabric [3], 這是個 AMD 傳送資料 (Scalable Data Facric) 和控制訊號 (Scalable Control Fabric) 的架構, 可以讓 CPU, GPU, 和其他 IP 互傳. 以上都是 AMD 獨有的術語, 但是概念可以推廣. DDR 就是記憶體的那個 DDR.

然後, 我們又知道 DDR 的特性沒辦法走到最新進的製程 (電容小速度快, 但是電容小充不多), 所以把 DDR 挪到中間去, 用比較舊的製程 (14 nm), CCX 用比較新的製程 (7 nm). 這樣成本據說還可以變成一半. 當然封裝的難度就增加了. 但 chiplet bonding (3D 封裝) 也是最近當紅的技術 [4].

[REF]

  1. https://www.eettaiwan.com/20210305nt01-amd-shows-its-chiplet-playbooks-at-isscc/
  2. https://fuse.wikichip.org/news/1177/amds-zen-cpu-complex-cache-and-smu/
  3. https://en.wikichip.org/wiki/amd/infinity_fabric
  4. https://www.cadence.com/content/dam/cadence-www/global/en_US/documents/tools/ic-package-design-analysis/chiplets-and-heterogeneous-packaging-are-changing-system-design-and-analysis.pdf

Khronos 專利池小註解

Khronos 名下有很多技術, 像是 Vulkan®, OpenGL®, OpenGL ES, WebGL™, OpenCL™, OpenVX™, COLLADA™ and glTF™.  這些. 那麼到底是誰發明出這一堆東西呢? 我以前也覺得很好奇. 趁放假研究一下, 原來 Khronos 這個組織就是一個大專利池.

如果參加 Khronos 的會員, 就可以對於 essential 的 IP 享有交互授權 (reciprocal license) 的好處, 也就是會員之間不能用交互授權的 IP 互告 [1] – 如果有繳會員年費的話. 如果不參加會員, 也可以用 adopter 的身分實作這些 IP, 只要繳個 20K USD 左右 (只是舉例, 非固定數字. ), 不論出貨數量.

參加會員的話, 又分為好幾個等級 [3], 總是多花錢還會有投票權 (Contributor Member). 花更多可以選董事 (Promoter Member). 如果 license 一個技術要花 20K, 那繳個 18K 年費當 Contributor member 也不算多貴. 因為會員也自動是 adaptor. 不過是否要先是其他種類會員才能樂捐成 contributor 會員呢? 看 [4] 的 PDF page 1 – defination, 可能是.

Promoter MemberAssociate Member
$75,000 per year$3,500+ per year
Board Approval RequiredAvailable to companies with up to 100 full-time employees. $175 per employee
The right to designate a Director to the Khronos Board.
Full working group participation and voting rights.

後面有寫到 associate member 是按照員工人數來收錢的, 一個人頭 175 元, 而且是超過 100 人的公司才可以參加. 假如公司不幸有 1 萬人, 那年費就高達 175 萬美金. 就算可以拗說一個 BU 只有 100 人, 那也要 17500 = 17.5K (USD). 花這麼多錢, 應該有對應的好處, 讓 Broadcom, MediaTek 都參加 [2].

會員之間會有 working group 會議討論哪些 IP 是交互授權的? 正面表列的話, 只有兩種 IP 會落入交互授權:

  1. The only point of licensing is the instant of ratification by the Khronos Board, and ONLY essential IP in the final spec is reciprocally licensed, meaning that discussions and contributions not included in the final specification bring no licensing obligation;
  2. Khronos Members do not have to disclose any IP that will be included under the standard reciprocal license – so no patents are ever discussed in open Khronos meetings so that Members are not put on notice of specific patents.

紅色字體是我高亮點, 雖然只看這幾個字會是斷章取義, 但基本上參加的百來個會員也不是傻的, 不相關, 不重要的 IP 不會納進來. 而且會員可以正面表列那些 IP 不列入交互授權之中. 官方說法, 這種事不常發生.

 … this mechanism has only been invoked a handful of times in the fifteen year history of Khronos Group.

然而, 只有在這個會員 [2] 裡面, 非正面排除, 又被正面表列的 IP 才能交互授權. 免於互相收錢或是互告. 但是對於非會員就沒有約束力了.

[REF]

  1. https://www.khronos.org/members/ip-framework
  2. https://www.khronos.org/members/list
  3. https://www.khronos.org/members/
  4. https://www.khronos.org/files/member_agreement.pdf

Thread Border Router 小註解

首先講到 Thread 這個技術, 它又是一個把常見名詞變成專業術語的東西. 上次那個 SALT 也沒紅, 不知道是否取這種名字不夠吉利? 總之, 先來介紹一下 Thread [1].

Thread 是由 Thread Group 開發, 所以不是來自諸如 The Hub Re-Assambled and Delivery 這種縮寫, 哈!

基本上它也 (只) 走 IPv6, 支援 mesh, 主要用於 IOT (Internet of Things). 其網路 protocol 6LoWPAN 基於 IEEE 802.15.4. 而藍牙/WPAN 是 802.15.1, BT/WIFI 共存是 802.15.2, 高速 WPANs 是 802.15.3, 可見它和藍牙的關係也匪淺. 事實上, ZigBee 也是走 802.15.4, 所以 Thread 更近似 ZigBee, 但是 Thread 在架構和相容性上又勝出 [2].

本圖取材自 [2] 的圖 1+圖 2, ZigBee 顯得不合群.

讓我們接受 Thread 比較好, 接下來看 router. 如果只是一對一連接, BT 就很好用了. 但在智慧家庭 (Home automation) 的考量下, 家裡可是會有一大堆 IOT. 而且分別來自不同陣營的生態系, Siri, Alexa, Google 可能混居一室, 這個就不是一個 PAN 可以搞定的.

另一個規格 Matter [3] 就是用來解決多生態系混搭的問題, 只要大家都可以用 IP 溝通不就可以在同一個環境共存了? 所以支援 mesh 的 WIFI 和 Thread 都可以支援 Matter. 既然 WIFI 有 router, Thread 當然也有 router [5]. 而在 WIFI 和 Thread 的交界, 就會有所謂的 Thread Border Router (TBR) [4].

上圖和下圖都來自 [4]. 上圖容易理解, 基本上就是說明 TBR 的角色是跨 LAN. 下圖比較複雜. 說明 TBR 的主要功能之一是 service discovery. 任何一個 Thread device 能夠提供服務的話 (如開燈, 播音樂…), 必須跟 TBR 以單播 (Unicast) 註冊, 而不需要跟 Thread 網內的其他 device 交頭接耳 . 這是它可以省電的方法.

由於 TBR 知道每個 Thread Device 能提供什麼服務, 它就可以對 WIFI mesh 進行多播 (Multicast) 但不是廣播 (Broadcast), 因為 LAN 裡面可能有非 Matter 相容的裝置. 所有的 Thread Device 都是透過 TBR 代理做 mDNS ( multicast DNS) [6], 這又有助於省電.

因此我們可以說 TBR 兼具了 SRP server 和 Advertising Proxy 的角色. 另一方面, Thread Device 怎麼發現 WIFI 那邊有什麼 service 呢? 答案還是透過 TBR, Thread Client 透過 TBR 當 DNS-SD (service discory) Discovery Proxy 跨出 Thread border.

總結來說, TBR 的 SDK 和 sample code 可以從公開網路上找到 [7]. 而且 TBR 成功地串起 WIFI 和 Thread 的世界, 讓 Matter 這種應用可以更容易地被實現. 套句廣告詞, 這麼好的東西去哪裡買呢? 其實目前很少有純 Thread borad router 可以買, 它可能只是 WIFI router 的一個附加功能, 或者直接在某個智慧燈泡裡.

所以我們要認 logo. 下圖左邊這個 logo 表明這個 Thread device 是個 TBR, 下圖右邊這個 logo 表明它是一個普通的 Thread Device. [5]

[REF]

  1. https://en.wikipedia.org/wiki/Thread_(network_protocol)
  2. https://www.electronicproducts.com/ip-on-wi-fi-zigbee-and-bluetooth-opportunity-and-risk/
  3. https://en.wikipedia.org/wiki/Matter_(standard)
  4. https://blog.espressif.com/matter-thread-border-router-in-matter-240838dc4779
  5. https://www.threadgroup.org/Portals/0/documents/support/ThreadBorderRouterWhitePaper_07192022_4001_1.pdf
  6. https://en.wikipedia.org/wiki/Multicast_DNS
  7. https://github.com/espressif/esp-idf/tree/master/examples/openthread/ot_br

華擎太極主機板 Error Code 小整理

雖然這塊板子的優點就是有 LED 顯示開機錯誤代碼 [1], 不過跑出錯誤代碼, 卻找不到官方解釋可是個大問題. 甚至會誤導 debug 的方向, 所以我把我遇到的狀況也註記在這裡.

[官方表格]

除錯代碼定義
FF,
00 – 19
D0 – D3
請檢查 CPU 是否正確安裝,然後清除 CMOS。
0d 例外, 詳見補充表格。
31 – 3B
51 – 55
CPU或記憶體相關問題。請重新安裝 CPU 和記憶體,然後清除 CMOS。
若問題仍存在,請只安裝一個記憶體模組,或嘗試使用其他記憶體模組。
D4 – D5PCI 資源分配錯誤,資源不足。
D6
92 – 97
顯示卡或CPU內顯無法辨識。請清除 CMOS 並嘗試重新安裝顯示卡。若問題仍存在,請嘗試安裝顯示卡至其他插槽或使用其他顯示卡。
D7鍵盤及滑鼠無法辨識。請嘗試重新安裝鍵盤及滑鼠。
D8密碼無效。
9A – 9DUSB 裝置相關問題。請嘗試移除所有 USB 裝置。
E8 – EBS3回復失敗 (S3=睡眠模式)
03電腦正在進入S3狀態 (S3=睡眠模式)
04電腦正在進入S4狀態 (S4=休眠模式)
05電腦正在進入S5狀態 (S5=軟關機)
30電腦正在從S3狀態中喚醒 (S3=睡眠模式)
40電腦正在從S4狀態中喚醒 (S4=休眠模式)
AA電腦完成開機程序進入作業系統

[實際 debug 經驗]

除錯代碼實際解決方式
0d跟 Clear CMOS 或 CPU 無關. 找到 [2] 這篇開始查記憶體。
拔掉可疑的 DDR Module. 原本插 4 條, 拔掉一條可開機.
打開 fPTM, 又出現 0d, 再拔掉一條, 剩兩條 DDR 時可正常開機. 前述兩條是同一時間買的.
64VGA 輔助 power 12V 一條脫落, 換個公頭後解決

[REF]

  1. https://www.asrock.com/support/index.tw.asp?cat=Debug
  2. https://forum.gamer.com.tw/C.php?bsn=60030&snA=549896

FIPS 140 小註解

FIPS [1] 是一個安全規範, 全名為 Federal Information Processing Standards, 望文生義是個美國聯邦的規格. FIPS 基於 ISO 19790 [2] 的規範, 家族有 FIPS-1, FIPS-2, FIPS-3 等幾個版本. FIPS-1 和 FIPS-2 分別誕生於 1994 年和 2001 年, 算是老古董. FIPS-2 現已停止受理 [9]. FIPS-3 是 2019 年才出來的新標準, 將全面取代 FIPS-2.

FIPS 規範的不只是加密模組, 還包括文件, 和 source code 裡面的註解. FIPS-1 的涵蓋面包括: exact module name, hardware, software, firmware, and/or applet version numbers. 這些部分不能被竄改, 但沒有保證一定安全. FIPS-2 和以上的 level 會包含 operating platform.

FIPS-2 裡面又分成 4 個 level:

  • Level 1 可產品化的基本款.
  • Level 2 加上 physical tamper-evidence 和 role-based authentication.
  • Level 3 加上 physical tamper-resistance, identity-based authentication, 以及規定 “critical security parameters" 的 API 要和普通 API 分開 (physical or logical).
  • Level 4 需要硬體保護 (physical), 並且通過攻擊測試.

FIPS-3 除了參考 ISO 19790, 還參考 ISO 24759 [3]. 在 FIPS-2 level 2 當中, 它只提到要留下攻擊的證據, 在 level 3 才需要抵抗. 但打不過也沒關係. FIPS-3 提供一個在執行時自測的方式 (self-tests are only performed if used) [4]. 既然能在 run-time 跑, 它的演算法必須很快.

如果通過 FIPS 認證會拿到一個標章. Goole 後就會發現這 logo 居然可以有很多不同的長相. WolfSSL [4] 說: 號稱 FIPS-140 ready 或是 Design for FIPS 都是混淆視聽, 正版 logo 要通過NIST [5] 認證才算數. 所以標準長相是下圖的前兩個和右下黑白那個 (140-3 和 140-2) [6].

無論是 module 或 product 都可以過 FIPS-140 認證 (Algorithm 走 CAVP [10]). 對於 product 來說, 就是聲明 XX module inside. 目前排隊進名單的廠商非常踴躍, 以 processor 週邊硬體來說, 名單中有 CPU 兩大品牌 Intel 和 AMD 的 Cryptographic CoProcessor, 軟體有 RedHat Linux 的  Crypto API Cryptographic Module. Apple 則是同時有 Intel 版和自家 A 系列 CPU 的 corecrypto Module 都在待測之中.

這個 FIPS 認證流程叫做 CMVP (Cryptographic Module Validation Program), 想要 NIST review 要付工本費 (Cost Recovery fee). 但待測名單很長, 有 351 個 module 在等待測試的名單[7]. 已經過認證的只有 135 個 module [8]. 不知道 NIST 有沒有 super hot run 呢? 還好 Android Kernel Cryptographic Module 已經在 FIPS 140-3 Review Pending 名單之中, 所以只要用對 kernel, 就可以輕鬆上車.

[Ref]

  1. https://en.wikipedia.org/wiki/FIPS_140
  2.  ISO/IEC 19790:2012(E) Information technology — Security techniques — Security requirements for cryptographic modules
  3.  ISO/IEC 24759:2017(E) Information technology — Security techniques — Test requirements for cryptographic modules.
  4. WOLFCRYPT FIPS 140-2 and FIPS 140-3
  5. The National Institute of Standards and Technology (NIST) 
  6. https://csrc.nist.gov/Projects/cryptographic-module-validation-program/use-of-fips-140-2-logo-and-phrases
  7. https://csrc.nist.gov/Projects/cryptographic-module-validation-program/modules-in-process/Modules-In-Process-List
  8. https://csrc.nist.gov/Projects/cryptographic-module-validation-program/modules-in-process/IUT-List
  9. https://www.informationsecurity.com.tw/article/article_detail.aspx?aid=8977
  10. Algorithm 的驗證走 CAVP (Cryptographic Algorithm Validation Program)