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