使用Raspberry Pi學習計算機體系結構

《使用Raspberry Pi學習計算機體系結構》是2018年清華大學出版社出版的書籍,作者是[美] Eben Upton,Jeff Duntemann,Ralph Roberts,Tim Mamtora,Ben Everard。

基本介紹

  • 書名:使用Raspberry Pi學習計算機體系結構
  • 作者:[美] Eben Upton,Jeff Duntemann,Ralph Roberts,Tim Mamtora,Ben Everard
  • 譯者:張龍傑 楊玫 孫濤 於亮
  • ISBN:9787302487173
  • 定價:79.80元
  • 出版時間:2018.01.01
  • 印次:1-1
  • 印刷日期:2017.11.15
內容簡介,目錄,

內容簡介

《使用Raspberry Pi學習計算機體系結構》能幫助讀者 ■ 了解Raspberry Pi每個部分的設計目的 ■ 理解不同組件之間的互動方式 ■ 深入了解系統設計的完整過程 ■ 學習程式設計原理 ■ 觀察硬體和作業系統之間的相互作用 ■ 深入研究ARM晶片背後的機制 ■ 比較和對照不同的晶片,從ARM到Intel

目錄

第1章計算機漫談1
1.1日益繽彩紛呈的Raspberry1
1.2片上系統4
1.3一台令人激動的信用卡般大小的計算機5
1.4RaspberryPi的功能6
1.5RaspberryPi板7
1.5.1GPIO引腳7
1.5.2狀態LED9
1.5.3USB插口10
1.5.4乙太網連線10
1.5.5音頻輸出11
1.5.6複合視頻12
1.5.7CSI攝像頭模組連線器13
1.5.8HDMI13
1.5.9microUSB電源14
1.5.10存儲卡14
1.5.11DSI顯示連線15
1.5.12裝配孔15
1.5.13晶片16
1.6未來16
第2章計算概述19
2.1計算機與烹飪20
2.1.1佐料與數據20
2.1.2基本操作21
2.2按計畫執行的盒子22
2.2.1執行和知曉22
2.2.2程式就是數據23
2.2.3存儲器24
2.2.4暫存器25
2.2.5系統匯流排26
2.2.6指令集26
2.3電平、數字及其表示27
2.3.1二進制:以1和0表示27
2.3.2手指的局限性29
2.3.3數量、編號和029
2.3.4用於二進制速記的十六進制30
2.3.5執行二進制和十六進制運算31
2.4作業系統:幕後老闆33
2.4.1作業系統的功能33
2.4.2向核心致敬34
2.4.3多核34
第3章電子存儲器35
3.1存儲器先於計算機而存在35
3.2旋轉磁存儲器(RotatingMagneticMemory)36
3.3磁芯存儲器37
3.3.1磁芯存儲器的工作過程38
3.3.2存儲器訪問時間39
3.4靜態隨機訪問存儲器(SRAM)40
3.5地址線和數據線41
3.6由存儲器晶片構建存儲器系統42
3.7動態隨機訪問存儲器(DRAM)45
3.7.1DRAM的工作原理45
3.7.2同步DRAM和異步DRAM47
3.7.3SDRAM列、行、Bank、Rank和DIMM49
3.7.4DDR、DDR2、DDR3和DDR4SDRAM50
3.7.5糾錯碼存儲器53
3.8RaspberryPi的存儲器系統54
3.8.1節能性54
3.8.2球柵陣列封裝55
3.9快取55
3.9.1訪問的局部性56
3.9.2快取層級56
3.9.3快取行和快取映射57
3.9.4直接映射59
3.9.5相聯映射61
3.9.6組相聯高速快取62
3.9.7回寫快取到存儲器63
3.10虛擬存儲器64
3.10.1虛擬存儲器概覽64
3.10.2虛擬存儲器到物理存儲器的映射65
3.10.3深入了解存儲器管理單元66
3.10.4多級頁表和TLB69
3.10.5RaspberryPi的交換問題70
3.10.6RaspberryPi虛擬存儲器70
第4章ARM處理器與片上系統73
4.1急速縮小的CPU73
4.1.1微處理器74
4.1.2電晶體預算75
4.2數字邏輯基礎75
4.2.1邏輯門75
4.2.2觸發器和時序邏輯76
4.3CPU內部78
4.3.1分支與標誌79
4.3.2系統棧80
4.3.3系統時鐘和執行時間82
4.3.4流水線技術83
4.3.5流水線技術詳解84
4.3.6深入流水線以及流水線阻塞86
4.3.7ARM11中的流水線88
4.3.8超標量執行89
4.3.9基於SIMD的更多並行機制90
4.3.10位元組序92
4.4CPU再認識:CISC與RISC93
4.4.1RISC的歷史95
4.4.2擴展的暫存器檔案95
4.4.3載入/存儲架構96
4.4.4正交的機器指令96
4.4.5獨立的指令和數據高速快取97
4.5源於艾康的ARM97
4.5.1微架構、核心及家族98
4.5.2出售設計許可而非成品晶片98
4.6ARM1199
4.6.1ARM指令集99
4.6.2處理器模式102
4.6.3模式和暫存器103
4.6.4快速中斷107
4.6.5軟體中斷108
4.6.6中斷優先權108
4.6.7條件指令執行109
4.7協處理器111
4.7.1ARM協處理器接口112
4.7.2系統控制協處理器113
4.7.3向量浮點協處理器113
4.7.4仿真協處理器114
4.8ARMCortex114
4.8.1多發和亂序執行115
4.8.2Thumb2115
4.8.3ThumbEE115
4.8.4big.LITTLE116
4.8.5NEONSIMD協處理器116
4.8.6ARMv8和64位計算117
4.9片上系統118
4.9.1博通BCM2835SoC118
4.9.2第二代和第三代博通SoC設備119
4.9.3VLSI晶片原理119
4.9.4流程、製程工藝和掩膜120
4.9.5IP:單元、宏單元、核心120
4.9.6硬IP和軟IP121
4.9.7平面規劃、布局和布線121
4.9.8片上通信的標準:AMBA122
第5章程式設計125
5.1程式設計概述125
5.1.1軟體開發過程126
5.1.2瀑布、螺旋與敏捷128
5.1.3二進制程式設計130
5.1.4彙編語言和助記符131
5.1.5高級語言132
5.1.6花樣泛濫的後BASIC時代134
5.1.7程式設計術語135
5.2本地代碼編譯器的工作原理137
5.2.1預處理138
5.2.2詞法分析138
5.2.3語義分析139
5.2.4生成中間代碼139
5.2.5最佳化139
5.2.6生成目標代碼139
5.2.7C編譯:一個具體示例140
5.2.8連結目標代碼檔案到執行檔145
5.3純文本解釋程式146
5.4位元組碼解釋語言148
5.4.1p-code148
5.4.2Java149
5.4.3即時編譯(JIT)150
5.4.4Java之外的位元組碼和JIT編譯152
5.4.5Android、Java和Dalvik152
5.5數據構建塊152
5.5.1標識符、關鍵字、符號和操作符153
5.5.2數值、文本和命名常量153
5.5.3變數、表達式和賦值154
5.5.4類型和類型定義154
5.5.5靜態和動態類型156
5.5.6補碼和IEEE754157
5.6代碼構建塊159
5.6.1控制語句和複合語句159
5.6.2if/then/else159
5.6.3switch和case161
5.6.4repeat循環162
5.6.5while循環163
5.6.6for循環164
5.6.7break和continue語句166
5.6.8函式166
5.6.9局部性和作用域168
5.7面向對象程式設計170
5.7.1封裝172
5.7.2繼承174
5.7.3多態176
5.7.4OOP小結178
5.8GNU編譯器工具集概覽178
5.8.1作為編譯器和生成工具的gcc179
5.8.2使用Linuxmake181
第6章非易失性存儲器185
6.1打孔卡和磁帶186
6.1.1打孔卡186
6.1.2磁帶數據存儲器186
6.1.3磁存儲器的黎明188
6.2磁記錄和編碼方案189
6.2.1磁通躍遷190
6.2.2垂直記錄191
6.3磁碟存儲器192
6.3.1柱面、磁軌和扇區193
6.3.2低級格式化194
6.3.3接口和控制器195
6.3.4軟碟驅動器197
6.4分區和檔案系統198
6.4.1主分區和擴展分區198
6.4.2檔案系統和高級格式化199
6.4.3未來:GUID分區表(GPT)200
6.4.4RaspberryPiSD卡的分區201
6.5光碟202
6.5.1源自CD的格式203
6.5.2源自DVD的格式204
6.6虛擬硬碟205
6.7Flash存儲器206
6.7.1ROM、PROM和EPROM206
6.7.2Flash與EEPROM207
6.7.3單級與多級存儲209
6.7.4NORFlash與NANDFlash210
6.7.5損耗平衡及Flash轉換層213
6.7.6碎片回收和TRIM214
6.7.7SD卡215
6.7.8eMMC216
6.7.9非易失性存儲器的未來217
第7章有線和無線乙太網219
7.1網路互連OSI參考模型220
7.1.1套用層222
7.1.2表示層222
7.1.3會話層223
7.1.4傳輸層223
7.1.5網路層224
7.1.6數據鏈路層226
7.1.7物理層226
7.2乙太網227
7.2.1粗纜乙太網和細纜乙太網227
7.2.2乙太網的基本構想227
7.2.3衝突檢測和規避228
7.2.4乙太網編碼系統229
7.2.5PAM-5編碼232
7.2.610BASE-T和雙絞線233
7.2.7從匯流排拓撲結構到星型拓撲結構234
7.2.8交換乙太網235
7.3路由器和網際網路237
7.3.1名稱與地址237
7.3.2IP位址和TCP連線埠238
7.3.3本地IP位址和DHCP240
7.3.4網路地址轉換242
7.4Wi-Fi243
7.4.1標準中的標準244
7.4.2面對現實世界245
7.4.3正在使用的Wi-Fi設備248
7.4.4基礎設施網路與AdHoc網路249
7.4.5Wi-Fi分散式介質訪問250
7.4.6載波監聽和隱藏結點問題251
7.4.7分片253
7.4.8調幅、調相和QAM253
7.4.9擴頻技術256
7.4.10Wi-Fi調製和編碼細節256
7.4.11Wi-Fi連線的實現原理259
7.4.12Wi-Fi安全性260
7.4.13RaspberryPi上的Wi-Fi261
7.4.14更多的網路263
第8章
作業系統265
8.1作業系統簡介266
8.1.1作業系統的歷史267
8.1.2作業系統基礎270
8.2核心:作業系統的核心主導者274
8.2.1作業系統控制276
8.2.2模式276
8.2.3存儲器管理277
8.2.4虛擬存儲器278
8.2.5多任務處理278
8.2.6磁碟訪問和檔案系統279
8.2.7設備驅動程式279
8.3作業系統的使能器和助手279
8.3.1喚醒作業系統280
8.3.2固件283
8.4RaspberryPi上的作業系統283
8.4.1NOOBS284
8.4.2第三方作業系統285
8.4.3其他可用的作業系統285
第9章視頻編解碼器和視頻壓縮287
9.1第一個視頻編解碼器288
9.1.1利用眼睛288
9.1.2利用數據290
9.1.3理解頻率變換293
9.1.4使用無損編碼技術297
9.2時移世易298
9.2.1MPEG的最新標準299
9.2.2H.265302
9.3運動搜尋302
9.3.1視頻質量304
9.3.2處理能力305
第10章3D圖形307
10.13D圖形簡史307
10.1.1圖形用戶界面(GraphicalUserInterface,GUI)308
10.1.2視頻遊戲中的3D圖形310
10.1.3個人計算和顯示卡311
10.1.4兩個競爭標準312
10.2OpenGL圖形管線314
10.2.1幾何規範和屬性315
10.2.2幾何變換317
10.2.3光照和材質320
10.2.4圖元組裝和光柵化322
10.2.5像素處理(片段著色)324
10.2.6紋理326
10.3現代圖形硬體328
10.3.1瓦片渲染329
10.3.2幾何拒絕330
10.3.3著色332
10.3.4快取333
10.3.5RaspberryPiGPU334
10.4OpenVG336
10.5通用GPU338
10.5.1異構體系結構338
10.5.2OpenCL339
第11章音頻341
11.1現在能聽到我的聲音嗎?341
11.1.1MIDI342
11.1.2音效卡342
11.2模擬與數字343
11.3聲音和信號處理344
11.3.1編輯344
11.3.2壓縮345
11.3.3使用特效錄製345
11.3.4編碼和解碼通信信息346
11.41位DAC347
11.5I2S349
11.6RaspberryPi聲音輸入/輸出350
11.6.1音頻輸出插孔350
11.6.2HDMI350
11.7RaspberryPi的聲音351
11.7.1RaspberryPi板載聲音351
11.7.2處理RaspberryPi的聲音351
第12章輸入/輸出359
12.1輸入/輸出簡介359
12.2I/O使能器362
12.2.1通用串列匯流排363
12.2.2USB有源集線器365
12.2.3乙太網367
12.2.4通用異步收發器368
12.2.5小型計算機系統接口368
12.2.6PATA369
12.2.7SATA369
12.2.8RS-232串口370
12.2.9HDMI370
12.2.10I2S371
12.2.11I2C371
12.2.12RaspberryPi顯示器、攝像頭接口和JTAG372
12.3RaspberryPiGPIO373
12.3.1GPIO概述以及博通SoC373
12.3.2接觸GPIO374
12.3.3可程式GPIO380
12.3.4可選模式385
12.3.5GPIO實驗的簡單方法385

相關詞條

熱門詞條

聯絡我們