汪安民,韓道文
(1. 同方電子科技有限公司研究所,九江 332009;2. 解放軍電子工程學(xué)院)
?
多核DSP的多路同步時(shí)鐘信號(hào)設(shè)計(jì)
汪安民1,韓道文2
(1. 同方電子科技有限公司研究所,九江 332009;2. 解放軍電子工程學(xué)院)
多核數(shù)字信號(hào)處理器(DSP)具有豐富的外設(shè)接口,每個(gè)外設(shè)接口具有各自獨(dú)立的參考時(shí)鐘。由于多核DSP具有較快的數(shù)據(jù)處理能力,對(duì)外設(shè)接口的時(shí)鐘要求較高。當(dāng)多個(gè)接口協(xié)同工作時(shí),對(duì)時(shí)鐘的同步要求較高。本文介紹了多核數(shù)字信號(hào)處理器TMS320C6678的時(shí)鐘設(shè)計(jì),通過時(shí)鐘芯片CDCM6208提供多路不同工作頻率的時(shí)鐘信號(hào)到DSP,文中介紹了時(shí)鐘芯片的初始化和設(shè)置以及詳細(xì)的軟硬件設(shè)計(jì)方法。
多核DSP;時(shí)鐘;CDCM6208
多核處理器是最近快速發(fā)展的電子器件,單個(gè)芯片內(nèi)集成了多個(gè)同構(gòu)或者異構(gòu)的處理器,使得其計(jì)算處理能力得到較大幅度的提高。DSP處理器由于其具有較高的數(shù)字處理能力,得到較廣泛的應(yīng)用。多核DSP芯片以目前性能較高的TMS320C66系列為例,其中TMS320C6678(以下簡稱C6678)含有8個(gè)處理器。這些處理器可以獨(dú)立工作,也可以并行聯(lián)合工作。當(dāng)它們聯(lián)合工作時(shí),相互之間通信和握手就非常重要,尤其是在對(duì)時(shí)間要求較高的場合,時(shí)鐘的穩(wěn)定和同步就非常關(guān)鍵。時(shí)鐘的穩(wěn)定和同步對(duì)系統(tǒng)設(shè)計(jì)、時(shí)鐘源、時(shí)鐘分配、電路布線、時(shí)鐘線屏蔽等都提出較高的要求。
本文利用CDCM6208時(shí)鐘分配芯片,以此輸出多路時(shí)鐘,提供到8核DSP芯片C6678,提供出DSP核工作時(shí)鐘、DDR3數(shù)據(jù)讀寫時(shí)鐘、RapidIO和PCIe數(shù)據(jù)傳輸時(shí)鐘、千兆網(wǎng)絡(luò)加速器等時(shí)鐘信號(hào)。文中介紹了詳細(xì)的電路設(shè)計(jì)、時(shí)鐘芯片配置以及多核DSP的配置,相關(guān)片內(nèi)設(shè)備的初始化等。
C6678是TI公司多核處理器中的一款8核浮點(diǎn)型DSP,最高工作頻率達(dá)到1.25 GHz,單核可以提供40 GMAC定點(diǎn)計(jì)算或者20G FLOP浮點(diǎn)計(jì)算能力,單個(gè)芯片可以提供320G MAC或者160G FLOP計(jì)算能力。C6678的片內(nèi)結(jié)構(gòu)如圖1所示。
圖1 C6678內(nèi)部結(jié)構(gòu)圖
C6678的每個(gè)核具有32 KB的程序、32 KB的數(shù)據(jù)以及512 KB的2級(jí)Cache存儲(chǔ)空間,芯片片內(nèi)具有一個(gè)4 MB的共享SRAM。C6678具有DDR3控制器接口,可以外接DDR3,直接尋址范圍達(dá)到8 GB。C6678的片內(nèi)外設(shè)有RapidIO、PCIe、EMIF以及SPI、I2C總線等接口。這些接口通過片內(nèi)的高速互聯(lián)總線和各個(gè)處理器交互數(shù)據(jù)。
和網(wǎng)絡(luò)相關(guān)的片內(nèi)設(shè)備如圖1右下角灰色模塊所示,主要包括兩個(gè)對(duì)外的SGMII接口、以太交換和網(wǎng)絡(luò)交換模塊,以及用于數(shù)據(jù)管理的安全加速器和包加速器,是為了快速檢測數(shù)據(jù)的校驗(yàn)以及協(xié)議是否遵循網(wǎng)絡(luò)標(biāo)準(zhǔn),對(duì)于錯(cuò)誤的數(shù)據(jù)直接丟棄,降低CPU的負(fù)擔(dān)。為了加快網(wǎng)絡(luò)和CPU的數(shù)據(jù)交換,片內(nèi)的隊(duì)列管理器用于管理網(wǎng)絡(luò)包或者網(wǎng)絡(luò)幀的緩存,分發(fā)等功能。這些數(shù)據(jù)都采用數(shù)據(jù)包DMA讀/寫,不需要CPU參與。
C6678的其他片內(nèi)設(shè)備包括PLL、仿真口、信號(hào)量、電源管理和復(fù)位管理等模塊。其中PLL配置CPU和外設(shè)的工作時(shí)鐘;仿真口用于連接仿真器,實(shí)現(xiàn)對(duì)軟件運(yùn)行的監(jiān)控;信號(hào)量實(shí)現(xiàn)對(duì)DSP/BIOS操作系統(tǒng)中信號(hào)量的控制;電源管理實(shí)現(xiàn)整個(gè)芯片電流電壓的控制;復(fù)位管理配置啟動(dòng)的方式,硬復(fù)位進(jìn)行全啟動(dòng),軟復(fù)位進(jìn)行部分啟動(dòng)。
CDCM62xx系列芯片是TI公司針對(duì)多核處理器專門開發(fā)的時(shí)鐘產(chǎn)生、驅(qū)動(dòng)和分配芯片。CDCM6208是該系列的第二代產(chǎn)品,相比于第一代CDCM6208的最大優(yōu)點(diǎn)就是功耗大幅度降低,從第一代的2~3 W降低到0.5 W左右。而其功能、指標(biāo)和體積沒有弱化。CDCM6208有兩路可選時(shí)鐘輸入,8路時(shí)鐘輸出。8路輸出中的4路只能做整數(shù)倍分頻,另外4路可以做小數(shù)倍分頻,滿足多核芯片的各種不同的時(shí)鐘需求。8路時(shí)鐘支持LVPECL、CML、HCSL以及LVDS信號(hào)電平,最大支持800 MHz的時(shí)鐘頻率,滿足RapidIO和PCIe這些高速接口需求。時(shí)鐘抖動(dòng)小于265 fs。其控制可以通過標(biāo)準(zhǔn)的SPI或者I2S接口實(shí)現(xiàn),非常方便靈活。TI公司提供針對(duì)該芯片專門開發(fā)的圖形化控制軟件,用戶選擇所要設(shè)置的時(shí)鐘工作方式、輸出頻率等參數(shù),該軟件生成其內(nèi)部寄存器的值,通過SPI或I2S接口寫入就完成整個(gè)芯片的配置。
CDCM6208的內(nèi)部結(jié)構(gòu)如圖2所示。從圖中可以看出,可選兩路時(shí)鐘輸入后,首先經(jīng)過一個(gè)14倍頻器,作為參考時(shí)鐘驅(qū)動(dòng)片內(nèi)VCO產(chǎn)生時(shí)鐘信號(hào)。為了提高時(shí)鐘相位噪聲,倍頻后信號(hào)經(jīng)過一個(gè)片內(nèi)的濾波器,該濾波器可以由片內(nèi)提供阻容電路設(shè)置。VCO時(shí)鐘功分到兩路預(yù)分頻器,預(yù)分頻器只能4、5或者6分頻。預(yù)分頻后時(shí)鐘再次進(jìn)入后期的分頻器。每個(gè)預(yù)分頻器功分到兩個(gè)小數(shù)分頻器和一個(gè)整數(shù)分頻器。分頻后信號(hào)驅(qū)動(dòng)后輸出。從圖2右邊輸出可以看出,整數(shù)分頻器輸出的Y0和Y1兩路時(shí)鐘頻率一樣,Y2和Y3時(shí)鐘頻率一樣。小數(shù)分頻的Y4~Y7可以各自設(shè)置。CDCM6208的這種時(shí)鐘配置限制了其應(yīng)用,但好處是降低了功耗,目前這種配置滿足絕大部分多核處理器的要求,尤其是TI公司的C66系列以及AK2系列多核DSP可以實(shí)現(xiàn)無縫連接。
圖2 CDCM6208內(nèi)部結(jié)構(gòu)圖
根據(jù)TMS320C6678的應(yīng)用,所需要的時(shí)鐘如圖3所示。
圖3 C6678的時(shí)鐘信號(hào)
其主要時(shí)鐘包括:①內(nèi)核運(yùn)行時(shí)鐘,該時(shí)鐘輸入是100 MHz,DSP片內(nèi)PLL將其鎖定到工作頻率,最高為1 GHz,最低為700 MHz。②RapioIO接口和HyperLink超級(jí)連接接口工作時(shí)鐘,這兩路時(shí)鐘輸入都為312.5 MHz,RapioIO倍頻4、8、10、16,工作在1.25 GHz、2.5 GHz、3.125 GHz和5 GHz。HyperLink倍頻到40、80、100、160,工作在12.5 GHz、25 GHz、31.25 GHz和50 GHz。③PCIe接口時(shí)鐘和PA_SS網(wǎng)絡(luò)加速器時(shí)鐘,這兩路時(shí)鐘都是輸入100 MHz,內(nèi)部倍頻后相應(yīng)的工作時(shí)鐘,滿足各自接口傳輸時(shí)鐘要求。④DDR3時(shí)鐘,該時(shí)鐘輸入為66.667 MHz,倍頻20或者25倍,工作在1333.33 MHz或者1666.7 MHz。這些時(shí)鐘在DSP片內(nèi)都各有獨(dú)立的PLL電路設(shè)置,其工作原理和設(shè)置方法基本一致。圖3中的單獨(dú)25 MHz是專門為千兆網(wǎng)提供的工作時(shí)鐘,由一個(gè)單獨(dú)的晶體提供。C6678還提供一路時(shí)鐘輸出信號(hào),默認(rèn)輸出為核時(shí)鐘的1/6,圖中為16.667 MHz,輸出時(shí)鐘可以檢測C6678是否正常工作。
由于C6678的核時(shí)鐘由CDCM6208提供,所以對(duì)CDCM6208的設(shè)置只能由另外一個(gè)處理器完成,只要該處理器具有SPI或者I2S接口即可。本文使用低功耗的DSP芯片C6747來實(shí)現(xiàn)多CDCM6208的設(shè)置。C6747和CDCM6208的接口如圖4所示,采用標(biāo)準(zhǔn)4線制SPI接口控制,為了避免干擾提高傳輸可靠性,在SPI的片選信號(hào)的寫信號(hào)分別上拉和下拉,這樣在空閑下其引腳狀態(tài)不會(huì)被干擾。在控制CDCM6208之前,需要對(duì)其進(jìn)行復(fù)位,圖中使用一個(gè)通用GPIO引腳控制,當(dāng)CDCM6208配置成功后,會(huì)提供一個(gè)狀態(tài)檢測信號(hào),該信號(hào)連接到C6747的GPIO引腳,用來判斷是否正確配置。圖中C6747還使用一個(gè)引腳控制CDCM6208的低功耗設(shè)置,當(dāng)該引腳為高時(shí),CDCM6208進(jìn)入低功耗模式。
圖4 C6747和CDCM6208的接口
由于系統(tǒng)采用C6747控制CDCM6208時(shí)鐘信號(hào),所以C6747的軟件是系統(tǒng)整個(gè)初始化的關(guān)鍵,C6747的初始化軟件主要包括對(duì)CDCM6208的復(fù)位、配置和檢測以及對(duì)C6678的復(fù)位、C6678外掛Flash的復(fù)位等工作。整個(gè)系統(tǒng)的軟件流程如圖5所示。
圖5 軟件流程
上電啟動(dòng)后,C6747軟件加載成功后,復(fù)位CDCM6208,為確保復(fù)位成功,C6747要等待10 ms才能通過SPI接口配置CDCM6208。配置完成后,C6747可以查詢CDCM6208的狀態(tài)輸出引腳,檢測是否配置成功。如果配置失敗,重復(fù)復(fù)位、配置、檢測這幾個(gè)步驟。配置成功后,表明CDCM6208已經(jīng)輸出準(zhǔn)備時(shí)鐘到C6678,但在此之前,C6678仍然處于復(fù)位狀態(tài)。由于C6678的程序保存在片外Flash中。所以,C6747要首先復(fù)位Flash,等待其復(fù)位后,再復(fù)位C6678,查詢C6678的輸出狀態(tài),確定C6678是否正常工作。如果輸出不正常,仍然重復(fù)復(fù)位Flash、復(fù)位C6678和檢測這幾個(gè)步驟,直到初始化成功。
[1] 丁有源,汪安民.基于多核任務(wù)并行處理的DSP軟硬件設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(5).
[2] Texas Instruments Inc. Clocking Design Guide for KeyStone Devices,2012.
[3] Texas Instruments Inc. 2:8 Clock Generator, Jitter Cleaner With Fractional Dividers (Rev. D) CDCD6208 Datasheet,2012.
Synchronous Multi-clocks Based on Multicore DSP
Wang Anmin1, Han Daowen2
(1. Research of Tongfang Science and Technology Ltd., Jiujiang 332009, China ;2. Electronic Engineering Institute of PLA)
These are many interfaces on multicore DSP, and each clock should be set independently. Higher frequency and steadiness is required for these clocks to fit the multicore DSP. These clocks are originated from one high precision reference clock. TMS320C6678 clock design is introduced, getting diversified clock based on CDCM6208. The paper introduces how to set CDCM6208, and the design of hardware and software is described.
multicore DSP;clock;CDCM6208
TP336
A
珍
2013-11-22)