Audio DSP 的進化

最近又在討論下一顆 IC 的 DSP 規格. Clock 愈快愈好? Memory 愈大愈好? 擴充指令愈多愈好? DSP 放兩顆、放三顆? 我發現都不是.

以賣 audio DSP IP 聞名的 T 公司, 做同樣的 algorithm, 只需要我們的演算法的一半 MHz.[註] 看到這一點, 大家都會想到要加快 clock, 加大 memory, 加多指令, 更重要的, 是督促 firmware 的人把 code 寫得好一點 ! 叫他們皮繃緊一點! 不過以上的思維還沒有掌握到這個問題的進階層面.

如果對方的 MIPS 數也是我們的一半呢? 這表示我們的 DSP 本來需就要對方一倍的指令, 如果我們不能學對方用 VLIW 大幅減少指令數, 就需要能同時存取多道指令, 也就是必須邁向 superscalar. 先在 instruction fetch 的關卡把 clock 減掉一大半, 後面才有機會把運算的 cycle 都藏到 load-store cycle 之中, 快到讓傳統思維的對手無法想像.

如果業界的標準是: MHz 還遠在 MIPS 之上, 那麼還可以用擴充指令集、加大 local memory 來提速. 但是 bench mark 的 MHz 已經降到 MIPS 以下很多的時候, 那就表示進入架構之爭了. 不能改架構的人, 像是我們的競爭對手 S 公司, 硬是擺出 3 顆 400 MHz 的 DSP 來叫陣, 其實也是不明智的做法. 但是頭已經洗下去了, S 公司也要顧及相容性問題. 如果有辦法, 我們應該不要學這種壞榜樣.

[註] T 公司的習慣, 所有的 memory access 都只要一個 cycle. 雖然寫的 MHz, 其實是 MIPS.

Audio DSP 的進化 有 “ 12 則迴響 ”

  1. 嚴格說來, LX4xxx/LX5xxx 相關的 IC 架構是 uC 而非 DSP, 所以 MAC 的效率很差, 沒有 barrel shifter, 沒有 circular buffer control, 不該與 T 公司的 DSP 相比較.
    VLIW 除了硬體之外, Compiler 與 firmware programer 也是重點, 除此之外晶片成本也是必需考量的因素.

  2. 以現在一般的說法,superscalar 都是指 dynamic superscalar(Out-of-Order), 僅僅只是把前端 issue slot 做寬的話,指令的排程就跟 VLIW一樣需要用手排或編譯器輔助;而OoO 需要複雜的硬體設計跟驗證,一般人是不敢輕易嘗試的。
    Very-Long-Instruction-Word 不是叫假的,以指令的長度來說並沒有比較短喔。
    談到效率問題的話,RISC架構本來就是以指令簡單為基本精神,像 arm 跟一般 dsp 的一道指令可以結合兩三件事反而不利於MHZ。
    circular buffer for instruction side and data side 嘛… 說多了就露餡了XD

  3. 看來我的 server lag 了, 多 post 一篇, 哈!
    DSP 這個行業很有趣, 雖然 TI, ADI 已經出了一大堆型號, 客製化的 DSP 還是可以有一席之地. 因地制宜就是兩家什麼 i 公司吃不到的.
     

  4. LX5xxx說實話很難用, 不僅MAC差, 一堆功能根本像雞肋, 聊勝於無, 多少賺到一點而已…

    所謂的VLIW, 可以想成是AE(HW加速指令)吧?
    例如, 如果把buffer排好, 一個指令就做好MDCT, 也滿爽的…哈
    但是audio codec太多, 每種MDCT所用做法跟精度都不一樣, 用HW做死, 實在很笨, 而且cost…

    想要更多superscalar, 重要的是tool-chain, 手動排兩路已經很接近人腦極限了.
    TI敢推八路, 是它的code composer很不錯(同學跟我說的)還有一堆現成的lib.

    T公司那種習慣已經接近詐欺了…XD

  5. T 公司高階的 DSP 我覺得比較適合 Video 影像處理, 或是需要多工的平行處理 Task, 以前 ITRI/CCL 有接觸過 C8X / C6X 系列的 DSP, 用在 Audio 上實在太浪費了 !!!
    多出來的一篇煩請版主處理掉吧.

  6. To isometry
    VLIW 基本上算是 MIMD 的架構, TI 的 C6X 算是 VLIW 的產品, 很難寫低階程式, 完全靠 C complier. 
    至於 LX-5XXX, 嗯…, MAC 的確是比較沒有效率, 不過 uC 還是有 DSP 沒有的優勢 : MMU, IO 界面比較有彈性而且完整, 更重要的是一堆 Audio firmware 都已經寫完, 測完, 換顆不同 CPU 就要重新再來過, 那樣會天下大亂的 !!!

  7. 來點大雜燴。
    CPU 藉由 SIMD 來輔助的做法,跟純DSP的方法還是不一樣。 這是從 CPU 起家,想用來跨界吃進DSP領域,如PowerPc 的 altivec 與 x86 的sse,顯然ARM想如法泡製。小弟還沒看過neon的die size,128~256 bita 寬的 data path,上述兩個架構size 都不小。但是以純賣CPU的公司來說,那樣的cost可以接受,embedded system 目前還狀況不明。不過只要人力跟錢都夠多的話,Xbox360的系統,拿來當home entertainment center 是綽綽有餘。(三核加SIMD)
    另外ARC 針對影音系統也有提出子系統的設計,同樣是透過SIMD加新指令來做的。
    以ARM的觀點,還有他們的說帖,它建議大家:我們的SIMD夠強,你們何必使用多的DSP呢?就傳統的手機來看(非現在的smart phone),CPU+DSP的異質雙核是一個經過考驗的系統組合,但已經不合時宜;現在誰還買只能打電話的單色手機呢?
    另外,ADI 跟 intel 合作的 blackfin,也是可以借鏡的對象。
    有人有試用過 TI C6x 系列的 C compiler嗎?它產出的 binary 品質怎樣?

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

%d 位部落客按了讚: