/images/avatar.png

2025 交大 OSC 紀錄

Lab0

因為是跨平台開發 ARM 機器,所以要用到 Cross compiler 開發,並且使用自己的 Linker 把寫的程式弄到特定記憶體位置。

中間有 Assembler,裡面會有 .data, .text 等,寫組合語言時,檔案裡會有兩種東西:

FreeBSD Interupt 介紹

基礎分類

  • Hardware interrupt: 非同步的產生,像是硬體鍵盤,收到封包等
  • Hardware trap/Exception: 由 CPU 指令產生的事件,像是 Page Fault/除與 0/無效指令,同步的事件
  • Software trap: 軟體故意觸發的 Exception

上半部下半部

  1. Top half(硬中斷 context)
    1. ISR(interrupt service routine)
    2. 很短
    3. 不能 sleep
    4. 會關閉中斷
  2. 下半部,可以把 interrupt handler 轉成 kernel thread 來跑
    1. ithread = interrupt handling thread

所以 FreeBSD 會用一個 kernel thread 放入 task queue 來作下半部的事情,有點類似 Linux workqueue。

硬體韌體相關協議了解

PCIe

以前有北橋負責讓 CPU -> RAM/GPU,南橋負責到 USB/SATA/PCI/Audio 等,現在南北橋晶片直接融合到 CPU 裡面,並且透過 PCIe 連接,像是:

  • CPU -> GPU
  • CPU -> SSD
  • CPU -> 網卡
  • CPU -> USB Controller

以 CPU -> GPU,常常會用 MMIO,MMIO 就是使用 PCIe 實作,並且還會有 DMA。

GPU 基礎了解

GPU 歷史

請先去看影片 GPU 是怎麼被發明的?

隨者 1960/1970 圖形化應用程式的日益成長使用,第一個最早 2D 圖形控制器晶片出現

  1. uPD7220 在 1981 由日本電氣公司發明,目的為了有效支援漢字
  2. IBM 在 1981 也推出有擴充槽的電腦 IBM 5150,可以讓使用者自己安裝獨立的顯示卡
  3. IBM 8514 1987 年推出,支援 1024 x 768 顯示分辨率的顯示卡
  4. 1991 S3 推出 86C911 2D 圖形顯示卡

3D 圖形控制器也在學校盛行

台灣半導體產業了解

半導體晶片設計流程

晶片的最早買家通常可分為三類:

  • OBM(Original Brand Manufacturer): 有自己的品牌,像是 Apple/ASUS/Dell,他們賣最終產品給消費者,OBM 可能直接跟 IC design 公司買晶片,也可能透過 ODM or OEM,如果自己有設計能力就是找 OEM,沒有就找 ODM 幫忙設計加生產
  • ODM(Original Design Manufacturer): 幫忙設計加上生產
  • OEM(Original Equipment Manufacturer): 代工生產,產品會掛別人的品牌
  • 雲端大廠,Amazon/Microsoft/Google 自己買晶片來組裝伺服器產品,像是直接跟 NV 買 GPU 晶片弄 AI Server
  • 車廠,也會自己買車用相關晶片

Design win 就是客戶決定在產品裡採用你的晶片,例如 ASUS 下一代 router 決定採用 Broadcom Wi-Fi SoC。