圖書簡介
品牌:電子工業出版社詳情基本信息
書名:ARM認證工程師應試指南
原價:49.00元
售價:39.2元,便宜9.8元,折扣80
作者:奚海蛟
出版社:電子工業出版社
出版日期:2013-09-01
ISBN:9787121213618
字數:422000
頁碼:264
版次:1
裝幀:平裝
開本:16開
商品重量:0.4kg
編輯推薦
本書基于Liunx和ARM Cortex-A系列處理器,根據ARMAAE考試大綱展開描述,使讀者輕松應對AAE考試
內容提要
本書是針對ARMAAE考試認證編寫的,旨在為對參加AAE認證考試的讀者提供有益的幫助,對匯編語言和C語言的程序員提供有用的信息。本書分為ARM認證工程師學習指南和Cortex-A系列程序員指南兩部分。在ARM認證工程師學習指南部分給出了AAE認證考試的要點及其要求掌握的程度;在Cortex-A系列程序員指南部分對第1部分給出的要點進行了詳細論述,內容涵蓋:ARM簡介,ARM體系結構和處理器,工具、操作系統和開發板,ARM寄存器、模式和指令集,匯編語言簡介,ARM/Thumb的統一匯編,浮點,NEON簡介,高速緩存,內存管理單元,內存訪問排序,異常處理,中斷處理,其他異常處理程序,引導代碼,移植,應用程序二進制接口,性能分析,優化運行在ARM處理器的代碼,編寫NEON代碼,多重處理器簡介,SMP架構考慮,并行軟件,并行軟件的問題,電源管理,安全性,虛擬化,big.LITTLE簡介,調試。
目錄
目 錄
第1部分 ARM認證工程師學習指南
第1章 學習指南 2
1.1 ARM認證工程師介紹 2
1.2 ARM認證工程師大綱概述 2
1.3 大綱詳述 3
1.3.1 實現 3
1.3.2 軟件調試 4
1.3.3 架構 9
1.3.4 軟件開發 21
1.3.5 系統 30
1.3.6 軟件優化 33
第2部分 Cortex-A系列程序員指南
第2章 ARM簡介 38
2.1 ARM的歷史 38
2.2 片上系統(SoC) 39
2.3 嵌入式系統 39
第3章 ARM體系結構和處理器 41
3.1 體系結構的版本 42
3.2 體系結構的歷史與擴展 42
3.3 ARM Cortex-A系列處理器架構關鍵點 45
3.4 處理器和路徑 46
3.5 Cortex-A系列處理器 47
3.5.1 Cortex-A5處理器 47
3.5.2 Cortex-A7處理器 48
3.5.3 Cortex-A8處理器 48
3.5.4 Cortex-A9處理器 49
3.5.5 Cortex-A15處理器 50
3.5.6 高通公司的Scorpion 51
第4章 工具、操作系統和開發板 52
4.1 Linux發行版 52
4.1.1 ARM的Linux系統 52
4.1.2 Linux術語 53
4.1.3 嵌入式Linux 54
4.1.4 板級支持包 54
4.1.5 Linaro 54
4.2 有用工具 55
4.3 ARM處理器的軟件工具鏈 56
4.4 ARM DS-5 58
4.5 示例平臺 60
第5章 ARM寄存器、模式和指令集 61
5.1 指令集 61
5.2 模式 62
5.3 寄存器 62
5.4 指令流水線 64
5.4.1 并發流水線 66
5.4.2 寄存器重命名 66
5.5 分支預測 67
5.5.1 返回棧 67
5.5.2 程序員的觀點 68
第6章 匯編語言簡介 69
6.1 與其他匯編語言的對比 69
6.2 指令集 70
6.3 GNU匯編器簡介 71
6.3.1 激活GNU匯編器 71
6.3.2 GNU匯編器語法 71
6.3.3 程序段 72
6.3.4 編譯器的偽指令 72
6.3.5 表達式 73
6.3.6 GNU工具的命名慣例 73
6.4 ARM工具匯編語言 73
6.4.1 ARM匯編語法 74
6.4.2 標簽 74
6.4.3 偽指令 74
6.5 交互工作 75
6.6 識別匯編代碼 76
第7章 ARM/Thumb的統一匯編語言指令 77
7.1 指令集基礎 77
7.1.1 常量的值 77
7.1.2 條件執行 78
7.1.3 狀態標志位和條件碼 80
7.2 數據處理操作 80
7.3 乘法運算 82
7.4 存儲器指令 83
7.4.1 尋址方式 84
7.4.2 多指令傳送 84
7.5 分支指令 85
7.6 整數SIMD指令 85
7.6.1 整數寄存器SIMD指令 86
7.6.2 整數寄存器SIMD乘法 86
7.6.3 絕對差之和 87
7.6.4 數據打包和解包 87
7.6.5 字節選擇 88
7.7 飽和算法 88
7.8 雜項指令 88
7.8.1 協處理器指令 88
7.8.2 協處理器15(CP15) 89
7.8.3 SVC 90
7.8.4 修改PSR 91
7.8.5 位操作 91
7.8.6 高速緩存預加載 91
7.8.7 字節反轉 91
7.8.8 其他指令 92
第8章 浮點 93
8.1 浮點運算的基本知識以及IEEE 754標準 93
8.1.1 舍入算法 95
8.1.2 ARM VFP 95
8.1.3 指令 97
8.1.4 啟用VFP 97
8.2 GCC對VFP的支持 97
8.3 ARM編譯器對VFP的支持 98
8.4 Linux對VFP的支持 98
8.5 浮點優化 99
第9章 NEON簡介 100
9.1 SIMD 100
9.2 NEON結構概述 101
9.2.1 VFP的通用性 102
9.2.2 數據類型 102
9.2.3 NEON寄存器 102
9.2.4 NEON指令集 104
第10章 高速緩存 106
10.1 為什么高速緩存卓有成效 107
10.2 高速緩存的缺點 107
10.3 存儲器層次 107
10.4 高速緩存的結構 108
10.4.1 高速緩存控制器 109
10.4.2 直接映射高速緩存 109
10.4.3 Set關聯高速緩存 110
10.4.4 高速緩存術語 111
10.4.5 現實中的例子 112
10.4.6 虛擬和物理的標簽和索引 112
10.5 緩存策略 113
10.5.1 分配策略 113
10.5.2 替換策略 113
10.5.3 寫策略 114
10.6 寫緩沖區和取緩沖區 114
10.7 緩存的性能和命中率 115
10.8 無效化和清空緩存 115
10.9 一致點和統一點 116
10.10 二級緩存控制器 117
10.11 奇偶校驗和ECC高速緩存 117
第11章 內存管理單元 118
11.1 虛擬內存 119
11.2 一級頁表 120
11.3 二級頁表 122
11.4 轉換查找緩沖區 123
11.5 TLB的一致性 124
11.6 頁大小的選擇 124
11.7 內存屬性 125
11.7.1 內存訪問權限 125
11.7.2 內存類型 125
11.7.3 域 126
11.8 多任務和操作系統使用的頁表 127
11.8.1 地址空間ID 127
11.8.2 頁表基址寄存器0和1 128
11.8.3 快速上下文切換擴展 128
11.9 大物理地址擴展 129
第12章 內存訪問排序 131
12.1 ARM存儲排序模型 132
12.1.1 Strongly-ordered和Device內存 132
12.1.2 Normal內存 133
12.2 內存隔離 134
12.2.1 內存隔離使用示例 135
12.2.2 用隔離避免死鎖 136
12.2.3 WFE和WFI的隔離 137
12.2.4 Linux下使用的隔離 137
12.3 緩存一致性問題 138
12.3.1 復制代碼的問題 138
12.3.2 編譯器的重新排序優化 138
第13章 異常處理 139
13.1 異常類型 140
13.2 異常模式一覽 141
13.3 進入異常處理程序 142
13.4 退出異常處理程序 143
13.5 向量表 143
13.6 返回指令 143
第14章 中斷處理 144
14.1 外部中斷請求 144
14.1.1 中斷分配 145
14.1.2 簡單中斷處理 145
14.1.3 中斷嵌套處理 145
14.2 通用中斷控制器 146
14.2.1 配置 147
14.2.2 初始化順序 147
14.2.3 中斷處理 147
第15章 其他異常處理程序 149
15.1 中止異常處理程序 149
15.2 未定義指令處理 149
15.3 SVC異常處理 150
15.4 LINUX的異常程序流 150
15.4.1 引導過程 151
15.4.2 中斷調度 151
第16章 引導代碼 152
16.1 啟動一個裸機系統 152
16.2 配置 156
16.3 引導LINUX 156
16.3.1 復位異常處理 157
16.3.2 引導程序 157
16.3.3 初始化內存系統 157
16.3.4 內核鏡像 157
16.3.5 內核參數 158
16.3.6 內核入口 158
16.3.7 平臺的具體行為 158
16.3.8 內核啟動代碼 158
第17章 移植 160
17.1 大小端 160
17.2 對齊 163
17.3 其他的C代碼移植問題 164
17.3.1 unsigned char和signed char 164
17.3.2 編譯器packing結構體 164
17.3.3 堆棧的使用 165
17.3.4 其他問題 166
17.4 移植ARM的匯編代碼到ARMV-7 166
17.5 移植ARM代碼到THUMB架構 167
17.5.1 使用PC作為操作數 167
17.5.2 分支和互連 167
17.5.3 操作數組合 168
17.5.4 ARM/Thumb的其他差異 169
第18章 應用程序二進制接口 170
18.1 過程調用標準 170
18.1.1 VFP和NEON寄存器的使用 173
18.1.2 鏈接 174
18.1.3 棧和堆 175
18.1.4 返回結果 175
18.2 C和匯編代碼混合編程 175
第19章 性能分析 178
19.1 分析器輸出 179
19.2 Gprof 179
19.3 OProfile 180
19.4 DS-5 Streamline 180
19.5 ARM性能監視器 181
19.6 Linux的Perf事件 182
19.7 Ftrace 182
19.8 Valgrind和Cachegrind 182
第20章 優化運行在ARM處理器的代碼 183
20.1 編譯器優化 184
20.1.1 函數內聯 184
20.1.2 消除公共子表達式 184
20.1.3 循環展開 185
20.1.4 GCC優化選項 186
20.1.5 armcc優化選項 187
20.2 ARM存儲系統優化 187
20.2.1 數據緩存優化 188
20.2.2 循環分片 188
20.2.3 循環交換 189
20.2.4 結構對齊 189
20.2.5 關聯性的影響 190
20.2.6 優化指令緩存的使用 190
20.2.7 優化L2和外部緩存的使用 191
20.2.8 優化TLB的使用 191
20.2.9 數據中止優化 191
20.2.10 預取內存塊訪問 192
20.3 修改源代碼 192
20.3.1 循環結束 192
20.3.2 循環合并 192
20.3.3 減少堆和棧的使用 193
20.3.4 變量選擇 193
20.3.5 指針別名 194
20.3.6 除法和取模 195
20.3.7 外部數據 195
20.3.8 內聯或嵌入匯編 195
20.3.9 復雜尋址模式 195
20.3.10 非對齊訪問 196
20.3.11 鏈接器優化 196
第21章 編寫NEON代碼 197
21.1 NEON C編譯器和匯編器 197
21.1.1 矢量化 197
21.1.2 NEON庫 197
21.1.3 內部函數 198
21.1.4 C的NEON類型 198
21.1.5 變量和常量 199
21.1.6 從C/C 代碼生成NEON指令 199
21.1.7 NEON匯編器和ABI的限制 200
21.1.8 檢測NEON 200
21.2 優化NEON匯編代碼 201
21.2.1 內存訪問優化 201
21.2.2 對齊 202
21.2.3 調度 202
21.3 NEON省電 202
第22章 多重處理器簡介 204
22.1 多處理器ARM系統 205
22.2 對稱多重處理 206
22.3 非對稱多重處理AMP 207
第23章 SMP架構考慮 209
23.1 緩存一致性 209
23.1.1 MESI協議 210
23.1.2 MOESI協議 210
23.1.3 ACP 211
23.2 TLB和緩存維護廣播 211
23.3 在SMP系統中處理中斷 212
23.4 獨占訪問 212
23.5 引導SMP系統 215
23.5.1 處理器ID 215
23.5.2 Linux中SMP啟動 216
23.6 私有內存區域 216
第24章 并行軟件 218
24.1 分解法 218
24.2 線程模型 219
24.3 線程庫 220
24.3.1 線程間的通信 222
24.3.2 線程性能 222
24.3.3 線程關聯 222
24.4 Linux內核中的同步機制 222
24.4.1 結束(Completions)機制 222
24.4.2 自旋鎖 223
24.4.3 信號量 223
24.4.4 無鎖同步 223
第25章 并行軟件的問題 224
25.1 線程安全性和可重入性 224
25.2 性能問題 225
25.2.1 帶寬問題 225
25.2.2 線程依賴性 225
25.2.3 緩存抖動 226
25.2.4 偽共享 226
25.2.5 死鎖和活鎖 226
25.3 剖析SMP系統 226
第26章 電源管理 227
26.1 待機模式 228
26.2 休眠模式 228
26.3 匯編語言電源指令 229
26.4 動態電壓和頻率調整 229
第27章 安全性 230
27.1 可信區的硬件架構 230
27.2 多處理器系統的安全性擴展 232
27.3 正常世界和安全世界的相互作用 233
第28章 虛擬化 235
28.1 用于ARMV7-A的虛擬化擴展 236
28.1.1 在ARMv7-A的虛擬化擴展中的權限模型 236
28.1.2 超級管理模式 236
28.1.3 內存轉換 237
28.2 超級監控程序異常模型 237
28.3 虛擬化和ARM安全擴展之間的關系 238
第29章 big.LITTLE簡介 239
29.1 big.LITTLE配置 239
29.2 big.LITTLE系統的結構 240
29.3 big.LITTLE中的執行模型 241
29.3.1 big.LITTLE遷移模型 241
29.3.2 集群遷移 242
29.3.3 CPU遷移 243
29.4 big.LITTLE MP操作 244
第30章 調試 245
30.1 ARM調試硬件 245
30.2 ARM跟蹤硬件 246
30.3 調試監視器 248
30.4 調試Linux應用程序 248
30.5 DS-5的調試和跟蹤 249
30.5.1 使用DS-5調試Linux應用程序 250
30.5.2 調試Linux內核模塊 250
30.5.3 使用DS-5調試Linux內核 251
30.5.4 使用DS-5調試多線程應用程序 251
30.5.5 調試共享庫 251
30.5.6 DS-5的跟蹤支持 251
參考文獻 254
作者介紹
奚海蛟,男,北京航空航天大學博士、博士后,2000年開始在多個大型培訓機構和高校任講師,主講的課程有信號與系統、通信原理、游戲客戶端開發、3D數學、嵌入式移植、嵌入式驅動程序設計、ARM體系結構開發、物聯網等;2009創建北京融慧廣澤科技有限公司,2010年創建北京通聯物網教育咨詢有限公司合伙人,總經理。
文摘
![插圖](img38.ddimg./imgother1/22/2/23334718_1264471.jpg)
![插圖](img38.ddimg./imgother1/22/2/23334718_1264472.jpg)
![插圖](img38.ddimg./imgother1/22/2/23334718_1264474.jpg)
![插圖](img38.ddimg./imgother1/22/2/23334718_1264473.jpg)
序言
暫時沒有內容
目錄
基本信息
書名:ARM認證工程師應試指南
原價:49.00元
售價:39.2元,便宜9.8元,折扣80
作者:奚海蛟
出版社:電子工業出版社
出版日期:2013-09-01
ISBN:9787121213618
字數:422000
頁碼:264
版次:1
裝幀:平裝
開本:16開
商品重量:0.4kg
編輯推薦
本書基于Liunx和ARM Cortex-A系列處理器,根據ARMAAE考試大綱展開描述,使讀者輕松應對AAE考試
內容提要
本書是針對ARMAAE考試認證編寫的,旨在為對參加AAE認證考試的讀者提供有益的幫助,對匯編語言和C語言的程序員提供有用的信息。本書分為ARM認證工程師學習指南和Cortex-A系列程序員指南兩部分。在ARM認證工程師學習指南部分給出了AAE認證考試的要點及其要求掌握的程度;在Cortex-A系列程序員指南部分對第1部分給出的要點進行了詳細論述,內容涵蓋:ARM簡介,ARM體系結構和處理器,工具、操作系統和開發板,ARM寄存器、模式和指令集,匯編語言簡介,ARM/Thumb的統一匯編,浮點,NEON簡介,高速緩存,內存管理單元,內存訪問排序,異常處理,中斷處理,其他異常處理程序,引導代碼,移植,應用程序二進制接口,性能分析,優化運行在ARM處理器的代碼,編寫NEON代碼,多重處理器簡介,SMP架構考慮,并行軟件,并行軟件的問題,電源管理,安全性,虛擬化,big.LITTLE簡介,調試。
目錄
目 錄
第1部分 ARM認證工程師學習指南
第1章 學習指南 2
1.1 ARM認證工程師介紹 2
1.2 ARM認證工程師大綱概述 2
1.3 大綱詳述 3
1.3.1 實現 3
1.3.2 軟件調試 4
1.3.3 架構 9
1.3.4 軟件開發 21
1.3.5 系統 30
1.3.6 軟件優化 33
第2部分 Cortex-A系列程序員指南
第2章 ARM簡介 38
2.1 ARM的歷史 38
2.2 片上系統(SoC) 39
2.3 嵌入式系統 39
第3章 ARM體系結構和處理器 41
3.1 體系結構的版本 42
3.2 體系結構的歷史與擴展 42
3.3 ARM Cortex-A系列處理器架構關鍵點 45
3.4 處理器和路徑 46
3.5 Cortex-A系列處理器 47
3.5.1 Cortex-A5處理器 47
3.5.2 Cortex-A7處理器 48
3.5.3 Cortex-A8處理器 48
3.5.4 Cortex-A9處理器 49
3.5.5 Cortex-A15處理器 50
3.5.6 高通公司的Scorpion 51
第4章 工具、操作系統和開發板 52
4.1 Linux發行版 52
4.1.1 ARM的Linux系統 52
4.1.2 Linux術語 53
4.1.3 嵌入式Linux 54
4.1.4 板級支持包 54
4.1.5 Linaro 54
4.2 有用工具 55
4.3 ARM處理器的軟件工具鏈 56
4.4 ARM DS-5 58
4.5 示例平臺 60
第5章 ARM寄存器、模式和指令集 61
5.1 指令集 61
5.2 模式 62
5.3 寄存器 62
5.4 指令流水線 64
5.4.1 并發流水線 66
5.4.2 寄存器重命名 66
5.5 分支預測 67
5.5.1 返回棧 67
5.5.2 程序員的觀點 68
第6章 匯編語言簡介 69
6.1 與其他匯編語言的對比 69
6.2 指令集 70
6.3 GNU匯編器簡介 71
6.3.1 激活GNU匯編器 71
6.3.2 GNU匯編器語法 71
6.3.3 程序段 72
6.3.4 編譯器的偽指令 72
6.3.5 表達式 73
6.3.6 GNU工具的命名慣例 73
6.4 ARM工具匯編語言 73
6.4.1 ARM匯編語法 74
6.4.2 標簽 74
6.4.3 偽指令 74
6.5 交互工作 75
6.6 識別匯編代碼 76
第7章 ARM/Thumb的統一匯編語言指令 77
7.1 指令集基礎 77
7.1.1 常量的值 77
7.1.2 條件執行 78
7.1.3 狀態標志位和條件碼 80
7.2 數據處理操作 80
7.3 乘法運算 82
7.4 存儲器指令 83
7.4.1 尋址方式 84
7.4.2 多指令傳送 84
7.5 分支指令 85
7.6 整數SIMD指令 85
7.6.1 整數寄存器SIMD指令 86
7.6.2 整數寄存器SIMD乘法 86
7.6.3 絕對差之和 87
7.6.4 數據打包和解包 87
7.6.5 字節選擇 88
7.7 飽和算法 88
7.8 雜項指令 88
7.8.1 協處理器指令 88
7.8.2 協處理器15(CP15) 89
7.8.3 SVC 90
7.8.4 修改PSR 91
7.8.5 位操作 91
7.8.6 高速緩存預加載 91
7.8.7 字節反轉 91
7.8.8 其他指令 92
第8章 浮點 93
8.1 浮點運算的基本知識以及IEEE 754標準 93
8.1.1 舍入算法 95
8.1.2 ARM VFP 95
8.1.3 指令 97
8.1.4 啟用VFP 97
8.2 GCC對VFP的支持 97
8.3 ARM編譯器對VFP的支持 98
8.4 Linux對VFP的支持 98
8.5 浮點優化 99
第9章 NEON簡介 100
9.1 SIMD 100
9.2 NEON結構概述 101
9.2.1 VFP的通用性 102
9.2.2 數據類型 102
9.2.3 NEON寄存器 102
9.2.4 NEON指令集 104
第10章 高速緩存 106
10.1 為什么高速緩存卓有成效 107
10.2 高速緩存的缺點 107
10.3 存儲器層次 107
10.4 高速緩存的結構 108
10.4.1 高速緩存控制器 109
10.4.2 直接映射高速緩存 109
10.4.3 Set關聯高速緩存 110
10.4.4 高速緩存術語 111
10.4.5 現實中的例子 112
10.4.6 虛擬和物理的標簽和索引 112
10.5 緩存策略 113
10.5.1 分配策略 113
10.5.2 替換策略 113
10.5.3 寫策略 114
10.6 寫緩沖區和取緩沖區 114
10.7 緩存的性能和命中率 115
10.8 無效化和清空緩存 115
10.9 一致點和統一點 116
10.10 二級緩存控制器 117
10.11 奇偶校驗和ECC高速緩存 117
第11章 內存管理單元 118
11.1 虛擬內存 119
11.2 一級頁表 120
11.3 二級頁表 122
11.4 轉換查找緩沖區 123
11.5 TLB的一致性 124
11.6 頁大小的選擇 124
11.7 內存屬性 125
11.7.1 內存訪問權限 125
11.7.2 內存類型 125
11.7.3 域 126
11.8 多任務和操作系統使用的頁表 127
11.8.1 地址空間ID 127
11.8.2 頁表基址寄存器0和1 128
11.8.3 快速上下文切換擴展 128
11.9 大物理地址擴展 129
第12章 內存訪問排序 131
12.1 ARM存儲排序模型 132
12.1.1 Strongly-ordered和Device內存 132
12.1.2 Normal內存 133
12.2 內存隔離 134
12.2.1 內存隔離使用示例 135
12.2.2 用隔離避免死鎖 136
12.2.3 WFE和WFI的隔離 137
12.2.4 Linux下使用的隔離 137
12.3 緩存一致性問題 138
12.3.1 復制代碼的問題 138
12.3.2 編譯器的重新排序優化 138
第13章 異常處理 139
13.1 異常類型 140
13.2 異常模式一覽 141
13.3 進入異常處理程序 142
13.4 退出異常處理程序 143
13.5 向量表 143
13.6 返回指令 143
第14章 中斷處理 144
14.1 外部中斷請求 144
14.1.1 中斷分配 145
14.1.2 簡單中斷處理 145
14.1.3 中斷嵌套處理 145
14.2 通用中斷控制器 146
14.2.1 配置 147
14.2.2 初始化順序 147
14.2.3 中斷處理 147
第15章 其他異常處理程序 149
15.1 中止異常處理程序 149
15.2 未定義指令處理 149
15.3 SVC異常處理 150
15.4 LINUX的異常程序流 150
15.4.1 引導過程 151
15.4.2 中斷調度 151
第16章 引導代碼 152
16.1 啟動一個裸機系統 152
16.2 配置 156
16.3 引導LINUX 156
16.3.1 復位異常處理 157
16.3.2 引導程序 157
16.3.3 初始化內存系統 157
16.3.4 內核鏡像 157
16.3.5 內核參數 158
16.3.6 內核入口 158
16.3.7 平臺的具體行為 158
16.3.8 內核啟動代碼 158
第17章 移植 160
17.1 大小端 160
17.2 對齊 163
17.3 其他的C代碼移植問題 164
17.3.1 unsigned char和signed char 164
17.3.2 編譯器packing結構體 164
17.3.3 堆棧的使用 165
17.3.4 其他問題 166
17.4 移植ARM的匯編代碼到ARMV-7 166
17.5 移植ARM代碼到THUMB架構 167
17.5.1 使用PC作為操作數 167
17.5.2 分支和互連 167
17.5.3 操作數組合 168
17.5.4 ARM/Thumb的其他差異 169
第18章 應用程序二進制接口 170
18.1 過程調用標準 170
18.1.1 VFP和NEON寄存器的使用 173
18.1.2 鏈接 174
18.1.3 棧和堆 175
18.1.4 返回結果 175
18.2 C和匯編代碼混合編程 175
第19章 性能分析 178
19.1 分析器輸出 179
19.2 Gprof 179
19.3 OProfile 180
19.4 DS-5 Streamline 180
19.5 ARM性能監視器 181
19.6 Linux的Perf事件 182
19.7 Ftrace 182
19.8 Valgrind和Cachegrind 182
第20章 優化運行在ARM處理器的代碼 183
20.1 編譯器優化 184
20.1.1 函數內聯 184
20.1.2 消除公共子表達式 184
20.1.3 循環展開 185
20.1.4 GCC優化選項 186
20.1.5 armcc優化選項 187
20.2 ARM存儲系統優化 187
20.2.1 數據緩存優化 188
20.2.2 循環分片 188
20.2.3 循環交換 189
20.2.4 結構對齊 189
20.2.5 關聯性的影響 190
20.2.6 優化指令緩存的使用 190
20.2.7 優化L2和外部緩存的使用 191
20.2.8 優化TLB的使用 191
20.2.9 數據中止優化 191
20.2.10 預取內存塊訪問 192
20.3 修改源代碼 192
20.3.1 循環結束 192
20.3.2 循環合并 192
20.3.3 減少堆和棧的使用 193
20.3.4 變量選擇 193
20.3.5 指針別名 194
20.3.6 除法和取模 195
20.3.7 外部數據 195
20.3.8 內聯或嵌入匯編 195
20.3.9 復雜尋址模式 195
20.3.10 非對齊訪問 196
20.3.11 鏈接器優化 196
第21章 編寫NEON代碼 197
21.1 NEON C編譯器和匯編器 197
21.1.1 矢量化 197
21.1.2 NEON庫 197
21.1.3 內部函數 198
21.1.4 C的NEON類型 198
21.1.5 變量和常量 199
21.1.6 從C/C 代碼生成NEON指令 199
21.1.7 NEON匯編器和ABI的限制 200
21.1.8 檢測NEON 200
21.2 優化NEON匯編代碼 201
21.2.1 內存訪問優化 201
21.2.2 對齊 202
21.2.3 調度 202
21.3 NEON省電 202
第22章 多重處理器簡介 204
22.1 多處理器ARM系統 205
22.2 對稱多重處理 206
22.3 非對稱多重處理AMP 207
第23章 SMP架構考慮 209
23.1 緩存一致性 209
23.1.1 MESI協議 210
23.1.2 MOESI協議 210
23.1.3 ACP 211
23.2 TLB和緩存維護廣播 211
23.3 在SMP系統中處理中斷 212
23.4 獨占訪問 212
23.5 引導SMP系統 215
23.5.1 處理器ID 215
23.5.2 Linux中SMP啟動 216
23.6 私有內存區域 216
第24章 并行軟件 218
24.1 分解法 218
24.2 線程模型 219
24.3 線程庫 220
24.3.1 線程間的通信 222
24.3.2 線程性能 222
24.3.3 線程關聯 222
24.4 Linux內核中的同步機制 222
24.4.1 結束(Completions)機制 222
24.4.2 自旋鎖 223
24.4.3 信號量 223
24.4.4 無鎖同步 223
第25章 并行軟件的問題 224
25.1 線程安全性和可重入性 224
25.2 性能問題 225
25.2.1 帶寬問題 225
25.2.2 線程依賴性 225
25.2.3 緩存抖動 226
25.2.4 偽共享 226
25.2.5 死鎖和活鎖 226
25.3 剖析SMP系統 226
第26章 電源管理 227
26.1 待機模式 228
26.2 休眠模式 228
26.3 匯編語言電源指令 229
26.4 動態電壓和頻率調整 229
第27章 安全性 230
27.1 可信區的硬件架構 230
27.2 多處理器系統的安全性擴展 232
27.3 正常世界和安全世界的相互作用 233
第28章 虛擬化 235
28.1 用于ARMV7-A的虛擬化擴展 236
28.1.1 在ARMv7-A的虛擬化擴展中的權限模型 236
28.1.2 超級管理模式 236
28.1.3 內存轉換 237
28.2 超級監控程序異常模型 237
28.3 虛擬化和ARM安全擴展之間的關系 238
第29章 big.LITTLE簡介 239
29.1 big.LITTLE配置 239
29.2 big.LITTLE系統的結構 240
29.3 big.LITTLE中的執行模型 241
29.3.1 big.LITTLE遷移模型 241
29.3.2 集群遷移 242
29.3.3 CPU遷移 243
29.4 big.LITTLE MP操作 244
第30章 調試 245
30.1 ARM調試硬件 245
30.2 ARM跟蹤硬件 246
30.3 調試監視器 248
30.4 調試Linux應用程序 248
30.5 DS-5的調試和跟蹤 249
30.5.1 使用DS-5調試Linux應用程序 250
30.5.2 調試Linux內核模塊 250
30.5.3 使用DS-5調試Linux內核 251
30.5.4 使用DS-5調試多線程應用程序 251
30.5.5 調試共享庫 251
30.5.6 DS-5的跟蹤支持 251
參考文獻 254
作者介紹
奚海蛟,男,北京航空航天大學博士、博士后,2000年開始在多個大型培訓機構和高校任講師,主講的課程有信號與系統、通信原理、游戲客戶端開發、3D數學、嵌入式移植、嵌入式驅動程序設計、ARM體系結構開發、物聯網等;2009創建北京融慧廣澤科技有限公司,2010年創建北京通聯物網教育咨詢有限公司合伙人,總經理。
文摘
![插圖](img38.ddimg./imgother1/22/2/23334718_1264471.jpg)
![插圖](img38.ddimg./imgother1/22/2/23334718_1264472.jpg)
![插圖](img38.ddimg./imgother1/22/2/23334718_1264474.jpg)
![插圖](img38.ddimg./imgother1/22/2/23334718_1264473.jpg)
序言
暫時沒有內容
同類熱銷圖書
書名 | 作者 | 出版社 | 價格 | 購買 |
信息系統項目管理師考試考點分析與真題詳解(最新版) | 郭春柱 編.. | 電子工業出版社 | ¥69.00¥55.20 |
詳情 |
5天通過職稱計算機考試套裝(Excel2003中文電子表格+Power.. | 全國專業技.. | ¥116.00¥87.00 |
詳情 | |
網絡工程師考試應試指導(全國計算機技術與軟件專業技術資.. | 葛武滇,何.. | 清華大學出版社 | ¥56.00¥46.10 |
詳情 |
OCP/OCA認證考試指南全冊:Oracle Database 11g(1Z0-051.. | (美)沃森.. | 清華大學出版社 | ¥99.80¥79.80 |
詳情 |
全國職稱計算機考試專用教材套裝(Word2003+WindowsXP+Exc.. | 全國專業技.. | 機械工業出版社 | ¥160.00¥128.00 |
詳情 |
CISSP認證考試指南(第5版) | (美)哈里.. | 清華大學出版社 | ¥128.00¥102.40 |
詳情 |
全國職稱計算機考試速成過關套裝(Excel2003中文電子表格+.. | 全國專業技.. | 機械工業出版社 | ¥119.20¥95.40 |
詳情 |
全國職稱計算機考試速成過關系列:中文Windows XP操作系統.. | 全國專業技.. | 機械工業出版社 | ¥29.80¥24.10 |
詳情 |
網絡工程師考試沖刺指南(第4版) | 希賽教育軟.. | 電子工業出版社 | ¥59.00¥47.20 |
詳情 |
全國職稱計算機考試速成過關系列:Word 2003中文字處理考.. | 全國專業技.. | 機械工業出版社 | ¥29.80¥20.80 |
詳情 |
全國職稱計算機考試速成過關系列:PowerPoint 2003中文演.. | 全國專業技.. | 機械工業出版社 | ¥29.80¥24.10 |
詳情 |
全國職稱計算機考試速成過關系列:Internet應用考前沖刺與.. | 全國專業技.. | 機械工業出版社 | ¥29.80¥23.80 |
詳情 |
金牌網管師(中級)大中型企業網絡組建、配置與管理 (全國網.. | 王達 等編.. | 水利水電出版社 | ¥68.00¥57.80 |
詳情 |
網絡規劃設計師考試全程指導(全國計算機技術與軟件專業技.. | 施游,張友.. | 清華大學出版社 | ¥60.00¥46.50 |
詳情 |
全國職稱計算機考試速成過關系列:Excel 2003中文電子表格.. | 全國專業技.. | 機械工業出版社 | ¥29.80¥24.10 |
詳情 |
CISSP認證考試試題解析 | (美)哈里.. | 清華大學出版社 | ¥48.00¥40.80 |
詳情 |
金牌網管師(中級)網絡工程方案規劃與設計 ——全國網管.. | 王達 等編.. | 水利水電出版社 | ¥68.00¥56.40 |
詳情 |
OCP認證考試指南(1ZO-053):OracleDatabase 11g Adminis.. | (美)希里.. | 清華大學出版社 | ¥68.00¥57.80 |
詳情 |
程序員教程 | 張友生,黃.. | 高等教育出版社 | ¥52.00¥10.00 |
詳情 |
試題匯編2011年修訂版(高級操作員)(配1CD光盤)(辦公.. | 國家職業技.. | 科學出版社 | ¥39.80¥35.20 |
詳情 |
金牌網管師(初級)中小型企業網絡組建、配置與管理(全國網.. | 王達 等編.. | 水利水電出版社 | ¥58.00¥46.40 |
詳情 |
計算機操作員(高級) | 中國就業培.. | 中國勞動社會保障.. | ¥36.00¥29.90 |
詳情 |
全國計算機等級考試歷年真題必練(含關鍵考點點評)四級網.. | 全國計算機.. | 北京郵電大學出版.. | ¥27.00¥20.30 |
詳情 |
2008版試題匯編(操作員級)(附光盤)——辦公軟件應用(.. | 國家職業技.. | 科學出版社 | ¥35.00¥27.80 |
詳情 |
網絡工程師考試同步輔導(下午科目)第2版(全國計算機技術.. | 申繼年,祈.. | 清華大學出版社 | ¥33.00¥26.40 |
詳情 |