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