KeyStone多核SoC工具套件: 單個(gè)平臺(tái)滿(mǎn)足所有需求
過(guò)去,實(shí)施和部署多核片上系統(tǒng) (SoC) 器件的一大挑戰(zhàn)一直都是為編程和調(diào)試這些平臺(tái)提供適當(dāng)?shù)墓ぞ?。開(kāi)發(fā)人員要充分發(fā)揮多核性能優(yōu)勢(shì),就必須進(jìn)行高效率分區(qū),并在這些核上運(yùn)行高質(zhì)量軟件。復(fù)雜多核系統(tǒng)的調(diào)試會(huì)面臨同步處理模式以及子系統(tǒng)接口訪問(wèn)受限所帶來(lái)的其它復(fù)雜性。開(kāi)發(fā)和調(diào)試多核 SoC 所花費(fèi)的時(shí)間以及實(shí)現(xiàn)理想 SoC 性能的能力可用來(lái)衡量工具套件的優(yōu)勢(shì)。TI 支持 KeyStone 擴(kuò)展的 Code Composer StudioTM (CCStudio) 集成型開(kāi)發(fā)環(huán)境包含業(yè)界最佳的多核數(shù)據(jù)可視化技術(shù),支持調(diào)試、驗(yàn)證以及跟蹤功能。TI 近期推出了全新 KeyStone 多核 SoC,其具有 ARM® RISC 處理器和 TMS320C66x DSP 核組成的異構(gòu)組合。支持 KeyStone 擴(kuò)展的 CCStudio 工具套件與KeyStone 器件及軟件共同開(kāi)發(fā),為 SoC 提供了一個(gè)統(tǒng)一系統(tǒng)級(jí)視圖,從而可直觀查看ARM 及 DSP 核、加速器以及外設(shè)。
介紹隨著處理器功能的增強(qiáng),其復(fù)雜程度也在加大。這就使開(kāi)發(fā)人員對(duì)軟件進(jìn)行調(diào)試、故障排除和維護(hù)的能力面臨更大的挑戰(zhàn)。隨著多核處理器的推出,實(shí)施和分析工作的嚴(yán)格程度也在呈指數(shù)級(jí)上升。試想下列情形:一群才華橫溢的工程師在考慮有朝一日能使用這種振奮人心的新 SoC 開(kāi)發(fā)全新的無(wú)線(xiàn)基站。這種新器件將幫助這些工程師所在的公司迅速高效地向市場(chǎng)推出極具競(jìng)爭(zhēng)力的新產(chǎn)品。雖然選用的 SoC 是具有 RISC 和 DSP 核組合的異構(gòu)多核器件,但工程設(shè)計(jì)團(tuán)隊(duì)還是按職能組建,分成了獨(dú)立的 ARM 和 DSP 開(kāi)發(fā)團(tuán)隊(duì)。他們清楚他們必須合作,共同在統(tǒng)一平臺(tái)上解決整合系統(tǒng)軟件的難題。問(wèn)題是,有沒(méi)有工具能夠應(yīng)付該 SoC 的復(fù)雜性?工程設(shè)計(jì)團(tuán)隊(duì)的經(jīng)理有類(lèi)似的保留意見(jiàn)。雖然全新 SoC 有望實(shí)現(xiàn)性能的飛躍,實(shí)現(xiàn)顯著降低的功耗以及比現(xiàn)有解決方案還低的成本,但工程團(tuán)隊(duì)管理人員清楚,采用其它 SoC 曾因集成、調(diào)試和系統(tǒng)測(cè)試流程中無(wú)限期的延遲和不能確定的進(jìn)度,致使欠佳的調(diào)試及分析工具屢遭指責(zé)。該 SoC 平臺(tái)的一個(gè)潛在優(yōu)勢(shì)是,軟件可跨多種產(chǎn)品重復(fù)使用,但團(tuán)隊(duì)管理人員擔(dān)心支持該 SoC 的工具是否真的可以及時(shí)用于重復(fù)使用和再測(cè)試。最后,該產(chǎn)品線(xiàn)的業(yè)務(wù)管理人員也持謹(jǐn)慎態(tài)度。憑借部署日趨復(fù)雜產(chǎn)品的豐富經(jīng)驗(yàn),她清楚地認(rèn)識(shí)到盡管最新一代 SoC 具有極好的新特性與新優(yōu)勢(shì),但能否對(duì)其充分利用,及能否對(duì)開(kāi)發(fā)團(tuán)隊(duì)可迅速成功實(shí)施的特性進(jìn)行確定,這要取決于業(yè)務(wù)團(tuán)隊(duì)。在產(chǎn)品部署的業(yè)務(wù)方面,上市時(shí)間是個(gè)關(guān)鍵因素,產(chǎn)品調(diào)試、集成、測(cè)試以及試用中出現(xiàn)任何波折,都會(huì)給收入及利潤(rùn)帶來(lái)負(fù)面影響。那么,工程師究竟在探尋多核 SoC 器件開(kāi)發(fā)工具的哪些特定功能呢?
首先,開(kāi)發(fā)人員需要全局性的查看處理元素。他們不僅需要看到特定處理核上的事件,還需要同時(shí)看到所有核上的所有處理情況;其次,他們需要能夠看到處理元素之間的通信。要識(shí)別難以排除的故障,比如導(dǎo)致過(guò)長(zhǎng)延遲的根源,在每個(gè)處理元素執(zhí)行時(shí)必須要能看見(jiàn)所有的互動(dòng)狀況;多核工具必備的一項(xiàng)重要功能就是,能夠測(cè)量 SoC 每個(gè)元件的利用情況,以確定處理核是否得到適當(dāng)?shù)睦?。開(kāi)發(fā)人員需要確定分配給某個(gè)處理元素的任務(wù)是否已接近過(guò)載水平,如果是,如何重新均衡 SoC;最后,還需要具備識(shí)別不暢流程并判斷處理死鎖和系統(tǒng)低效的能力。在多核 SoC 上開(kāi)發(fā)軟件解決方案的工程設(shè)計(jì)團(tuán)隊(duì)必須確保整個(gè)系統(tǒng)能夠?qū)崟r(shí)運(yùn)行,系統(tǒng)的設(shè)計(jì)和分區(qū)可優(yōu)化硅芯片架構(gòu)。要保證這一點(diǎn),軟件開(kāi)發(fā)人員必須下大力度實(shí)時(shí)了解運(yùn)行中的解決方案。其結(jié)論就是隨時(shí)可用于現(xiàn)場(chǎng)測(cè)試和最終部署的高集成產(chǎn)品。圖 1 的示例就是這種調(diào)試模式下的 TI KeyStone 范例。為滿(mǎn)足這些需求,工具套件必須能解析 SoC 每個(gè)處理元素與接口的性能并提供報(bào)告。工具必須能夠顯示所有處理元件的同步及時(shí)序關(guān)系。只顯示每個(gè)獨(dú)立核或可編程實(shí)體是不夠的。采用德州儀器 (TI) KeyStone 多核 SoC 器件的產(chǎn)品開(kāi)發(fā)人員非常喜歡基于 TI CCStudio 工具套件的業(yè)界最佳多核開(kāi)發(fā)與調(diào)試工具。開(kāi)發(fā)人員可迅速高效地解決深度系統(tǒng)級(jí)問(wèn)題,確保最短的集成與測(cè)試周期。此外,當(dāng)通過(guò)遠(yuǎn)程跟蹤功能部署完產(chǎn)品后,他們還可充分利用這種詳細(xì)深入的觀察。這不但可對(duì)現(xiàn)場(chǎng)問(wèn)題做出快速響應(yīng),而且還可游刃有余地為最終客戶(hù)、服務(wù)提供商以及運(yùn)營(yíng)商提供支持。由于 TI 推出了首個(gè)異構(gòu)多核器件集,在現(xiàn)有的 DSP 多核組合中添加了 ARM® 處理器,因此它現(xiàn)在可通過(guò)支持 KeyStone 擴(kuò)展的 CCStudio 工具套件,將相同級(jí)別的覆蓋范圍及分析功能帶給 ARM 開(kāi)發(fā)人員。圖 1:從調(diào)試和跟蹤的角度看 KeyStone 異構(gòu)多核 SoC 架構(gòu)
啟動(dòng)調(diào)試流程分析儀套件是該工具鏈上的又一重要環(huán)節(jié),其包含核級(jí)跟蹤功能和系統(tǒng)級(jí)跟蹤功能以及可充分利用片上軟硬件事件嗅探器插裝的邏輯分析器功能。此外,該套件還包含支持軟件插裝的 KeyStone 擴(kuò)展 —— 多核系統(tǒng)分析器 (Multicore System Analyzer)。每款工具均支持特定使用案例,可充分利用多種彼此同步的技術(shù)實(shí)現(xiàn)更加完善的系統(tǒng)解決方案。綜上所述,該套件可為通用全局時(shí)限提供整個(gè)核與工具的數(shù)據(jù)關(guān)聯(lián),同時(shí)可在整個(gè)工具中支持視圖的同步滾動(dòng)。如圖 2 所示,CCStudio 不僅提供用于 DSP 和 ARM 的代碼開(kāi)發(fā)工具,而且還具有分析工具套件,有助于實(shí)現(xiàn)開(kāi)發(fā)階段的性能優(yōu)化。CCStudio 經(jīng)過(guò)擴(kuò)展,不但提供其長(zhǎng)期以來(lái)一直具備的 DSP 支持,而且還整合了 LinuxTM 支持。這樣 Linux ARM 開(kāi)發(fā)人員就可在 CCStudio 環(huán)境中使用熟悉的 Linux GDB 調(diào)試器進(jìn)行調(diào)試。CCStudio 能夠以中止模式同步調(diào)試運(yùn)行在 Linux OS 及其核上的 ARM 應(yīng)用,實(shí)現(xiàn)執(zhí)行流程的端對(duì)端跟蹤??赏ㄟ^(guò)調(diào)試器同時(shí)控制核的功能是一項(xiàng)非常實(shí)用的多核調(diào)試特性,支持同步程序狀態(tài)檢測(cè)。如果開(kāi)發(fā)人員為解決死鎖與競(jìng)爭(zhēng)狀態(tài),需要調(diào)試跨多個(gè)核運(yùn)行的一致性程序,該特性就非常有價(jià)值。同步“死鎖”運(yùn)行及步進(jìn)是對(duì)稱(chēng)多處理 (SMP) 環(huán)境中另一項(xiàng)重要調(diào)試功能,該環(huán)境需要以精細(xì)粒度形式理解互動(dòng)的直觀視圖。CCStudio 的多核觸發(fā)功能是另一項(xiàng)高價(jià)值特性,可用于查看處理器間的依賴(lài)性與性能。在 DSP和 ARM® 多核觸發(fā)環(huán)境中,處理器或處理器集經(jīng)配置后,可觸發(fā)或響應(yīng)外部處理器事件。例如,如果處理器 1 遭遇斷點(diǎn),就可向處理器 2 發(fā)出信號(hào),要求其暫停運(yùn)行或執(zhí)行其它調(diào)試工作。該技術(shù)有助于發(fā)現(xiàn)間歇干擾、崩潰、失控代碼以及偽中斷。圖 2:多核的性能加上單核的簡(jiǎn)易性,可通過(guò)統(tǒng)一集成型工具查看和調(diào)試 DSP 及 ARM 核核跟蹤跟蹤分析器 (Trace Analyzer) 運(yùn)行在核層面,可幫助開(kāi)發(fā)人員分析 CPU 程序與數(shù)據(jù)跟蹤并實(shí)現(xiàn)可視化。CCStudio 提供可在目標(biāo)點(diǎn)設(shè)置和觸發(fā)跟蹤采集的不同途徑。數(shù)據(jù)采集使用片上嵌入式跟蹤緩存器 (ETB) 或 XDS 跟蹤接收器硬件進(jìn)行,可在充分使用 KeyStone 架構(gòu)的硬件插裝和非侵入式分析功能的同時(shí)在跟蹤分析器中進(jìn)行后處理。這有助于軟件設(shè)計(jì)人員使用跟蹤數(shù)據(jù)深入了解同函數(shù)與異函數(shù) CPU 周期失速分析與高速緩存分析,優(yōu)化系統(tǒng)性能。CCStudio 可為 DSP 和 ARM 兩種核提供核跟蹤支持,并包含傳統(tǒng) ETM 跟蹤工具,可幫助 ARM LinuxTM 開(kāi)發(fā)人員在其喜好的調(diào)試環(huán)境中工作。跟蹤分析器可通過(guò)幾項(xiàng)重要特性實(shí)現(xiàn)高難度實(shí)時(shí)問(wèn)題調(diào)試。首先,它包含有功能調(diào)用圖,可幫助用戶(hù)查看達(dá)到評(píng)估狀態(tài)所采取的步驟。它還可提供針對(duì)詳細(xì) PC 跟蹤數(shù)據(jù)的日志視圖。DSP 與 ARM 核的源代碼關(guān)聯(lián)特性有助于確定每行代碼與當(dāng)前狀態(tài)執(zhí)行系統(tǒng)的關(guān)系。該分析器提供高級(jí)數(shù)據(jù)導(dǎo)航功能,包括查找、搜索與過(guò)濾控制、縮放與測(cè)量標(biāo)記以及同步視圖滾動(dòng)等。所有這一切都得到了 CCStudio 工具庫(kù)的支持。此外,跟蹤分析器的結(jié)果能夠以“csv”格式導(dǎo)出,可用于其它地方查看與分析。核跟蹤是最常用的技術(shù)之一,可提供程序執(zhí)行順序的指令級(jí)直觀視圖。核跟蹤無(wú)需代碼插裝,即可提供核級(jí)執(zhí)行直觀視圖,在 TI KeyStone 架構(gòu)中支持 DSP 和 ARM 核元素。系統(tǒng)跟蹤對(duì)于需要調(diào)試系統(tǒng)級(jí)問(wèn)題的情況而言,KeyStone 架構(gòu)提供了片上系統(tǒng)跟蹤模塊。該模塊提供硬件加速軟件插裝與硬件總線(xiàn)監(jiān)測(cè)功能,可通過(guò)跟蹤重要的事務(wù)處理點(diǎn),“看見(jiàn)”從每個(gè)主接口到所選從接口之間的事務(wù)處理。開(kāi)發(fā)人員可使用系統(tǒng)跟蹤功能監(jiān)控系統(tǒng)事務(wù)處理,進(jìn)行非侵入式數(shù)據(jù)采集,并使用 CCStudio 邏輯分析器完成后處理。對(duì)于系統(tǒng)級(jí)直觀視圖而言,該技術(shù)不但可通過(guò)插裝來(lái)自核的跟蹤提供重要功能,而且還可將其與處理器外部的硬件監(jiān)控事件相結(jié)合。邏輯分析工具可為系統(tǒng)跟蹤事件與消息提供圖形化事件時(shí)限視圖,用于顯示數(shù)據(jù)吞吐量與使用案例分析,如下頁(yè)圖 3 所示。它不但可采用層級(jí)結(jié)構(gòu)或平面結(jié)構(gòu)管理大量的事件來(lái)源,而且還可提供諸如縮放、測(cè)量標(biāo)記、書(shū)簽以及分選等高級(jí)功能。
圖 3:邏輯分析工具與系統(tǒng)跟蹤模塊的關(guān)聯(lián)LinuxTM 軟件開(kāi)發(fā)人員通過(guò)使用可加載 Linux 系統(tǒng)跟蹤模塊 (STM) 字符模式設(shè)備驅(qū)動(dòng)器,可迅速發(fā)揮系統(tǒng)跟蹤技術(shù)優(yōu)勢(shì)。無(wú)需任何應(yīng)用代碼更改,即可將調(diào)試數(shù)據(jù)與插裝日志路由至 STM 端口,其還兼具傳統(tǒng)“printf”調(diào)試功能的所有優(yōu)勢(shì)。例如,ARM® Linux 開(kāi)發(fā)人員可使用標(biāo)準(zhǔn) C 語(yǔ)言庫(kù)打印功能,無(wú)需修改任何代碼便可直接輸出至 STM 設(shè)備。這樣可將所有插裝發(fā)送輸出至系統(tǒng)跟蹤端口,其不但可自動(dòng)為消息打上時(shí)間戳,而且還能夠與來(lái)自其它應(yīng)用或任務(wù)的消息進(jìn)行關(guān)聯(lián)。多核系統(tǒng)分析工具在處理集成型應(yīng)用軟件時(shí),可使用軟件插裝以及 KeyStone 元素的完整視圖擴(kuò)展基于硬件插裝的核與系統(tǒng)跟蹤功能。KeyStone 多核系統(tǒng)分析工具 (MCSA) 建立在統(tǒng)一插裝架構(gòu) (UIA) 基礎(chǔ)之上,其可定義一整套 API、接口與規(guī)范來(lái)采用軟件插裝實(shí)時(shí)采集數(shù)據(jù)。這可使來(lái)自 SoC 各個(gè)部分的插裝組件協(xié)同工作。與核及系統(tǒng)跟蹤分析工具類(lèi)似,MCSA 支持現(xiàn)場(chǎng)數(shù)據(jù)分析以及采集和后處理模式,可幫助軟件開(kāi)發(fā)人員測(cè)試進(jìn)度與進(jìn)程??蓡⒂煤徒眠\(yùn)行時(shí)間日志。MCSA 可輕松實(shí)現(xiàn)分析可視化,提供諸如執(zhí)行圖、持續(xù)時(shí)間分析、環(huán)境識(shí)別配置文件、負(fù)載分析以及統(tǒng)計(jì)分析等功能。MCSA 的一項(xiàng)重要優(yōu)勢(shì)是:它可通過(guò)以太網(wǎng)或 JTAG 端口進(jìn)行本地系統(tǒng)分析。此外,它事實(shí)上還可通過(guò)以太網(wǎng)擴(kuò)展嵌入式跟蹤緩沖器。這可幫助遠(yuǎn)程軟件開(kāi)發(fā)人員或測(cè)試人員協(xié)助并參與應(yīng)用軟件集成和測(cè)試工藝。這些功能可促進(jìn)對(duì)已部署系統(tǒng)的遠(yuǎn)程訪問(wèn),大幅提升對(duì)現(xiàn)場(chǎng)報(bào)告缺陷及問(wèn)題的響應(yīng)能力。
軟件團(tuán)隊(duì)成員可采用這種 KeyStone SoC 級(jí)分析儀高效完成其設(shè)計(jì)的驗(yàn)證以及系統(tǒng)級(jí)應(yīng)用軟件的調(diào)試。支持核外硬件輔助監(jiān)控事件的系統(tǒng)級(jí)關(guān)聯(lián)“執(zhí)行流”對(duì)識(shí)別系統(tǒng)級(jí)互動(dòng)問(wèn)題非常有幫助。開(kāi)發(fā)人員可獲得嵌入在核中的器件級(jí)全局時(shí)間戳信息,而系統(tǒng)跟蹤信息則可建立通用全局時(shí)基,這可為定時(shí)關(guān)聯(lián)系統(tǒng)級(jí)事件和理解各種依賴(lài)性提供強(qiáng)大的方案?;ミB總線(xiàn)嗅探器可在系統(tǒng)監(jiān)控模式下設(shè)置陷阱捕獲硬件事件與事務(wù)處理信息,從而可為總線(xiàn)地址和數(shù)據(jù)監(jiān)控提供重要的直觀視圖。這種直觀圖可幫助團(tuán)隊(duì)分析 SoC 行為,診斷偽事務(wù)處理或事件。這些嗅探器采集的信息經(jīng)過(guò)進(jìn)一步處理,可與核跟蹤信息關(guān)聯(lián)起來(lái),通過(guò)統(tǒng)一的視角提供 DSP 與 ARM® 核總線(xiàn)級(jí)直觀視圖。此外,開(kāi)發(fā)人員還可充分利用總線(xiàn)傳輸分析工具和性能監(jiān)控器來(lái)提供整體總線(xiàn)與流量的直觀視圖,比如適用于通道、讀取、編寫(xiě)以及釋放量的 DMA 傳輸分析。另外還提供多個(gè)重要的性能優(yōu)化信息集,比如吞吐量、通道交錯(cuò)以及傳輸時(shí)長(zhǎng)等所提供的性能數(shù)據(jù)信息。性能監(jiān)控器可為復(fù)雜的 SoC 互連提供非侵入式直觀視圖,幫助理解可持續(xù)數(shù)據(jù)帶寬與時(shí)延特性。這對(duì)實(shí)現(xiàn)實(shí)時(shí)性能目標(biāo)具有非常重要的意義。CToolLib被稱(chēng)為 CTools 的使能器套件是 CCStudio 工具套件及其 KeyStone 擴(kuò)展背后的主要片上調(diào)試及跟蹤技術(shù)。他們可在多個(gè)層面上提供工具:SoC 系統(tǒng)級(jí)、子系統(tǒng)與核支持,包括 IEEE 1149.1 (JTAG)。有了 CTools,KeyStone 工具套件既支持傳統(tǒng)上基于 JTAG 外部仿真器的調(diào)試,也可提供無(wú)需外部調(diào)試器或跟蹤采集器的現(xiàn)場(chǎng)(無(wú) JTAG)調(diào)試及跟蹤功能。通過(guò)使用 CToolsLib 產(chǎn)品組合,軟件開(kāi)發(fā)人員可充分利用嵌入式目標(biāo) API 集合實(shí)現(xiàn)對(duì) CTools 調(diào)試及跟蹤功能的便捷訪問(wèn)。CToolsLib API 以源代碼形式提供,可簡(jiǎn)化工程師將其嵌入在自己的應(yīng)用中,從而可在需要現(xiàn)場(chǎng)調(diào)試的時(shí)候在調(diào)試過(guò)程中進(jìn)行現(xiàn)場(chǎng)訪問(wèn)。API 采用 C 語(yǔ)言編寫(xiě),包含 HTML 文檔與數(shù)據(jù)結(jié)構(gòu)。該庫(kù)套件包含的功能包括高級(jí)事件觸發(fā) (AET)、嵌入式跟蹤緩沖、系統(tǒng)跟蹤、DSP 跟蹤、ARM 跟蹤,以及支持多核導(dǎo)航器與 TeraNet 等特定 KeyStone SoC 特性的插裝。此外,CCStudio 還提供各種實(shí)用程序,可使用該分析工具套件導(dǎo)入和分析現(xiàn)場(chǎng)調(diào)試及跟蹤信息。CCStudio Eclipse產(chǎn)業(yè)環(huán)境CCStudio 是 Eclipse 平臺(tái)的組成部分,其不但可將調(diào)試與測(cè)試選項(xiàng)進(jìn)一步擴(kuò)展,使其適用于 KeyStone 軟件開(kāi)發(fā)團(tuán)隊(duì),而且還可在穩(wěn)健的系統(tǒng)上提供可充分利用其它 Eclipse 元素或插件的選項(xiàng)。支持 KeyStone 擴(kuò)展的 CCStudio 提供大量系統(tǒng)級(jí)及 SoC 元素級(jí)分析功能,并可為采用或不采用外部調(diào)試器提供高度的靈活性。與 Eclipse 集成,既可幫助開(kāi)發(fā)人員高度靈活地整合 Eclipse 功能,為 CCStudio 提供補(bǔ)充,也可為個(gè)別更熟悉 Eclipse 元素的開(kāi)發(fā)人員提供方便。
結(jié)論支持 KeyStone 擴(kuò)展的 CCStudio 工具套件無(wú)需修改代碼便可提供一流的系統(tǒng)級(jí)直觀視圖和分析功能。這對(duì)需要直觀視圖來(lái)更好地理解多核和多操作系統(tǒng)問(wèn)題的開(kāi)發(fā)人員來(lái)說(shuō),具有非常重要的意義。如果沒(méi)有這樣優(yōu)異的直觀視圖,開(kāi)發(fā)人員需要依靠定制解決方案及其自己的資源來(lái)理解復(fù)雜的多核問(wèn)題。這會(huì)讓問(wèn)題解決的時(shí)間拖上數(shù)天乃至數(shù)星期。如圖 4 所示,采用 TI 工具套件,幾分鐘內(nèi)便可獲得支持充足信息與直觀視圖的非侵入式調(diào)試及分析功能,從而可顯著縮短開(kāi)發(fā)時(shí)間,實(shí)現(xiàn)更理想的進(jìn)度。最終客戶(hù)將對(duì)高性能產(chǎn)品的及時(shí)交付充滿(mǎn)信心。圖 4:支持 KeyStone 擴(kuò)展的 CCStudio 工具套件為產(chǎn)品交付提供最高效率的途徑