基于Xtensa的ASIP開發流程研究
現在設計可編程處理器,很少是全新定制指令,普遍采用的方式是在已有的某RISC指令集基礎上進行部分定制(或說擴展/自定義/優化指令)。理論上,為了研發一款ASIP式處理器,需要在已有GPP、ASIP、ASIC的基礎上調整數據通路(Datapath),即增加功能單元,如圖1所示的5級Pipeline處理器中添加自定義功能單元(Custom Unit),同時需要專用指令將操作數調入此自定義單元進行數據處理。為了實現指令擴展,首先需要分析應用目標數據處理算法的特性,從中找出那些經常出現且可以綁定的基本操作包;然后從眾多實現方式(或大設計空間)如:(1)FLIX(VLIW或Multi-slot);(2)Vector(SIMD);(3)FUSED(Add-with-Shift-by-1)中選擇最合適的途徑[9-10]。因為設計者很難一次性找到最優途徑,常常需要不同方式之間進行比較,因此一般需要某些EDA工具幫助快速實現指令自定義以及分析當前自定義指令對ASIP性能的影響。圖2采用Top-down方式示意出ASIP設計的理論步驟。
本文引用地址:http://www.104case.com/article/95269.htmXtensa開發工具集
目前,可用于ASIP體系結構及指令系統開發的EDA工具,包括Tensilica的Xtensa開發工具集(Xplorer、XCC、XPRES、XTMS、XEnergy),CoWare的Processor Design,University of Campinas的ArchC等。但Tensilica 的Xtensa開發工具集因功能強大而得到廣泛應用。
Tensilica針對SoC應用而設計的Xtensa系列可配置處理器及其開發工具,提供了一種自動化程度非常高的開發流程,該流程包括仿真C/SystemC級算法、調整處理器體系結構、向基本處理器添加專用指令、自動生成硬件RTL代碼和與之相匹配的軟件工具鏈(如編譯器等),通過可配置處理器技術和TIE(Tensilica Instruction Extension)指令擴展技術替代了RTL開發。和ASIP相關的具體功能如下。
評論