<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 設(shè)計(jì)一個(gè)自己專用處理器該怎么完成?

          設(shè)計(jì)一個(gè)自己專用處理器該怎么完成?

          作者: 時(shí)間:2017-05-18 來源:網(wǎng)絡(luò) 收藏

            做芯片設(shè)計(jì)的各位,在某個(gè)時(shí)刻,你也許會(huì)產(chǎn)生一個(gè)想法,“為什么不自己設(shè)計(jì)一個(gè)處理器呢?”或許是手頭的處理器并不好用;或許是想用的處理器貴的離譜;或許是你希望做出差異化的產(chǎn)品;又或者僅僅因?yàn)樗莻€(gè)誘人的挑戰(zhàn),你想嘗試一下...既然如此,我很高興能和你討論一下怎么完成這個(gè)任務(wù)。

          本文引用地址:http://www.ex-cimer.com/article/201705/359329.htm

            交付物

            我們先從結(jié)果說起,也就是這項(xiàng)任務(wù)的最終交付物。這里不妨參考ARM處理器核的deliverables。當(dāng)然,如果只是一個(gè)自己用的,不一定要有這么完整的交付物。

            硬件:主要是處理器相關(guān)的RTL代碼,驗(yàn)證環(huán)境,EDA工具的腳本,文檔等等。

            工具:主要包括編譯工具(compiler),調(diào)試工具(debugger),仿真工具(simulator)和性能分析工具(profiler)。下圖是ARM的編譯工具的例子,主要包括armclang(C編譯器),armasm(匯編器),armlink(鏈接器)和fromelf(image工具)。

            

          設(shè)計(jì)一個(gè)自己專用處理器該怎么完成?

            仿真工具一般至少包括一個(gè)指令仿真器 instruction set simulator (ISS),做的好的有cycle-accurate ISS。

            模型:此外,現(xiàn)在一般的處理器IP還會(huì)提供一些處理器的模型來支持系統(tǒng)級(jí)設(shè)計(jì),比如用于虛擬平臺(tái)(virtual platform的處理器model。虛擬平臺(tái)可以在沒有硬件的情況下支持軟件開發(fā),它可以模擬一個(gè)完整的芯片或者一個(gè)硬件板卡,比如ARM的Fixed Virtual Platform (FVP)。而專用的處理器模型(比如ARM的Fast Model)是虛擬平臺(tái)的重要組成部分,和總線模型以及其它IP模型一起模擬系統(tǒng)的功能。

            在上述交付物中,紅色為必不可少的內(nèi)容。即使你做的功能簡(jiǎn)單,沒有這幾部分它也幾乎是無法正常使用的。當(dāng)然,你可以說,我不需要ISS做指令驗(yàn)證,不需要debugger做調(diào)試,不需要C編譯器而只用匯編,我也只能“呵呵”了。

            看到這一大堆工作,如果你沒有膽怯,而是覺得很有意思。那么我也很愿意給你點(diǎn)幫助,看看是不是可以把你的想法變成現(xiàn)實(shí)。其實(shí)方法也很簡(jiǎn)單 — 自己做不了就找“別人”幫忙唄。

            具體來說,根據(jù)你的預(yù)算情況,可以分為“窮”和“富”兩種玩法。我先說說有錢的玩法吧。

            富玩法

            其實(shí),不止你一個(gè)人想做,很多大公司也有這樣的需求。所以,就有人為這種需求專門提供了解決方案,比如Synopsys的ASIP-designer工具和Cadence的Xtensa可擴(kuò)展處理器(參見Cadence(Tensilica)的可定制處理器),都是為了滿足定制處理器的需求而設(shè)計(jì)的。

            其中Cadence的可擴(kuò)展處理器是在一個(gè)基礎(chǔ)處理器上給你提供了配置(configure)和擴(kuò)展(extension)的方法和工具。它提供的功能可以通過下圖感受一下。

            

          設(shè)計(jì)一個(gè)自己專用處理器該怎么完成?

            這套工具的輸入包括三個(gè)部分:1)一個(gè)處理器模板(Processor Template);2)用戶配置(Configuratoin Options);3)定制的指令(Custom Instructions)。最簡(jiǎn)單的情況,你只要選一個(gè)處理器模板扔給工具就可以了。如果這個(gè)不能滿足要求,那么你可能要做一些配置。這個(gè)也很簡(jiǎn)單,基本是菜單選擇。最有技術(shù)含量的是第三種情況,你要設(shè)計(jì)一些定制的指令。有了這些輸入,剩下的事情就都交給工具了。我們?cè)诘谝还?jié)說的那些交付物,都可以自動(dòng)生成。

            那么我們?cè)趺粗酪灰约憾ㄖ浦噶钅?工具也提供了方法。首先,輸入你的算法程序輸入,經(jīng)過編譯,進(jìn)行仿真和profiling,得到性能評(píng)估的結(jié)果。然后判斷是否滿足需求。答案是NO的話,就嘗試更新Configuration;如果還是不行,再嘗試定制指令的方法,直到滿意為止。由于工具幫助你做了大部分工作,這個(gè)迭代的過程(也可以看作是Design Space Exploration)會(huì)非???。

            

          設(shè)計(jì)一個(gè)自己專用處理器該怎么完成?

            為了實(shí)現(xiàn)定制指令(對(duì)原有指令集進(jìn)行擴(kuò)展),Cadence(Tensilica)設(shè)計(jì)了一種專用的描述語言:Tensilica Instruction Extension (TIE) language。由于Xtensa處理器有一個(gè)基本的架構(gòu)模板,使用TIE語言對(duì)它進(jìn)行擴(kuò)展是有一定的限制,不是說你想做的指令和架構(gòu)改動(dòng)都能夠?qū)崿F(xiàn)。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 專用處理器

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();