TI DSP TMS320C66x (1)硬件介紹

目錄

  • 概述
  • C66x處理器內核
  • C66x流水線結構

 

概述

C66X DSP是最新一代定點和浮點DSP,由4個乘法器組成,以實施單精度浮點運算。C66X DSP內核可同時運行多大8項浮點乘法運算,加之高達1.4GHz的時鐘頻率,使其具有很高的浮點處理性能。將多個C66x DSP內核與其他內核融合,即可創建出具有初中性能的多核片上系統器件。本文以TMS320C6678爲例,介紹C66x內核。

TMS320C6678具有8個C66x內核,內核工作主頻最高可達1.4GHz,理論上具有179.2(22.4x8)GFLOP和358.4(44.8x8)GMAC的處理性能。每個處理器內部有多級存儲器:C66x內核中有L1P、L1D、L2SRAM;多核共享存儲器爲MSM SRAM。處理器具有多核導航器、網絡協處理器、數據包加速器、信號量、PLL等多核共享的一些外部資源,同時提供如SRIO、PCIE、EMIF等多種外部接口。C6678的處理器架構如下圖所示:
在這裏插入圖片描述

C66x處理器內核

C66x內核是C6678處理器的核心,用於完成高性能處理任務。

C66x內核由以下組件組成:C66xDSP、一級程序存儲器控制器(L1P)、一級數據存儲器控制器(L1D)、二級存儲器控制(L2)、外部存儲器控制器(EMC)、擴展存儲器控制器(XMC)、帶寬管理(BWM)、中斷控制器和休眠控制器(PDC)組成。內核結構如下:
在這裏插入圖片描述
C66xDSP由8個功能單元,2個寄存器組和2條數據通路組成,結構如下圖所示。兩個寄存器組共有64個寄存器,分爲A和B兩組,每組由32個32-bit寄存器組成。通用寄存器可以用來存放數據,也可以當作地址指針。所支持的類型有8-bit打包數據,16-bit打包數據,32-bit數據,40-bit數據和64-bit數據,乘法支持128-bit數據。

8個功能存儲單元(.L1 .S1 .M1 .D1 .L2 .S2 .D2 .S2),每個功能單元的每個時鐘週期都能夠執行一條指令。.S單元執行通常的移位、分支及比較程序,.L單元執行通常的算數及邏輯程序;所有乘法指令都在.M單元執行(一個.M單元包含16組16x16bit乘法器,1個週期內可執行一次單精度浮點乘法運算,4個週期可執行一次雙精度浮點乘法運算)。.D單元主要完成從存儲器加載(load)數據到寄存器堆(register file),並從寄存器堆保存(store)結果到存儲器。
在這裏插入圖片描述
在這裏插入圖片描述

C66x流水線結構

計算機流水線(Pipeline)是Intel首次在486芯片中開始使用的。在CPU中把指令的執行分成若干個不同的功能單元來實現,由若干個不同功能的電路單元組成一條指令處理流水線,然後將一條X86指令分成若干步後再由這些電路單元分別執行,這樣就能實現在一個CPU時鐘週期完成一條指令,因此提高CPU的運算速度。

C66x DSP的流水結構共分三個階段:指令預取(Fetch)、指令解碼(Decode)、指令執行(Execute)。各階段的詳細流水線結構如下:
在這裏插入圖片描述

階段 流水名稱 含義
Fetch PG Program address generate:產生程序地址
PS Program address send:發送程序地址
PW Program (memory) access ready wait:等待程序內存響應
PR Program fetch packet receive:接收從內存傳回的指令包
Decode DP Instruction dispatch:將指令分配到相應的功能單元
DC Instruction decode:將指令在相應的功能單元進行譯碼
Execute E1 執行指令,不同指令擁有不同的執行流水操作
...
E5
  • Fetch階段的流水操作圖示:
    在這裏插入圖片描述
  • Decode 階段的流水操作圖示:
    在這裏插入圖片描述
  • Execute 階段的流水操作圖示:
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章