基于Xtensa的ASIP開發流程研究
(1)將C++代碼輸入Tensilica Xplorer開發環境,選擇系統自帶的sample_config-params (RB-2006.0)配置信息作為ASIP開發的起點,即在此基礎上進行體系結構的調整和指令的自定義開發。
本文引用地址:http://www.104case.com/article/95269.htm(2) 運行代碼并進行特性分析(Profile),表1和表2是最基本的指令和時鐘周期信息,此外還可以得到pipeline甘特圖、Branch cycle和Interlock cycle對比圖等信息。這些信息為后續的體系結構調整和指令優化提供了必要的數據依據。
(3) 調整處理器配置信息中的眾多項目,如MUL16 / MUL32 / MAC、Zero-overhead loop instructions、Pipeline length、Number of coprocessors、Floating point coprocessor、Special register、Cache size等,設計者可以得到圖3所示的速度、面積、功耗信息。然后回到(2)再次運行代碼及特性分析,考察體系結構改動帶來的影響。
(4)利用XPRES工具,設置FLIX的Issue Width、SIMD的Vector Length、Register的Depth / Width / Ports、Fusion的Area / Latency / Operands等,XPRES會自動生成若干種不同的自定義指令TIE供設計者選擇使用。設計者參考每一個TIE的Cycles和Gates數折衷考慮,當然設計者還可以手動增加TIE指令。然后將TIE綁定到調整后的體系結構(配置信息)上,回到(2)運行代碼及特性分析,考察TIE帶來的性能提高效果。
評論