多核軟件開發(fā)套件
Sanjay Bhal 戰(zhàn)略市場營銷經(jīng)理,多核與媒體基礎(chǔ)架構(gòu)業(yè)務部
本文引用地址:http://www.ex-cimer.com/article/148284.htmRaj Sivarajan 軟件工程設(shè)計經(jīng)理,多核與媒體基礎(chǔ)架構(gòu)業(yè)務部
Raghu Nambiath 軟件設(shè)計工程師,多核與媒體基礎(chǔ)架構(gòu)業(yè)務部
介紹
多核數(shù)字信號處理器(DSP) 現(xiàn)已開始在不同的細分市場逐漸推廣,包括測量測試、關(guān)鍵任務、工業(yè)自動化、醫(yī)療與高端影像設(shè)備,以及高性能計算等。隨著這些應用的處理需求不斷增長,德州儀器(TI) 通過了新一代可擴展高性能TMS320C66x 多核DSP。C66x 器件建立在TI KeyStone 架構(gòu)基礎(chǔ)之上,可為多核器件中的每個內(nèi)核提供全面的處理功能,是實現(xiàn)真正多核創(chuàng)新的平臺。TI C66x 高性能DSP 包括采用單、雙、四以及八內(nèi)核配置提供的引腳兼容及可擴展器件。
德州儀器(TI) 對多核DSP 編程模型思路非常全面,已經(jīng)開發(fā)出一系列能夠在TI 多核DSP 平臺上實現(xiàn)快速開發(fā)的可擴展工具與軟件。本文主要介紹TI 多核軟件開發(fā)套件(MCSDK),具體內(nèi)容涵蓋對各種可用軟件套件以及實用程序及工具鏈的概述,可為編程人員開發(fā)Linux 等高級操作系統(tǒng)以及實時操作系統(tǒng)SYS/BIOS 助一臂之力。
MCSDK 的優(yōu)勢
TI MCSDK 旨在提供一個軟件開發(fā)環(huán)境,通過TI 高性能多核DSP 平臺實現(xiàn)快速開發(fā),加速產(chǎn)品上市進程。MCSDK 實現(xiàn)這一目標的方法包括:
·為客戶提供經(jīng)測試的良好集成型通用軟件層,客戶無須從頭開發(fā)通用層。例如,TI MCSDK 為配置和控制各種片上外設(shè)及加速器集成并測試了各種驅(qū)動器。客戶可使用驅(qū)動器接口加強片上輸入輸出(I/O) 機制以及加速功能。由于該軟件是專為器件優(yōu)化的,因此使用MCSDK 的客戶可從理想的性能優(yōu)勢中獲益;
·集成SYS/BIOS 實時操作系統(tǒng)及Linux 高級操作系統(tǒng)支持;
·為簡化編程以及在TI 可擴展多核DSP 平臺上實現(xiàn)未來可移植性提供定義完善的應用編程接口。例如,用于內(nèi)部核心通信的API 可在不進行任何代碼修改的情況下,擴展支持TI 多核DSP 的雙、四或八內(nèi)核版本。此外,相同API 還可用于使用Serial RapidIO® 等行業(yè)標準IO 實現(xiàn)器件間的通信;
·建立示例文檔,可幫助編程人員開發(fā)其應用。這些示例將為在多核上運行RTOS 和在多核上同時運行RTOS 與HLOS 提供有力幫助。此外,這些示例還將展示各種應用情況,不但可幫助客戶開發(fā)新應用,而且還可提供一個從單內(nèi)核系統(tǒng)到多核系統(tǒng)或從多核系統(tǒng)到單內(nèi)核系統(tǒng)移植的路徑;
·與Code Composer StudioTM 等TI 工具以及TI 第三方工具生態(tài)系統(tǒng)集成。
下圖(圖1)是上述MCSDK 及各種組件的概覽圖。
圖1. TI MCSDK 組件
TI MCSDK 實際上由兩個軟件生態(tài)系統(tǒng)構(gòu)成。第一個生態(tài)系統(tǒng)基于Linux,第二個基于SYS/BIOS。兩個都包含可幫助客戶便捷啟動開發(fā)的所有功能性軟件。每個生態(tài)系統(tǒng)都包含用于多核器件編程的各種機制(比如處理器間通信),在相同器件的不同內(nèi)核上既可獨立使用,也可組合使用。以下章節(jié)將總體介紹每個MCSDK 組件。
Linux MCSDK
Linux 多核軟件開發(fā)套件(MCSDK) 為支持運行在TI C66x 系列高性能多核DSP 上的Linux 生態(tài)系統(tǒng)奠定了堅實基礎(chǔ)。該套件包含可隨時投入使用的Linux 內(nèi)核、驅(qū)動器、樣片應用以及經(jīng)驗證的工具,可充分滿足客戶的產(chǎn)品開發(fā)需求。Linux MCSDK 以開源發(fā)行版形式在www.linux-c6x.org上提供,包含預構(gòu)建二進制程序,可隨時通過在參考平臺上運行來演示TI 高性能多核DSP 的功能。
總體而言,支持C66x 多核DSP 的Linux 是C66x 多核客戶、獨立開發(fā)者以及廠商協(xié)作社區(qū)推動的結(jié)果,可幫助參與和強化總體開發(fā)生態(tài)系統(tǒng)。目前已有多個參與方參與內(nèi)核與工具鏈的開發(fā)和上游對接。具體包括GCC 工具鏈的CodeSourcery(現(xiàn)在是Mentor EmbeddedTM 的一部分)以及內(nèi)核社區(qū)知名的Linux 開發(fā)商等。
生態(tài)系統(tǒng)組件
對Linux 生態(tài)系統(tǒng)的支持預計將是各種更豐富高性能應用的關(guān)鍵使能技術(shù),可幫助客戶輕松推出基于TI C66x 多核DSP 的平臺??偟膩碚f,該基礎(chǔ)架構(gòu)可通過增添市場導向型應用來幫助客戶降低開發(fā)成本,集中精力提升價值定位。
Linux MCSDK 采用uClinux 類內(nèi)核,因其較小的占位面積非常適合多核DSP 的開發(fā)。另外,Linux MCSDK 還包含支持訪問DSP 內(nèi)部所有外設(shè)的器件驅(qū)動器,這些外設(shè)將隨實際DSP 的不同而不同。圖2 是支持KeyStone 器件的外設(shè)與驅(qū)動器。
圖2. Linux MCSDK 的軟件生態(tài)系統(tǒng)組件
進程間通信
多核架構(gòu)的主要編程要求之一就是能夠在各種內(nèi)核之間進行高效通信。TI Linux MCSDK 支持在運行SYS/BIOS 的核心之間,以及其它Linux 內(nèi)核之間的通信,從而可為滿足各種潛在產(chǎn)品需求提供高度的靈活性。
內(nèi)核間的IPC
TI Linux MCSDK 通過SYS/Link 模塊提供進程間通信(IPC) 驅(qū)動器,以在運行Linux 高級操作系統(tǒng)(HLOS) 的兩個內(nèi)核以及運行SYS/BIOS 實時操作系統(tǒng)(RTOS) 的多個內(nèi)核之間實現(xiàn)通信。在預期的使用情況下,應在信號處理應用在BIOS 內(nèi)核上執(zhí)行的同時控制運行在Linux 內(nèi)核上的代碼。該軟件架構(gòu)將幫助運行Linux 的主機內(nèi)核把信號處理分配給多個內(nèi)核的同時,順暢地繼續(xù)執(zhí)行其它任務。SYS/Link IPC 模塊可為在多個內(nèi)核中發(fā)送和接收不同字長消息提供MessageQ 支持。
如圖3 所示,Linux MCSDK 還能使用一種支持IO 虛擬的標準化Linux 框架virtIO 在單一DSP 內(nèi)實現(xiàn)在多個內(nèi)核中運行的多個Linux 實例。
評論