1. 背景介紹
1.1. Tensilica介紹
Tensilica 是一個迅速成長的公司,公司主要產(chǎn)品是在專業(yè)性應用程序微處理器上,為現(xiàn)今高容量嵌入式系統(tǒng)提供最優(yōu)良的解決方案。公司成立于1997年7月,該公司的投資者包括三家聲名卓著的創(chuàng)投公司:Oak Investment Partners, Worldview Technology Partners 和 Foundation Capital, 與高科技電子業(yè)內(nèi)著名的五家公司:Cisco Systems,Inc,Matsushita Electric Industrial Company Ltd, Altera Corporation,NEC Corporation 和 Conexant Systems。Tensilica的創(chuàng)始人為Chris Rowen,同時也是第一任CEO,他原來曾任職于Intel,Stanford,MIPS,SGI和Synopsys,同時他也是可重構(gòu)處理思想的提出者和實踐者。
Tensilica公司創(chuàng)立的目的則是提供一種可以實現(xiàn)可重構(gòu)的、核基于ASIC的、擁有對應軟件開發(fā)工具的專用微處理器解決方法。通過前期技術(shù)上的發(fā)展以及三輪融資,Xtensa處理器誕生了。圖1展示了Tensilica公司創(chuàng)業(yè)起步階段的發(fā)展狀況:
圖1:Tensilica公司創(chuàng)業(yè)起步階段的發(fā)展狀況
Tensilica公司于2013年3月被Cadence公司以3.8億的價格收購,為Cadence在當時最大的一次收購。Tensilica公司2012年銷售額為4400萬美元,收購價超過其營業(yè)額的八倍,這也充分顯示了Tensilica公司的價值。
1.2. SOC處理器
在如今復雜的SOC設計中可以看到有很多種的嵌入式處理器,從通用的處理器到專用的處理器。
通用的嵌入式處理器雖然可以很好的處理各種的控制任務,但當遇到像神經(jīng)網(wǎng)路處理、基帶數(shù)據(jù)包處理、圖像處理、音頻處理以及信息加密處理這中復雜的大數(shù)據(jù)處理時,它們的結(jié)構(gòu)、處理方法以及帶寬的限制使其顯示出極大地劣勢。而且對于內(nèi)存大小、cache尺寸和總線接口等的可選擇性較小,一般是通過提升頻率來提高性能,限制較大。
芯片設計者也曾將目光轉(zhuǎn)向硬接線邏輯(設計RTL級blocks)來提升某些主要功能的性能。不過RTL設計的設計周期很長,而且驗證所花費的時間更長,同時它也缺少必要的可編程性和靈活性。
Xtensa LX系列處理器具有很強的可重構(gòu)性和可拓展性,是進行復雜密集型數(shù)字信號處理應用的理想之選,而一個固化的RTL應用也只能作為其他選擇。Xtensa 處理器具有不同于其它傳統(tǒng)式的嵌入式處理器核心,改變了單芯片系統(tǒng)的設計規(guī)則。采用 Xtensa 的技術(shù)時,系統(tǒng)設計工程師可以挑選所需的單元架構(gòu),再加上自創(chuàng)的新指令與硬件執(zhí)行單元,就可以設計出比其它傳統(tǒng)方式強大數(shù)倍的處理器核心。Xtensa 生產(chǎn)器可以針對每一個處理器的特殊組合,自動有效地產(chǎn)生出一套包括操作系統(tǒng),完善周全的軟件工具。可以自由裝組的 Xtensa 處理器,其設計方式彈性大,功效高,是所有高合成的單芯片系統(tǒng)的最佳選擇。它采用硬件可重構(gòu)加軟件編程的方式,既提升了處理器的運算性能又通過軟件便于實現(xiàn)控制[1]。
2. Xtensa處理器的結(jié)構(gòu)
對于Xtensa處理器結(jié)構(gòu),接下來分硬件結(jié)構(gòu)和指令集架構(gòu)兩部分分別介紹。
2.1. Xtensa處理器的硬件結(jié)構(gòu)
純硬件的系統(tǒng)便于進行計算,不便于實現(xiàn)控制,而軟件系統(tǒng)則正好相反(如圖2),Xtensa處理器正好利用了兩者的優(yōu)勢來進行處理器設計,它采用硬件可重構(gòu)加軟件編程的方式,既提升了處理器的運算性能又通過軟件便于實現(xiàn)控制。
圖2 軟硬件在計算和控制方面的優(yōu)劣勢[2]
Xtensa LX7處理器結(jié)構(gòu)如圖3所示。
圖3 Xtensa LX7處理器結(jié)構(gòu)圖[3]
由上圖可以看到,Xtensa LX7處理器的硬件結(jié)構(gòu)包含基本模塊、可重構(gòu)模塊、可選擇模塊、用戶定義模塊、功能模塊、以及拓展模塊。Xtensa LX7處理器以基本模塊為核心,SOC開發(fā)者可以根據(jù)需要的功能在功能模塊通過編碼或者圖形界面選擇相應的模塊進行組合或者對可重構(gòu)模塊進行對應重構(gòu)來優(yōu)化運算的性能,并能夠使用戶在較短的時間內(nèi)設計出面向特定應用的處理器。
基本模塊包含Instruction Fetch/Decode模塊,用來進行指令的抓取和譯碼;Base ALU模塊,是一個基本的32位的ALU;控制模塊和一些寄存器模塊,用來實現(xiàn)控制和寄存。
可重構(gòu)模塊包含Instruction/Data Memory Management and Error Protection模塊,用來實現(xiàn)對指令和數(shù)據(jù)存儲器尺寸、奇偶校驗和ECC的重構(gòu);Data Load/Store模塊,用來重構(gòu)Load/Store通路的位寬以及單雙向;Base Register File模塊,可重構(gòu)Register的尺寸;Processor Interface Control模塊,可以實現(xiàn)對接口不再對系統(tǒng)總線進行依賴,可以實現(xiàn)對interface、port和queue的重構(gòu);Write Buffer 模塊,可以實現(xiàn)對1-32個buffer的選擇;iDMA模塊,通過重構(gòu)實現(xiàn)接口直接讀取處理器的本地數(shù)據(jù);還有Instruction/Data 的一些存儲(Cache、RAMs和ROMs)、一些寄存器(Data-Address Watch Rrgisters、Instruction-Address Watch Register)以及timer和中斷控制同樣是可充配置的。
用戶自定義模塊包含Designer-Defined Functional Units,用來實現(xiàn)基礎功能之外的用戶自定義的一些功能;Designer-Defined Data Load/Store Unit,可以實現(xiàn)多路的Load/Store通路,提升性能。
外部模塊包含連接在數(shù)據(jù)總線上的一些外設包括RAM、DMA、Device以及一些與端口接口相連的Memory。
2.2. Xtensa處理器的ISA
這個32位的Xtensa LX7處理器的結(jié)構(gòu)特色是有一套專門為嵌入式系統(tǒng)設計、精簡而高效能的16與24位指令集。其基本結(jié)構(gòu)擁有80個 RISC 指令,其中包括32位基本的ALU,6個管理特殊功能的寄存器,32或64個普通功能32位寄存器。這些32位寄存器都設有加速運作功能的窗口。下面分別介紹一些Xtensa處理器ISA的特性。
2.2.1. 基礎性質(zhì)
Xtensa處理器有大量的可重構(gòu)的選項,可以讓用戶獲取實現(xiàn)所需功能和性能的邏輯;高效能的16/24位指令集和用戶自定義的可變長度指令集(長度為4-16bytes的任意值)使內(nèi)存長度和性能達到最佳狀態(tài);選用5-7級ISA流水來對不同的內(nèi)存進行加速;拓展的DSP也可實現(xiàn)最高31級流水;可選擇的隊列(FIFO)、端口(GPIO)和查找接口有著幾乎無限的I/O帶寬來進行數(shù)據(jù)的傳輸,不受系統(tǒng)帶寬的影響;可以選擇通過硬件的預取來降低內(nèi)存的延遲;自動生成細粒度的門控時鐘可以實現(xiàn)功耗的降低;可以通過FLIX來實現(xiàn)指令的并行。
2.2.2. 兼容性
兼容性是Xtensa處理器ISA的根本,因為只有具有很強的兼容性才能很好的應用到第三方的應用軟件和開發(fā)工具上去。所有的可重構(gòu)、可拓展的Xtensa處理器都對主要的操作系統(tǒng)、調(diào)試工具以及輸入校驗設備兼容。同時所有版本的處理器都向上兼容,同時用戶自定義的指令可以重復使用。
2.2.3. 拓展性
Xtensa處理器可以很方便的將指令無縫的添加到處理器的數(shù)據(jù)通路中。任何相關(guān)的C數(shù)據(jù)類型、軟件工具鏈和需要的進行綜合的EDA腳本都是自動生成。數(shù)據(jù)通路、相關(guān)的指令以及C數(shù)據(jù)類型都是用TIE(Tensilica Instruction Extension)語言來寫的。
2.2.4. 可重構(gòu)性
Xtensa處理器提供預驗證的模塊,當用戶的設計需要時隨時可以將其添加到設計中去,可以又快又好的實現(xiàn)所需設計。所有可重構(gòu)的選項如圖4所示。由圖可知可重構(gòu)的部分包含:在不同的應用下選用不同的DSP (HiFi DSPs for Audio/Voice/Speech,Vision P5 and P6 DSPs for Imaging and Vision,ConnX BBE16EP, BBE32EP and BBE64EP DSPs,F(xiàn)usion F1 DSP,F(xiàn)usion G3 DSP),實現(xiàn)DSP的重構(gòu);多重自定義長度的GPIO ports對外設進行控制和監(jiān)測;Queue中的接口寬度可選擇;32位乘法器與16位的乘法器和MAC;單精度/雙精度,標量/矢量浮點數(shù)模塊的選擇;對于VLIW和一般的指令可以通過三路64位的FLIX實現(xiàn)交叉存取。
圖4 Xtensa LX7 處理器最大范圍的可重構(gòu)選項
2.2.5. 其他性能
高低字節(jié)排序的可選擇;1或2個通用的load/store unit,每個的尺寸為32-,64-,128-,256-,512-bits可選;1-32個輸入可選擇輸入buffer; 多重自定義長度的接口是數(shù)據(jù)通過FIFO進出;FLIX的長度可選,最高128bits;數(shù)據(jù)和指定的Cache采用4路組相連,最大為128K,運用write-back和write-through的cache寫入?yún)f(xié)議;可選擇的對本地內(nèi)存的奇偶校驗和ECC。
動態(tài)功耗和漏電流功耗較?。煌ㄟ^中斷控制來進行片上調(diào)試;可選擇的16位處理器ID,支持大規(guī)模并行陣列結(jié)構(gòu);支持第三方的JTAG debug probe進行片上調(diào)試的硬件。
3. 通過Xtensa處理器為SOC設計增加靈活性和拓展性
Cadence為Soc設計者提供可以通過軟件編程使其設計更加靈活性和長壽命的解決方案,以及對于特定的應用提供定制處理器?,F(xiàn)在用戶可以通過TIE(Tensilica Instruction Extension)語言設計一款功能、指令設定可拓展原始處理器設計者從未想過的特性。
TIE語言可以描述指令、寄存器、拓展單元和I/O,然后這些會自動生成并添加到處理器中。TIE語言與verilog類似,用來描述希望的指令、操作數(shù)、編碼和執(zhí)行語義。TIE文件是Xtensa處理器發(fā)生器的輸入文件,處理器發(fā)生器自動的建立重構(gòu)的處理器和完整的軟件工具鏈,該軟件工具鏈包含所有的可重構(gòu)的功能和新的TIE指令。
TIE語言可以讓用戶將產(chǎn)品性能提升和創(chuàng)造其獨特性。Xtensa處理器的拓展性可以將優(yōu)化的特性添加或者應用到任何需要優(yōu)化處理器成本、功耗、應用性能的平臺上。
3.1. 靈活性
就像你可以從一系列預先確定的功能選項中選擇特定的功能來提升處理器的性能,現(xiàn)在可以創(chuàng)造可以提升標準或者自定義算法指令以及更大的帶寬的數(shù)據(jù)接口。通過使用提供的工具,應用的熱點可以被定義,同時添加用來更高性能處理這些熱點的指令,從而不再需要提升時鐘頻率或者重寫大量的軟件。
3.2. 獨一性
對于通用處理器固化的功能,不同算法運算可能性能會有差異。通用處理器在進行通用計算時有優(yōu)勢,但是不擅長計算任何一個特定的算法。Xtensa處理器為用戶提供了通過能夠加速特定算法的硬件來區(qū)別的高性能的執(zhí)行各種算法(其思想如圖5所示)。這意味著只要用戶定義的處理器達到了在相同軟件上執(zhí)行的性能,該設計就不可能被復制。
圖5 Xtensa LX7處理器提供的添加用戶定義的功能和接口的思想
3.3. 通過FLIX進行并行操作
由圖5可知,用戶自定義功能的實現(xiàn)是通過FLIX。FLIX結(jié)構(gòu)使得Xtensa LX7處理器稱為一個VLIW處理器,如果需要可以實現(xiàn)2-30的并行。FLIX指令的長度為4bytes到16bytes之間的任意值。這種可變長度的FLIX指令可以與Xtensa處理器標準的16/32 bits指令無縫混合,所以不會有模式轉(zhuǎn)換上的損失。圖6展示了用戶使用FLIX創(chuàng)造VLIW進行2-30級的并行操作
通過FLIX(可變長度指令字)Xtensa處理器可以除去在使用VLIW時指令寄存器的冗余損失。事實上,使用FLIX的Xtensa可以同時提供高性能和曉得代碼長度。使用FLIX的損失是很小的,只是增加了2000個門用來進行指令的控制和譯碼,但是帶來的好處是很大的。
Xtensa的C/C++編譯器自動的從源代碼中提取出并行操作并將多種操作加到FLIX中,所以即使不通過額外的軟件資源同樣可以獲得并行計算好處。通過這種方法,一個three-issue的Xtensa LX7處理器在一個較低的頻率下運行也可以達到對應其他設備在相當高時鐘頻率下的性能。
圖6. 用戶使用FLIX創(chuàng)造VLIW進行2-30級的并行操作
還有關(guān)于接口的可重構(gòu)方法,以及對應的軟件部分由同組其他成員調(diào)研,在此不做講解。
4. 總結(jié)
Xtensa 處理器的實現(xiàn)了對硬件和軟件的共同設計,通過硬件重構(gòu)進行高性能的計算,通過軟件編程進行高效率的控制。而且Xtensa 處理器結(jié)構(gòu)技術(shù)先進、指令精簡,可以幫助系統(tǒng)設計師大量縮減編碼的長度,從而提高指令的密集度并降低能耗。這對于高合成的單芯片系統(tǒng) ASIC 而言,是減低成本的重要關(guān)健。
審核編輯 黃宇
-
處理器
+關(guān)注
關(guān)注
68文章
19440瀏覽量
231321 -
asic
+關(guān)注
關(guān)注
34文章
1206瀏覽量
120821
發(fā)布評論請先 登錄
相關(guān)推薦
RK3126處理器:高效四核Cortex-A7多媒體處理平臺
RV1109處理器概述
面向NXP i.MX8處理器的電源解決方案
![面向NXP i.MX8<b class='flag-5'>處理器</b>的電源解決方案](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于全志V853處理器的智能輔助駕駛算法介紹
![基于全志V853<b class='flag-5'>處理器</b>的智能輔助駕駛算法<b class='flag-5'>介紹</b>](https://file1.elecfans.com/web2/M00/07/4D/wKgaombk5aqAfTlmAAAuABGoxC8054.jpg)
使用TPS6521815 PMIC為NXP i.MX 7處理器供電
![使用TPS6521815 PMIC為NXP i.MX <b class='flag-5'>7</b><b class='flag-5'>處理器</b>供電](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RK3568處理器硬件設計的要點及注意事項
適用于ARM Cortex?—A53處理器A53處理器和FPGA的集成電源管理IC TPS65220數(shù)據(jù)表
![適用于ARM Cortex?—A53<b class='flag-5'>處理器</b>A53<b class='flag-5'>處理器</b>和FPGA的集成電源管理IC TPS65220數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
ScaleFlux即將推出集成Arm Cortex-R82處理器的企業(yè)SSD控制器
業(yè)界首款基于Arm Cortex-M85處理器的MCU
![業(yè)界首款基于Arm Cortex-M85<b class='flag-5'>處理器</b>的MCU](https://file1.elecfans.com/web2/M00/C3/99/wKgaomXmuO6ATAinAAAgk7MA8Kg950.png)
評論