[腦力科技之六 - TopicsExpress



          

[腦力科技之六 抽象之用是為大用] 「人皆知有用之用,而莫知無用之用也。」 - 莊子人間世 前面講過虛擬化技術可能在一剛開始時被覺得是無用的,但是事實證明他是有大用的,但是要是這個團隊一剛開始就沒遇到伯樂,那麼也不算太冤枉,因為一隻程式在還沒為人們做甚麼之前就先消耗掉CPU一半的戰力,也太說不過去了。不過有些東西卻是從頭開始人們心裡就知道是有用的,可是往往卻因為某些因素而以無用視之,甚至殘害之,這就像是人類知道要砍樹就也要努力種樹才不會引起自然災害,也知道不該把種植糧食的良田拿來亂蓋房子才不會有一天弄到缺糧,但是台灣山林還是一直被濫墾,良田上還是繼續在蓋著”豪華農舍”,人類的謬誤莫此為甚。 自來人們就知道數學為科學之母,從小學了一堆數學,可是卻有很多人說數學沒用,學文法的也就算了,學工程的這樣子說就實在是說不過去了,可是事實上許多資訊科系的學生嘴巴不說,其實心裡卻在想,不知道學物理,微積分,工程數學這些”這麼理論”的東西要做甚麼用,解微分方程到底有甚麼用,,念資訊系不是只要會寫程式就好了嗎?巴不得找一個不需要數學的領域算了。 其實數學最有用之處莫過於把具像的事物抽像化(Abstraction),一旦抽離具像的干擾後,完整的數學體系可以應用在許多面,只要在臨到應用時加上領域知識(Domain Knowledge)就行了。舉例來說,微分方程可以用來解電路系統問題,可以用來解機械系統問題,可以用來解波動問題,因為許多物理現象都是以波的形式存在,所以舉凡聲波,電磁波,水波等等都可以運用得上。這是因為當抽掉具像的因素後,微分方程被純化成只剩下用來代表要被分析的訊號與輸入訊號的函數的各階微分經過權重(weighting)的組合後,反而可以用來代表萬事萬物。勉強可以稱之為形而上的道。 所以我在上訊號與系統的課時,第一堂課我總是喜歡問修課的學生兩個問題。第一個問題是:有哪些東西我們可以稱之為訊號的?第二個問題是:可以用來代表所有訊號的最簡單的表示方法是什麼? 由此可知抽象化(Abstraction)的重要性。大家都知有用的抽象化表示方式很有用,而事實上抽像化表示方式也確實有大用,不過往往卻因為不能了解其大用,反而說它是無用的。這難道不也是一種謬誤嗎? 1990年代末期,幾家EDA(IC 設計工具)公司與IC設計大廠開始採用比一般的HDL(硬體描述語言)如Verilog與VHDL更高階的程式語言來為日益複雜的電路建造目標硬體電路的模擬模型(Simulation Model),例如C++(以致於發展成後來標準化,OSCI所訂定的 SystemC)。這樣子的設計方式我們稱之為電子系統層設計(ESL – Electronic System Level Design)。2000年初期,一家世界級的公司用這種設計方式在短短時間內開發出H.263X的視訊晶片,而且是一次就成功,沒有系統功能上的bugs。 ESL的設計方式其實就是把電路的抽象層級提高。最早我們設計電路時是用一顆顆電晶體(Transistor)來堆砌的,接下來改用邏輯閘(Logic gate),一個邏輯閘是由好幾顆電晶體來組成的,沒幾年,硬體描述語言(HDL)盛行時,再改用暫存器(Register)為主要基本單位,換言之,當基本單位越長越大時,其實一個工程師這時所堆砌的設計離這個設計的真正電路的樣子就越來越遠,也就是越來越抽象了,這也就是我們說的抽象化技術(Abstraction)。等到用SystemC來建模(Modeling)時,比較通用的是更加抽象的所謂的交換層建模(TLM - Transaction Level Modeling)。電路設計一路從Transistor Level,Gate Level,Register Transfer Level到 TLM經過數十年的時間,但是也因為這樣,IC的複雜度才能越做越高,也才能處理越複雜的工作,沒有高度複雜的IC,智慧型手機也無法這麼快上市。 提高設計抽象層級(Abstraction Level)有什麼好處呢?真的說起來會說不完,所以我選了兩個重點,這也是最早ESL被引入的原因。第一,因為抽象層級高,所以系部電路動作在模擬時不需要被計算,若是只要資料與功能無誤就可以,那麼模擬的速度可能是Register Transfer Level的一百萬倍以上。第二,因為模型模擬的速度夠快,所以軟體工程師可以直接在此一抽象模型上直接開發程式,而不必等IC做出來才開始寫軟體。舉例來說,用Register Transfer Level所設計的CPU的模型要開啟嵌入式Linux作業系統可能要花上一小時,可是用TLM的模型卻只需要幾十秒,這已經接近真正的硬體所能達到的速度了。也就是,硬體設計的Bug可能會在還沒送到台積電去生產前,就會被軟體工程師找到了,一來一往,省下的錢可是以千萬計的。 2002年開始,我的實驗室開始採用C++來做電路設計與模擬(那時 SystemC還沒被標準化),目標電路是MPEG4視訊編解碼晶片。後來,我們發現做ESL工具比做ASIC (Application Specific IC)還有趣,因此就在這顆MPEG4晶片在FPGA上驗證完後,轉向開發ESL相關的工具。幾年後,我應邀到上海演講,當時三位學生負責正在設計H.264的編碼晶片(與電機系陳中和老師合作)。其中一天晚上,我與我的博士班學生在旅館裡,收到一位學生用MSN跟我們通訊,說是電路有錯,而他猜想是跟我再一起的博班學長的設計錯了。我們在MSN上討論起來,兩人爭執不休,後來我們決定跑一次模擬,請在台南的實驗室的學生把某幾個重要的暫存器在計算過程裡所有的變化都印出來檢查。結果一個小時不到,bug找出來了,而且是在編碼到第七百多張時才出現錯誤,因為測試影片在那一張的前後出現爆炸場面,有一隻暫存器因此而溢位(overflow)了。當下學生把bug改掉,再跑一次模擬,隔天上午我收到訊息說是沒問題了。 知道H.264編碼的硬體模擬的複雜度的人都知道,要是使用Register Transfer Level的設計,恐怕要花上好幾個小時以上才可以跑完全部300張352X288解析度的影片,而當時我們用的是1200張640X480的影像(擷取自搶救雷恩大兵一片),計算量是前者的好幾倍,使用更抽像的模擬模型,每秒鐘可以編碼約四張圖片,跑完整個測試影片也不過幾分鐘。另外,我們之前已經先做好一隻程式工具,在模擬過程中可以把資料倒出來後跟H.264官方標準的編碼軟體做自動比對,所以才可以這麼快就找到bug並把它改正。 隨著SystemC的標準化,我們的工具也就隨之一一更新到使用SystemC上面,而且我們自己的ESL工具也越做越多,甚至還把一堆高階如Matlab(科學運算工具軟體)與低階如ModelSim(電路模擬軟體)都弄了進來一起跑模擬,希望可以幫助設計的進行,我的一位出色的學生甚至提出了一種漸進式設計流程(Progressive Design Flow),讓我們的電路設計容易被除錯,也容易融入其他系統軟體中一起被驗證(這點我之後有機會再來說明)。那時實驗室的學生,只要是做硬體設計的,畢業的作品都要在FPGA上跑個一天,測過一堆Benchmarks才算數,我們對我們開發的工具與設計流程越來越有信心。不過接下來的情況卻讓我傷了心。 接下來幾年,有演講費也好,沒有也罷,從2005/06年開始我想辦法到處去講說ESL的優點,連續幾年下來,我好像是傳道士一樣。國內幾家IC設計公司或設計服務公司連續幾年找我去演講新的進展,多次說要引進ESL的設計流程,但是都沒下文。後來,我從側面聽到的消息是,有位高階主管在聽完我的演講後,私下表明只要他還在設計團隊,就不會採用 ESL的方式。2010年之後,我累了,我想我無法對ESL生死以之,所以是不夠資格當個傳道士的。 不要誤會我認為只有ESL才是對的設計方式,事實上,國外有許多不看好的聲音,而ESL的提倡者一開始就畫了太多大餅也是原因。事實上也沒有任何設計方式可以適用於所有的狀況,前面說的,到底要複雜,還是要簡單,其實還是要看狀況決定,對我來說,ESL是一種思維,或者我們要是把設計這件事當作是一種道,那麼ESL應當是用來解脫我們於許多既成的設計工具與觀念的,ESL不應該被任何設計工具(包含 CoWare - ESL最被廣為使用的IDE)或是語言(如SystemC)所束縛。ESL所著眼的是從為了完整的系統運作的角度俯視(Top Down)所有的設計細節,把所有的細節依據他們各自該被設計的方式整合在一起,驗證時就一起被驗證。又因為模擬速度快,所以可以讓軟體工程師與硬體工程師組成一個共同團隊一起設計。可想而知這樣做會有什麼好處了吧! 2010年之前,我的實驗室開始做多核心的一些系統軟體工具,我的注意力很快就被我的新玩具轉移了,在ESL這邊所受的挫敗也就不算什麼了,人總是要往前看的,研究也一樣。 2010年,成功大學由李崑忠教授領軍組了一個團隊從ESL出發,設計一顆多核心晶片,晶片裡包含多媒體應用,溫度管控,電壓管控,測試等等,2013年,這個團隊得到國科會智慧電子國家型計畫(NPIE)的績優獎第一名。接著,我的學生進入若干公司的設計工具團隊後,也跟我說,目前他們公司的很多bugs都是在系統層級就發現了,所以公司也越來越重視ESL了。2011年一家國際級的公司為了要設計一個超過一千個連接阜(port)的通訊用晶片來轉移我們設計的SystemS模擬核心加速功能。同時開心的是,國內的晶心科技一開始就很注重系統層設計,系望他們可以成功發光發熱。 不過當一個技術已經開始普遍被接受之際,對於一個研究人員來說,就是離開的時候到了。 ESL的故事說明了甚麼?在過去這十年裡,我們的產業又錯過了甚麼? 在這過程中我自己又做錯了什麼呢?無疑的,我們失去的東西裡面包含著無數的商機。 抽象的東西,本來就不易讓人一下子就接納,但是抽像的用處與它可能帶來的商機其實很難估算的,他可能無用,也可能有大用,也許只有大智慧者才可以從中看出端倪,找出機會。
Posted on: Wed, 11 Sep 2013 14:27:46 +0000

Trending Topics



"min-height:30px;">
Two things contribute to cavities: Fluoride, by increasing tensile
So back when I was still in between junior high school and high
Easy Cheesy Bun in Cup Ingredients: 300g unbleached top
Cancer Libra Compatibility: When Cancer and Libra make a love

Recently Viewed Topics




© 2015