DSP嵌入式實時系統權威指南

DSP嵌入式實時系統權威指南

《DSP嵌入式實時系統權威指南》是2017年10月機械工業出版社出版的圖書,由Robert Oshana著,李玲譯。本書由該領域的多位專家學者撰寫,涵蓋了當今嵌入式實時系統的大部分DSP最佳化,以全方位視角解析相關技術。

基本介紹

  • 書名:DSP嵌入式實時系統權威指南
  • 作者:Robert Oshana
  • 譯者:李玲
  • 出版社:機械工業出版社
  • ISBN:9787111576419
內容簡介,圖書目錄,

內容簡介

這是一本針對數位訊號處理的專業指導書籍。本書由該領域的多位專家學者撰寫,涵蓋了當今嵌入式實時系統的大部分DSP最佳化,以全方位視角解析相關技術。在進行理論講解之後,還有精選案例分析,幫助讀者形象地理解相關知識。從常見技術到前沿科技,從理論深度的探討到實踐經驗的傳播,本書意在呈現一本豐富而實用的DSP專業參考書籍。

圖書目錄

目  錄
譯者序
前言
作者簡介
第1章 數位訊號處理簡介 1
1.1 何謂數位訊號處理 1
1.2?DSP的優勢 2
1.3 DSP系統 2
1.3.1 模數轉換 3
1.3.2?奈奎斯特準則 4
1.3.3 數模轉換 6
1.4 DSP的套用 6
1.5 低功耗DSP套用 8
1.6 總結 9
第2章 實時系統與嵌入式系統概述 11
2.1 實時系統 11
2.1.1 軟實時和硬實時系統 11
2.1.2 實時系統和分時系統的區別 11
2.1.3 DSP系統是硬實時系統 12
2.1.4 實時事件特徵 13
2.2 高效運行和運行環境 14
2.3 實時系統設計的挑戰 14
2.3.1 回響時間 15
2.3.2 從故障中恢復 15
2.4 分散式和多處理器構架 16
2.4.1 系統初始化 16
2.4.2 處理器接口 16
2.4.3 負載分配 16
2.4.4 集中的資源分配和管理 16
2.5 嵌入式系統 17
2.6 總結 18
第3章 嵌入式DSP系統開發生命周期概述 20
3.1 嵌入式系統 20
3.2 嵌入式DSP系統的生命周期 20
3.2.1 步驟1:研究系統的整體需求 20
3.2.2 步驟2:選擇系統所需的硬體組件 21
3.2.3 硬體門電路 22
3.2.4 軟體可程式 22
3.2.5 通用處理器 22
3.2.6 微控制器 23
3.3 FPGA解決方案 23
3.4 一個通用的信號處理解決方案 27
3.5 DSP加速決策 28
3.6 DSP處理的模型 32
3.6.1 輸入/輸出選擇 33
3.6.2 計算DSP性能 34
3.6.3 DSP軟體 36
3.7 代碼的調整和最佳化 37
3.8 典型的DSP開發流程 38
3.9 總結 43
第4章 可程式DSP體系結構 44
4.1 可程式DSP體系結構的共性 44
4.2 記憶體體系結構 48
4.2.1 記憶體訪問寬度 49
4.2.2 對齊問題 49
4.3 數據操作 49
第5章 FPGA在無線通信中的套用 51
5.1 概述 51
5.1.1 空間復用的MIMO系統 52
5.1.2 Flex-Sphere 檢測器 53
5.1.3 改良實數分解排序 55
5.1.4 軟體無線電手機可配置檢測器的FPGA設計 56
5.1.5 改良實值分解 58
5.1.6 MT=3的Xilinx FPGA實現結果 58
5.1.7 MT=4的Xilinx FPGA實現結果 59
5.1.8 仿真結果 59
5.2 針對WiMAX的波束成形 61
5.2.1 在寬頻系統中的波束成形 61
5.2.2 波束成形系統的計算要求和性能 63
5.2.3 使用WARPLab的波束成形實驗 65
5.2.4 實驗設定及結果 67
5.3 總結 69
參考文獻 69
第6章 DSP軟硬體協同 72
6.1 概述 72
6.2 嵌入式設計中的FPGA 72
6.3 ASIC與FPGA 74
6.4 軟體可程式數位訊號處理 75
6.5 通用型嵌入式核心 76
6.6 總結 76
6.6.1 架構 76
6.6.2 以套用為導向的設計 77
參考文獻 77
第7章 DSP算法概述 78
7.1 DSP套用 78
7.2 信號與系統 78
7.2.1 DSP系統 79
7.2.2 混疊 79
7.3 基本的DSP系統 80
7.4 頻率分析 81
7.4.1 卷積 81
7.4.2 相關性 82
7.4.3 FIR濾波器設計 82
7.4.4 加窗 83
7.5 算法實現:DSP架構 85
7.5.1 數字格式 86
7.5.2 溢出和飽和 86
7.6 FIR濾波器的實現 86
7.6.1 利用片上RAM 88
7.6.2 特別的乘積累加指令 88
7.6.3 塊濾波 88
7.6.4 分離的程式和數據匯流排 88
7.6.5 零開銷循環 89
7.6.6 循環緩衝器 89
7.7 系統問題 90
7.8 總結 90
第8章 複雜DSP套用的高層次設計工具 91
8.1 高層次綜合設計方法 91
8.2 高層次設計工具 92
8.3 Catapult C 92
8.3.1 PICO 94
8.3.2 System Generator 95
8.4 案例分析 96
8.5 使用PICO的LDPC解碼器設計案例 96
8.6 使用Catapult C 的矩陣乘法器設計案例 99
8.7 使用System Generator的QR分解設計實例 101
8.8 總結 104
參考文獻 104
第9章 DSP軟體最佳化:DSP系統的基準測試和性能分析 107
9.1 概述 107
9.2 編寫測試框架 107
9.3 隔離DSP核心函式 110
9.3.1 提防激進的編譯工具 110
9.3.2 靈活放置代碼 111
9.4 真實系統行為的建模 111
9.4.1 快取帶來的影響 111
9.4.2 記憶體延遲帶來的影響 112
9.5 系統方面的影響 112
9.6 多核/多設備環境下的執行情況 112
9.7 分析測試方法帶來的額外開銷 113
9.7.1 排除無關事項 114
9.7.2 中斷 114
9.7.3 基準測試中運行的庫函式 114
9.7.4 使用仿真工具測試 114
9.7.5 基於硬體模組的測試 115
9.7.6 性能分析結果 116
9.7.7 如何解讀獲取的測試結果 116
第10章 DSP軟體最佳化:高級語言和編程模型 117
10.1 彙編語言 117
10.2 帶內聯函式和編譯指示的C程式語言 118
10.2.1 C語言編寫的FIR濾波器 119
10.2.2 內聯函式 119
10.2.3 編譯指令 121
10.3 嵌入式C語言 122
10.4 C++語言在嵌入式系統中的套用 122
10.5 自動矢量化編譯技術 123
10.5.1 MATLAB、Labview和類FFT-W的生成器套件 124
10.5.2 MATLAB和本地編譯的代碼 124
10.5.3 本地代碼到MATLAB和矽片上的仿真 125
第11章 最佳化DSP軟體:代碼最佳化 126
11.1 最佳化過程 126
11.2 使用開發工具 126
11.2.1 編譯器最佳化 126
11.2.2 編譯器基本配置 127
11.2.3 啟用最佳化 127
11.2.4 其他的最佳化配置 128
11.2.5 使用分析器 128
11.2.6 分析生成的彙編代碼 129
11.3 背景知識:理解DSP架構 129
11.4 基本C語言最佳化技巧 130
11.5 用內聯函式發揮DSP特性 131
11.6 指針和記憶體訪問 135
11.6.1 確保對齊方式 135
11.6.2 restrict和指針別名 136
11.7 循環 137
11.8 硬體循環 138
11.9 其他的提示和技巧 139
11.9.1 記憶體爭用 139
11.9.2 使用未對齊訪問 139
11.9.3 訪問快取 139
11.9.4 嵌入小函式 139
11.9.5 使用供應商DSP庫 139
11.10 一般的循環轉換 139
11.11 循環展開 140
11.11.1 背景知識 140
11.11.2 實現 140
11.12 多重採樣 140
11.12.1 背景知識 140
11.12.2 實現過程 141
11.12.3 實現 141
11.13 部分求和 141
11.13.1 背景知識 141
11.13.2 實現過程 142
11.13.3 實現 142
11.14 軟體流水化 143
11.14.1 背景知識 143
11.14.2 實現 143
11.15 最佳化技巧的套用示例:互相關 144
11.15.1 創建 144
11.15.2 原始實現方案 144
11.15.3 步驟1:用內聯函式執行小數計算並指定循環計數 145
11.15.4 步驟2:指定數據對齊方式並修改成多重採樣 146
11.15.5 步驟3:彙編語言最佳化 148
第12章 DSP最佳化:記憶體最佳化 151
12.1 概述 151
12.2 代碼量最佳化 151
12.2.1 編譯器標記和標記挖掘 151
12.2.2 針對ISA的代碼量與性能權衡 152
12.2.3 針對代碼量最佳化調整ABI 153
12.2.4 告誡購買者:編譯器最佳化與代碼量互不相關 160
12.3 記憶體布局最佳化 161
12.3.1 記憶體最佳化概述 161
12.3.2 集中最佳化工作 162
12.3.3 向量化和動態代碼計算比例 162
12.3.4 數據結構、數據結構數組及其混合 164
12.3.5 針對記憶體性能的循環最佳化 166
12.3.6 數據對齊方式的連鎖效應 166
12.3.7 選擇合適的數據類型會獲得豐厚回報 166
第13章 針對功耗的軟體最佳化 168
13.1 概述 168
13.2 了解功耗 168
13.3 測量功耗 171
13.3.1 使用電錶測量功率 171
13.3.2 使用霍爾感測器型IC測量功率 171
13.3.3 穩壓器模組電源IC 172
13.4 分析應用程式的功耗 173
13.5 降低功耗 174
13.6 時鐘和電壓控制 177
13.7 最佳化數據流 182
13.7.1 最佳化記憶體訪問以降低功耗 182
13.7.2 DDR概述 183
13.7.3 通過最佳化DDR數據流來降低功率 185
13.8 外設/通信的使用 193
13.8.1 數據的DMA和CPU的對比 195
13.8.2 算法最佳化 197
13.8.3 遞歸消除 200
13.9 總結 202
參考文獻 203
第14章 DSP作業系統 204
14.1 概述 204
14.2 DSP作業系統基礎 204
14.3 實時性 205
14.4 多核 208
14.5 記憶體管理 213
14.5.1 記憶體分配 213
14.5.2 虛擬記憶體和記憶體保護 213
14.6 網路 214
14.6.1 處理器間通信 214
14.6.2 網路互聯 216
14.7 調度 217
14.7.1 參考模型 217
14.7.2 搶占式調度與非搶占式調度 218
14.7.3 阻塞作業與非阻塞作業 218
14.7.4 協作式調度 218
14.7.5 調度類型 219
14.7.6 調度時的多核考慮 219
14.7.7 離線調度及其可能的實現 219
14.7.8 線上調度(基於優先權的調度) 224
14.7.9 靜態優先權調度 224
14.7.10 動態優先權調度 226
14.7.11 離線調度與線上調度的比較 227
14.7.12 優先權反轉 227
14.8 DSP OS輔助工具 229
14.9 總結 231
參考文獻 232
第15章 DSP軟體開發管理 234
15.1 概述 234
15.2 開發DSP套用面對的挑戰 234
15.3 DSP開發流程 235
15.3.1 概念和規範定義階段 235
15.3.2 DSP算法標準和指導原則 236
15.3.3 高級系統設計和工程性能 237
15.3.4 軟體開發 238
15.3.5 系統創建、集成和測試 238
15.3.6 工廠和現場測試 238
15.4 DSP系統的設計挑戰 238
15.5 DSP高級設計工具 239
15.6 DSP工具箱 239
15.7 DSP的主機開發工具 240
15.8 通用數據流實例 242
15.9 代碼調整及最佳化 246
15.9.1 典型DSP開發流程 246
15.9.2 新手入門 248
15.10 總結 248
第16章 DSP多核軟體開發 251
16.1 概述 251
16.2 多核編程模型 252
16.2.1 多個單核系統 252
16.2.2 真正的多核系統 254
16.3 移植嚮導 255
16.3.1 設計上的考慮 255
16.3.2 MJPEG案例分析 256
16.3.3 實現細節 259
16.4 總結 262
第17章 DSP應用程式的開發與調試 263
17.1 集成開發環境概述 263
17.2 新建項目 263
17.3 多核DSP環境下進行編譯與連結 267
17.3.1 DSP SDOS作業系統 267
17.3.2 應用程式記憶體映射 268
17.3.3 應用程式的編譯器配置 270
17.3.4 應用程式的連結器配置 274
17.4 在多核DSP上執行和調試應用程式 277
17.4.1 創建新連線 277
17.4.2 建立運行配置 279
17.4.3 調試器使用 280
17.5 使用軟體和硬體專用資源跟蹤與剖析多核應用程式 285
17.5.1 軟體分析設定 286
17.5.2 跟蹤 287
17.5.3 重要

相關詞條

熱門詞條

聯絡我們