C66x是TI(Texas Instruments)公司推出的新一代處理器內(nèi)核,包含定點和浮點計算能力,C66x包含90個新指令用于提升浮點和矢量運算。TMS320C6678是基于C66x內(nèi)核的8核處理器,66AK2Hx是基于ARMCortex-A15和C66x內(nèi)核的異構(gòu)多核處理器。基于C66x內(nèi)核的DSP處理器已經(jīng)成為主流的高性能DSP。
多核DSP的軟件開發(fā)技術(shù)對DSP嵌入式軟件開發(fā)人員具有一定的挑戰(zhàn)性。多核任務(wù)劃分、并行處理設(shè)計、同步設(shè)計以及Cache-致性等問題是多核并行設(shè)計的關(guān)鍵,良好的并行設(shè)計才能發(fā)揮C66x處理器的優(yōu)勢。
通過多年的研究并結(jié)合工程設(shè)計實踐,總結(jié)了C66x多核DSP并行開發(fā)技術(shù)經(jīng)驗和設(shè)計中一些經(jīng)常遇到的問題。本書以C6678為例系統(tǒng)介紹了C66x多核DSP、數(shù)據(jù)一致性、CCS使用、SYS/BIOS實時操作系統(tǒng)、多核并行設(shè)計和優(yōu)化等設(shè)計方法,用一個設(shè)計實例完整地描述了從任務(wù)并行設(shè)計到具體實現(xiàn)的過程。
在C66x多核軟件設(shè)計中,程序員的軟件設(shè)計思想、設(shè)計方法需要調(diào)整和提高。本書從程序員的工作需要和高校學(xué)生的學(xué)習(xí)需要出發(fā),結(jié)合工作實際,詳細敘述了多核軟件開發(fā)技術(shù)。初學(xué)者可以循序漸進地建立基于C66x多核并行開發(fā)的概念,并積累優(yōu)化設(shè)計的經(jīng)驗提高設(shè)計水平,一開始就設(shè)計出高性能的并行代碼。
每章內(nèi)容要點如下:
(1)第1章主要介紹了C66x處理器,并以C6678為例介紹了處理器概況、處理器內(nèi)核、外圍設(shè)備、多核導(dǎo)航器等模塊。
(2)第2章主要介紹了C6678存儲控制器、多核共享存儲控制器、外部存儲控制器EMC、擴展存儲控制器XMC、存儲器保護架構(gòu)、帶寬管理等存儲器相關(guān)內(nèi)容。
(3)第3章主要介紹了Cache基礎(chǔ)知識,C66x的各級Cache、Cache的使用、數(shù)據(jù)一致性等內(nèi)容。
(4)第4章主要介紹了IDMA、EDMA使用的一些知識。
(5)第5章介紹了C66x中斷控制器、內(nèi)核事件以及中斷控制器與DSP交互的相關(guān)知識。
(6)第6章介紹了如何使用CCS進行相關(guān)的操作和配置。
(7)第7章介紹了SYS/BIOS實時操作系統(tǒng),并給出了相關(guān)設(shè)計例程。
(8)第8章介紹了多核并行設(shè)計的相關(guān)問題,如并行粒度、并行方式、依賴關(guān)系、死鎖活鎖、同步等問題,并介紹了任務(wù)級優(yōu)化設(shè)計的例子。
(9)第9章介紹了軟件優(yōu)化技術(shù),如for循環(huán)優(yōu)化、軟件流水、編譯指示和關(guān)鍵字的使用、內(nèi)建函數(shù)的使用等。
(10)第10章介紹了一個多核軟件設(shè)計的實例。
(11)第11章介紹了多核發(fā)展的趨勢及一些思考。
(12)附錄中列出了常用的存儲器地址映射、MAR寄存器地址對照表和C6678EDMACC事件列表。
本書中關(guān)于TIC66x多核DSP的相關(guān)資料來源于TI相關(guān)網(wǎng)站,如TI官網(wǎng)(www.ti.com)、德州儀器在線技術(shù)支持社區(qū)(www.deyisupport.com)等,相關(guān)資料的最新版本可以從中查詢。
參與本書審校的有牛蕾、習(xí)建博、鄧慶勇、郭琦、白曉慧、張玉營、潘勇先、朱鵬等,方志紅、梁之勇、宋皓、顧慶遠等在多核開發(fā)技術(shù)方面做出了很大貢獻。為本書的形成及多核C66xDSP開發(fā)技術(shù)做出貢獻的人還有很多,在這里一并致謝!
多核開發(fā)技術(shù)發(fā)展迅速,基于C66x的多核開發(fā)技術(shù)難點較多,由于作者水平有限,書中難免有疏漏之處,歡迎讀者指正。
第1章 TI多核C66x DSP介紹
1.1 C6678處理器
1.1.1 C6678概覽
1.1.2 外圍設(shè)備
1.2 66AK處理器
1.3 66AK2H14/12/06和C6678各項功能對比
1.4 C66x處理器內(nèi)核
1.5 電源休眠控制器
1.5.1 C266x內(nèi)核電源休眠管理介紹
1.5.2 電源休眠管理特征
1.6 鎖相環(huán)及其設(shè)置
1.6.1 主PLL和PLL控制器
1.6.2 DDR3 PLL
1.6.3 PASS PLL
1.7 C6678處理器接口通信相關(guān)外圍設(shè)備
1.7.1 I2C外圍設(shè)備
1.7.2 SPI外圍設(shè)備
1.7.3 HyperLink外圍設(shè)備
1.7.4 UART外圍設(shè)備
1.7.5 PCIE外圍設(shè)備
1.7.6 TSIP外圍設(shè)備
1.7.7 包加速器
1.7.8 EMIFl6外圍設(shè)備
1.7.9 安全加速器.
1.7.10 Gigabit Ethernet開關(guān)子系統(tǒng)
1.7.11 管理數(shù)據(jù)輸入輸出
1.7.12 串行RapidIo端口
1.7.13 通用目的輸入輸出
1.8 定時器
1.9 信號量
1.10 多核導(dǎo)航器
1.11 設(shè)計建議
1.11.1 初始化
1.11.2 接口驅(qū)動程序
1.11.3 時間戳的獲取
1.11.4 EVM板的使用
第2章 C66x存儲器組織
2.1 C66x存儲控制器
2.1.1 L1P存儲控制器
2.1.2 L1D存儲控制器
2.1.3 L2存儲控制器
2.1.4 外部存儲控制器
2.1.5 擴展存儲控制器
2.2 多核共享存儲控制器
2.2.1 概覽
2.2.2 C66x內(nèi)核從接口
2.2.3 系統(tǒng)從接口
2.2.4 系統(tǒng)主接口
2.2.5 外部存儲器主接口
2.2.6 MSMC存儲器
2.3 擴展存儲控制器XMC
2.3.1 存儲器映射寄存器概要
2.3.2 XMC存儲器保護和地址擴展
2.3.3 存儲器保護和地址擴展過程
2.3.4 地址擴展
2.3.5 XMC存儲器保護結(jié)構(gòu)支持
2.3.6 預(yù)取緩沖
2.4 存儲器保護架構(gòu)
2.4.1 存儲器保護的目的
2.4.2 特權(quán)級別
2.4.3 存儲器保護架構(gòu)
2.5 帶寬管理
2.5.1 介紹
2.5.2 帶寬管理架構(gòu)
2.5.3 帶寬管理寄存器
2.6 設(shè)計建議
2.6.1 合理規(guī)劃使用存儲器
2.6.2 存儲器設(shè)置成不被Cache緩存和預(yù)取
……
第3章 Cache緩存和數(shù)據(jù)一致性
第4章 DMA傳輸
第5章 終端和異常
第6章 如何使用CCS
第7章 SYS/BIOS實時操作系統(tǒng)
第8章 多核并行設(shè)計
第9章 軟件優(yōu)化設(shè)計
第10章 距離多普勒成像設(shè)計實例
第11章 展望