多核處理器是最近快速發展的電子器件,單個芯片內集成了多個同構或者異構的處理器,使得其計算處理能力得到較大幅度的提高。DSP處理器由于其具有較高的數字處理能力,得到較廣泛的應用。多核DSP芯片以目前性能較高的TMS320C66系列為例,其中TMS320C6678(以下簡稱C6678)含有8個處理器。這些處理器可以獨立工作,也可以并行聯合工作。當它們聯合工作時,相互之間通信和握手就非常重要,尤其是在對時間要求較高的場合,時鐘的穩定和同步就非常關鍵。時鐘的穩定和同步對系統設計、時鐘源、時鐘分配、電路布線、時鐘線屏蔽等都提出較高的要求。 本文利用CDCM6208時鐘分配芯片,以此輸出多路時鐘,提供到8核DSP芯片C6678,提供出DSP核工作時鐘、DDR3數據讀寫時鐘、RapidIO和PCIe數據傳輸時鐘、千兆網絡加速器等時鐘信號。文中介紹了詳細的電路設計、時鐘芯片配置以及多核DSP的配置,相關片內設備的初始化等。 1 C6678及其結構 C6678是TI公司多核處理器中的一款8核浮點型DSP,最高工作頻率達到1.25 GHz,單核可以提供40GMAC定點計算或者20G FLOP浮點計算能力,單個芯片可以提供320G MAC或者160G FLOP計算能力。C6678的片內結構如圖1所示。 ![]() 圖1 C6678內部結構圖 C6678的每個核具有32 KB的程序、32 KB的數據以及512 KB的2級Cache存儲空間,芯片片內具有一個4MB的共享SRAM。C6678具有DDR3控制器接口,可以外接DDR3,直接尋址范圍達到8 GB。C6678的片內外設有RapidIO、PCIe、EMIF以及SPI、I2C總線等接口。這些接口通過片內的高速互聯總線和各個處理器交互數據。 和網絡相關的片內設備如圖1右下角灰色模塊所示,主要包括兩個對外的SGMII接口、以太交換和網絡交換模塊,以及用于數據管理的安全加速器和包加速器,是為了快速檢測數據的校驗以及協議是否遵循網絡標準,對于錯誤的數據直接丟棄.降低CPU的負擔。為了加快網絡和CPU的數據交換,片內的隊列管理器用于管理網絡包或者網絡幀的緩存,分發等功能。這些數據都采用數據包DMA讀/寫,不需要CPU參與。 C6678的其他片內設備包括PLL、仿真口、信號量、電源管理和復位管理等模塊。其中PLL配置CPU和外設的工作時鐘;仿真口用于連接仿真器,實現對軟件運行的監控;信號量實現對DSP/BIOS操作系統中信號量的控制;電源管理實現整個芯片電流電壓的控制;復位管理配 置啟動的方式,硬復位進行全啟動,軟復位進行部分啟動。 2 CDCM6208及其結構 CDCM62xx系列芯片是TI公司針對多核處理器專門開發的時鐘產生、驅動和分配芯片。CDCM6208是該系列的第二代產品,相比于第一代CDCM6208的最大優點就是功耗大幅度降低,從第一代的2~3 W降低到0.5 W左右。而其功能、指標和體積沒有弱化。CDCM6208有兩路可選時鐘輸入,8路時鐘輸出。8路輸出中的4路只能做整數倍分頻,另外4路可以做小數倍分頻,滿足多核芯片的各種不同的時鐘需求。8路時鐘支持LVPECL、CML、HCSL以及LVDS信號電平,最大支持800 MHz的時鐘頻率,滿足RapidIO和PCIe這些高速接口需求。時鐘抖動小于265 fs。其控制可以通過標準的SPI或者I2S接口實現,非常方便靈活。TI公司提供針對該芯片專門開發的圖形化控制軟件,用戶選擇所要設置的時鐘工作方式、輸出頻率等參數,該軟件生成其內部寄存器的值,通過SPI或I2S接口寫入就完成整個芯片的配置。 CDCM6208的內部結構如圖2所示。從圖中可以看出,可選兩路時鐘輸入后,首先經過一個14倍頻器,作為參考時鐘驅動片內VCO產生時鐘信號。為了提高時鐘相位噪聲,倍頻后信號經過一個片內的濾波器,該濾波器可以由片內提供阻容電路設置。VCO時鐘功分到兩路預分頻器,預分頻器只能4、5或者6分頻。預分頻后時鐘再次進入后期的分頻器。每個預分頻器功分到兩個小數分頻器和一個整數分頻器。分頻后信號驅動后輸出。從圖2右邊輸出可以看出,整數分頻器輸出的Y0和Y1兩路時鐘頻率一樣,Y2和Y3時鐘頻率一樣。小數分頻的Y4~Y7可以各自設置CDCM6208的這種時鐘配置限制了其應用,但好處是降低了功耗,目前這種配置滿足絕大部分多核處理器的要求,尤其是TI公司的C66系列以及AK2系列多核DSP可以實現無縫連接。 ![]() 圖2 CDCM6208的內部結構圖 3 硬件設計 根據TMS320C6678的應用,所需要的時鐘如圖3所示。 其主要時鐘包括:①內核運行時鐘,該時鐘輸入是100 MHz,DSP片內PLL將其鎖定到工作頻率,最高為1GHz,最低為700 MHz。②RapioIO接口和HyperLink超級連接接口工作時鐘,這兩路時鐘輸入都為312.5MHz,RapioIO倍頻4、8、10、16,工作在1.25 GHz、2.5GHz、3.125 GHz和5 GHz。HyperLink倍頻到40、80、100、160,工作在12.5 GHz、25 GHz、31.25 GHz和50 GHz。 ③PCIe接口時鐘和PA_SS網絡加速器時鐘,這兩路時鐘都是輸入100MHz,內部倍頻后相應的工作時鐘,滿足各自接口傳輸時鐘要求。④DDR3時鐘,該時鐘輸入為66.667 MHz,倍頻20或者25倍,工作在1333.33 MHz或者1666.7 MHz。這些時鐘在DSP片內都各有獨立的PLL電路設置,其工作原理和設置方法基本一致。圖3中的單獨25 MHz是專門為千兆網提供的工作時鐘,由一個單獨的晶體提供。C6678還提供一路時鐘輸出信號,默認輸出為核時鐘的1/6,圖中為16.667 MHz,輸出時鐘可以檢測C6678是否正常工作。 ![]() 圖3 C6678的時鐘信號 ![]() 圖4 C6747和CDCM6208的接口 由于C6678的核時鐘由CDCM6208提供,所以對CDCM6208的設置只能由另外一個處理器完成,只要該處理器具有SPI或者I2S接口即可。本文使用低功耗的DSP芯片C6747來實現多CDCM6208的設置。C6747和CDCM6208的接口如圖4所示,采用標準4線制SPI接口控制,為了避免干擾提高傳輸可靠性,在SPI的片選信號的寫信號分別上拉和下拉,這樣在空閑下其引腳狀態不會被干擾。在控制CDCM6208之前,需要對其進行復位,圖中使用一個通用GPIO引腳控制,當CDCM6208配置成功后,會提供一個狀態檢測信號,該信號連接到C6747的GPIO引腳,用來判斷是否正確配置。圖中C6747還使用一個引腳控制CDCM6208的低功耗設置,當該引腳為高時,CDCM6208進入低功耗模式。 4 軟件設計 由于系統采用C6747控制CDCM6208時鐘信號,所以C6747的軟件是系統整個初始化的關鍵,C6747的初始化軟件主要包括對CDCM6208的復位、配置和檢測以及對C6678的復位、C6678外掛Flash的復位等工作。整個系統的軟件流程如圖5所示。 ![]() 圖5 軟件流程 上電啟動后,C6747軟件加載成功后,復位CDCM6208,為確保復位成功,C6747要等待10 ms才能通過SPI接口配置CDCM6208。配置完成后,C6747可以查詢CDCM6208的狀態輸出引腳,檢測是否配置成功。如果配置失敗,重復復位、配置、檢測這幾個步驟。配置成功后,表明CDCM6208已經輸出準備時鐘到C6678,但在此之前,C6678仍然處于復位狀態。由于C6678的程序保存在片外Flash中。所以,C6747要首先復位Flash,等待其復位后,再復位C6678,查詢C6678的輸出狀態,確定C6678是否正常下作。如果輸出不正常,仍然重復復位Flash、復位C6678和檢測這幾個步驟,直到初始化成功。 結語 多核處理器由于其接口豐富,運行頻率較高,對時鐘設計要求較高,一般要求一個高精度的時鐘通過分頻/倍頻方式產生多路時鐘到相應的接口。本文以多核數字信號處理器C6678為應用對象,通過CDCM6208產生多路時鐘,提供到多核DSP的核時鐘、DDR3、RapidIO等時鐘信號。通過單核低功耗小成本處理器C6747實現對整個時鐘電路的復位、設置和檢測。本文介紹的時鐘配置方法具有通用性,對同類產品的時鐘設計方案具有一定的參考價值。 |