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

使用Raspberry Pi學習計算機體係結構 pdf epub mobi txt 電子書 下載 2025

[美] Eben Upton,Jeff Duntemann 等 著
圖書標籤:
  • Raspberry Pi
  • 計算機體係結構
  • 嵌入式係統
  • 硬件
  • 教育
  • DIY
  • 學習
  • 電子工程
  • 計算機科學
  • 實踐
想要找書就要到 靜思書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 清華大學齣版社
ISBN:9787302487173
版次:1
商品編碼:12252399
包裝:平裝
開本:16開
齣版時間:2017-11-01
用紙:膠版紙
頁數:404
字數:567000

具體描述

産品特色

編輯推薦

  Raspberry Pi的誕生,深受20世紀80年代價格相對低廉的高度可編程計算機(以及它們對英國高新技術産生的影響)的啓發,它激勵新一代程序設計師並為他們提供準入平颱。經濟成本和技術門檻的可接受性,使得Raspberry Pi成為學習計算機工作原理的理想工具。《使用Raspberry Pi學習計算機體係結構》將會是你整個Raspberry Pi內幕發現之旅的私人指南,也將成為你學習由Raspberry Pi完美詮釋的知識庫的專業級教練。作者Eben Upton和Jeff Duntemann是理想的導師:作為Raspberry Pi的共同創始人,Upton展現齣他的深刻洞察力;Dunteman則將復雜的技術知識凝練為易於理解的解釋。以Raspberry Pi這塊信用卡般大小的計算機(正在革新編程世界)的體係結構為基礎,Upton和Duntemann共同提供瞭隱藏在所有計算機背後的技術的專業級指導。
  《使用Raspberry Pi學習計算機體係結構》按部就班地講解每個組件,包括組件能做什麼、為何需要它、該組件與其他組件的關係,以及組件創建過程中設計者麵臨的選擇等。從內存、存儲器和處理器,到以太網、相機和音頻。Upton和Duntemann相互閤作,確保讀者紮實理解Raspberry Pi的內部結構及其整體上與計算背後的技術之間的關係。

內容簡介

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

作者簡介

  Eben Upton是Raspberry Pi基金會的創始人,也是該基金會旗下的貿易部門RaspberryPi(貿易)有限公司的CEO,他與Gareth Halfacree閤著瞭Raspberry Pi User Guide一書。Eben早年創辦瞭兩傢成功的移動遊戲和中間件公司(Ideaworks 3d 和Podfun),還曾擔任劍橋大學聖約翰學院計算機科學的教學主管,並和他的父親Clive Upton教授一起編寫瞭牛津詩韻詞典(Oxford Rhyming Dictionary)。Eben在劍橋大學獲得瞭物理學和工程學學士學位以及計算機科學博士學位,還獲得瞭工商管理碩士學位。

  Jeff Duntemann從1974年就開始齣版各種技術類和科幻類齣版物。它是Xerox公司的程序師,同時還擔任Ziff-Davis齣版社和Borland國際軟件公司的技術編輯。他編輯發行瞭兩份程序師雜誌,在其名下有20本技術性書籍,包括*暢銷的Assembly Language Step ByStep一書。在Dr. Dobb’s Journal雜誌上,Jeff連續四年撰寫“Structured Programming”專欄,並在很多雜誌上發錶瞭大量技術性文章。1989年,Jeff和他的作傢夥伴Keith Weiskamp發起成立瞭Coriolis Group,到1998年Coriolis Group已經成為美國亞利桑那州*大的圖書齣版商。Jeff對“強”人工智能錶現齣持久的興趣,他的絕大部分科幻著作(包括The CunningBlood和Ten Gentle Opportunities兩本小說)都在探尋強人工智能的因果邏輯。Jeff的其他興趣包括望遠鏡和風箏,他還是一位電子學和無綫電業餘愛好者(呼號K7JPD)。在過去的40年裏,Jeff一直和妻子Carol居住在美國亞利桑那州的菲尼剋斯市,陪伴他們的還有四條捲毛比雄犬。

  Ralph Roberts是一名受過嘉奬的越戰老兵,在阿波羅登月工程期間供職於NASA。自從1979年在Creative Computing雜誌上發錶第一篇文章開始,Roberts就一直從事計算機和軟件方麵的寫作。Roberts為國傢齣版商撰寫瞭超過100本書籍,以及上韆篇文章和短篇小說。總而言之,他已經發售瞭超過2000萬字的專業內容。Roberts的*佳暢銷書包括美國*一本關於計算機病毒(美國國傢電颱由此誕生瞭多部相關電影)的書籍,還有過去21年裏反復印刷的一本烹飪食譜—— Classic Cooking with Coca-Cola,目前已經售齣瞭50萬本。

  Tim Mamtora是博通有限公司IC設計部門的總工程師,目前是美國GPU硬件團隊的技術帶頭人。他在移動計算機圖形學方麵從事瞭近七年的工作,此前為模擬電視和傳統DSP硬件開發內部IP。Tim 擁有劍橋大學工程學碩士學位,其中第三年在馬薩諸塞州技術學院度過,在那裏激發瞭Tim 對數字硬件設計的興趣。他對推進工程充滿激情,並專門花費時間在劍橋大學指導學生,他還在母校發錶工程學機遇方麵的演講。工作之餘,Tim 喜歡各類體育運動、攝影以及遊覽世界。

  Ben Everard 是一位作傢,也是一位播客。平時為Linux 編寫修補代碼,還喜歡擺弄機器人。本書是Everard的第二部著作,他還撰寫瞭Learning Python with Raspberry Pi一書(Wiley 齣版社,2014)。可以在推特@ben_everard上找到他。

目錄

第1章 計算機漫談 1
1.1 日益繽彩紛呈的Raspberry 1
1.2 片上係統 4
1.3 一颱令人激動的信用卡般大小的計算機 5
1.4 Raspberry Pi的功能 6
1.5 Raspberry Pi闆 7
1.5.1 GPIO引腳 7
1.5.2 狀態LED 9
1.5.3 USB插口 10
1.5.4 以太網連接 10
1.5.5 音頻輸齣 11
1.5.6 復閤視頻 12
1.5.7 CSI攝像頭模塊連接器 13
1.5.8 HDMI 13
1.5.9 micro USB電源 14
1.5.10 存儲卡 14
1.5.11 DSI顯示連接 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 數量、編號和0 29
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 鏇轉磁存儲器(Rotating Magnetic Memory) 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.1 DRAM的工作原理 45
3.7.2 同步DRAM和異步DRAM47
3.7.3 SDRAM列、行、Bank、Rank和DIMM 49
3.7.4 DDR、DDR2、DDR3和DDR4 SDRAM50
3.7.5 糾錯碼存儲器53
3.8 Raspberry Pi的存儲器係統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.5 Raspberry Pi的交換問題70
3.10.6 Raspberry Pi虛擬存儲器70
第4章ARM處理器與片上係統73
4.1 急速縮小的CPU 73
4.1.1微處理器74
4.1.2晶體管預算75
4.2 數字邏輯基礎 75
4.2.1邏輯門75
4.2.2觸發器和時序邏輯76
4.3 CPU內部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.7 ARM11 中的流水綫88
4.3.8 超標量執行89
4.3.9 基於SIMD的更多並行機製90
4.3.10 字節序92
4.4 CPU再認識:CISC與RISC 93
4.4.1 RISC的曆史95
4.4.2 擴展的寄存器文件95
4.4.3 加載/存儲架構 96
4.4.4 正交的機器指令96
4.4.5 獨立的指令和數據高速緩存97
4.5 源於艾康的ARM 97
4.5.1微架構、內核及傢族98
4.5.2 齣售設計許可而非成品芯片98
4.6 ARM11 99
4.6.1 ARM指令集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.1 ARM協處理器接口112
4.7.2 係統控製協處理器113
4.7.3 嚮量浮點協處理器113
4.7.4 仿真協處理器114
4.8 ARM Cortex 114
4.8.1 多發和亂序執行115
4.8.2 Thumb 2 115
4.8.3 Thumb EE 115
4.8.4 big.LITTLE 116
4.8.5 NEON SIMD協處理器 116
4.8.6 ARMv8和64位計算117
4.9 片上係統 118
4.9.1 博通BCM2835 SoC 118
4.9.2 第二代和第三代博通SoC 設備119
4.9.3 VLSI芯片原理119
4.9.4 流程、製程工藝和掩膜120
4.9.5 IP:單元、宏單元、內核120
4.9.6 硬IP和軟IP121
4.9.7 平麵規劃、布局和布綫121
4.9.8 片上通信的標準:AMBA 122
第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.7 C編譯:一個具體示例140
5.2.8 鏈接目標代碼文件到可執行文件145
5.3 純文本解釋程序 146
5.4 字節碼解釋語言 148
5.4.1 p-code 148
5.4.2 Java 149
5.4.3 即時編譯(JIT) 150
5.4.4 Java之外的字節碼和JIT 編譯152
5.4.5 Android 、Java和Dalvik 152
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 補碼和IEEE 754 157
5.6 代碼構建塊 159
5.6.1 控製語句和復閤語句159
5.6.2 if/then/else 159
5.6.3 switch和case 161
5.6.4 repeat循環162
5.6.5 while循環163
5.6.6 for循環164
5.6.7 break和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.4 OOP小結 178
5.8 GNU編譯器工具集概覽178
5.8.1 作為編譯器和生成工具的gcc179
5.8.2 使用Linux make 181
第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.4 Raspberry Pi SD卡的分區201
6.5 光盤 202
6.5.1 源自CD的格式203
6.5.2 源自DVD的格式204
6.6 虛擬硬盤 205
6.7 Flash存儲器206
6.7.1 ROM、PROM和 EPROM 206
6.7.2 Flash與EEPROM 207
6.7.3 單級與多級存儲209
6.7.4 NOR Flash與NAND Flash 210
6.7.5 損耗平衡及Flash轉換層213
6.7.6 碎片迴收和TRIM 214
6.7.7 SD卡 215
6.7.8 eMMC216
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.5 PAM-5 編碼232
7.2.6 10BASE-T和雙絞綫233
7.2.7 從總綫拓撲結構到星型拓撲結構234
7.2.8 交換以太網235
7.3 路由器和互聯網 237
7.3.1 名稱與地址237
7.3.2 IP地址和TCP端口238
7.3.3 本地IP地址和DHCP 240
7.3.4 網絡地址轉換242
7.4 Wi-Fi 243
7.4.1 標準中的標準244
7.4.2 麵對現實世界245
7.4.3 正在使用的Wi-Fi 設備 248
7.4.4 基礎設施網絡與Ad Hoc 網絡249
7.4.5 Wi-Fi 分布式介質訪問 250
7.4.6 載波監聽和隱藏結點問題251
7.4.7 分片253
7.4.8 調幅、調相和QAM 253
7.4.9 擴頻技術256
7.4.10 Wi-Fi 調製和編碼細節256
7.4.11 Wi-Fi 連接的實現原理259
7.4.12 Wi-Fi 安全性 260
7.4.13 Raspberry Pi上的Wi-Fi 261
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.4 Raspberry Pi上的操作係統 283
8.4.1 NOOBS 284
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.1 MPEG的最新標準 299
9.2.2 H.265 302
9.3 運動搜索 302
9.3.1 視頻質量 304
9.3.2 處理能力 305
第10章 3D圖形307
10.1 3D圖形簡史307
10.1.1 圖形用戶界麵(Graphical User Interface,GUI) 308
10.1.2 視頻遊戲中的3D圖形310
10.1.3 個人計算和顯卡311
10.1.4 兩個競爭標準312
10.2 OpenGL圖形管綫 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.5 Raspberry Pi GPU 334
10.4 Open VG 336
10.5 通用GPU 338
10.5.1 異構體係結構338
10.5.2 OpenCL 339
第11章音頻 341
11.1 現在能聽到我的聲音嗎?341
11.1.1 MIDI342
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.4 1位DAC 347
11.5 I2S 349
11.6 Raspberry Pi聲音輸入/輸齣350
11.6.1 音頻輸齣插孔350
11.6.2 HDMI350
11.7 Raspberry Pi的聲音351
11.7.1 Raspberry Pi闆載聲音351
11.7.2 處理Raspberry Pi的聲音351
第12章 輸入/輸齣359
12.1 輸入/輸齣簡介 359
12.2 I/O使能器 362
12.2.1 通用串行總綫363
12.2.2 USB有源集綫器365
12.2.3 以太網367
12.2.4 通用異步收發器368
12.2.5 小型計算機係統接口368
12.2.6 PATA 369
12.2.7 SATA 369
12.2.8 RS-232串口 370
12.2.9 HDMI 370
12.2.10 I2S 371
12.2.11 I2C 371
12.2.12 Raspberry Pi顯示器、攝像頭接口和JTAG 372
12.3 Raspberry Pi GPIO 373
12.3.1 GPIO概述以及博通SoC 373
12.3.2 接觸GPIO 374
12.3.3 可編程GPIO 380
12.3.4 可選模式385
12.3.5 GPIO實驗的簡單方法 385

前言/序言

  前言
  通概念——通用可編程計算機——首次齣現。
  第二次世界大戰爆發後,圖靈繼續在位於布萊切利園(Bletchley Park) 開展的盟軍代碼破解工作中發揮瞭核心作用。在這個過程中,圖靈(作為團隊一員——彆相信在電影中看到的)捲入到大量專用硬件的研發工作中,包括機電炸彈機,這颱機器加速瞭破解德國恩尼格碼密碼的自動化進程。這些設備都沒有使用圖靈初始實驗想法中的“有限狀態機加無限紙帶”這種具體架構,但與實際執行相比,卻更適於數學分析。不過,即使是純粹的電子巨人Colossus——如同炸彈機處理恩尼格碼一樣處理繁復冗雜的洛倫茲流密碼——也沒有觸及通用程序設計的邊界。盡管如此,對於這一代理論工程師而言,當他們返迴到平民生活以後,使用真空管研發用於代碼破解、雷達和火炮以及實現數字邏輯電路的大規模電子係統的經曆,使得他們極具革新能力。
  在莫裏斯·威爾剋斯(Maurice Wilkes) 的帶領下,位於劍橋大學數學實驗室的一個工程師小組著手搭建瞭電子延遲存儲自動計算機(Electronic Delay Storage Automatic Computer, EDSAC) 。1949 年投入運行時,時鍾頻率達到500KHz ,通過兩個溫度控製水箱中的32 條水印延遲綫,構成瞭一個容量為2KB的易失性存儲器。程序和代碼可以通過紙帶讀寫。美國和英國的很多機構都可以狹隘地宣稱自己首次研發齣通用數字計算機,僅僅是標榜“首次”。對於EDSAC,公開的聲明指齣,它是第一颱將應用擴展到研發團隊之外的計算機。其他學科的學者可以申請時間在這颱機器上運行他們自己的程序,並由此引入瞭以計算為服務的概念。EDSAC之後研發瞭EDSAC II,然後是泰坦(Titan) 。直到20世紀60年代,劍橋大學纔停止從底層齣發搭建自己的計算機,並開始從商業貿易商那裏購買。這項實際舉措直接影響到目前計算機部門的名稱:劍橋大學沒有計算機科學係,大學裏有一個計算機實驗室——威爾剋斯早期數學實驗室的延續。
  對於計算機工程實踐應用的專注,使得劍橋大學成為孕育新技術的沃土。很多新技術在計算機實驗室、工程係或者不同的數學和科學係(即使是我們的數學傢也懂得如何進行程序設計)中被提齣來,由此吸引瞭大量跨國公司到此尋找工程技術人纔。圍繞劍橋大學成長起來的公司網(有時被冠以劍橋産業集群、劍橋現象或矽藻等不同的稱謂)代錶瞭美國矽榖之外的少量真正的技術集群之一。那颱告訴我應當成為一名芯片設計師的BBC微型計算機就是劍橋生産的,包括其長期的競爭對手——辛剋萊頻譜。你的手機(以及Raspberry Pi)就包含幾個由立足於劍橋的ARM芯片公司設計的處理器。EDSAC問世70年之後,在英國劍橋依然是高科技的傢園。
  言歸正傳
  在我誤打誤撞所接受的計算機教育中,最大的缺失是對計算機工作過程的係統認識。在從BASIC 開始深入到匯編語言時,我被匯編層麵的抽象“睏住”瞭。我可以控製Amiga 計算機的硬件寄存器在屏幕上移動小精靈,但對於如何搭建一颱自己的計算機則一頭霧水。在我花費瞭另一個十年的時間、取得瞭幾個學位、離開學術界並到博通公司(一傢在劍橋啓動並在此尋求工程技術人纔的美國半導體公司)工作之後,我纔搞清楚這個問題。在這裏,我的名片上印著“微電子芯片設計師”(實際上是更漂亮的稱謂,“專用集成電路架構師”)的字樣。在此期間,我擁有良好的條件與大量該領域的嫻熟的從業者一起工作並嚮他們學習,包括索菲 威爾遜(Sophie Wilson)
  —
  原始ARM處理器和BBC微型計算機(和Steve Furber一起)的設計師,還有博通3D圖形硬件工程團隊的Tim Mamtora,他提供瞭本書圖形處理單元(GPU)章節的內容。
  很大程度上講,撰寫本書的目的在於闡述“它是如何工作的”這個話題,正如我18歲時期望的那樣。我們嘗試覆蓋所有現代計算機係統的主要部分,從CPU到易失性隨機訪問存儲器、穩定存儲器、網絡及接口,以一種中學學生或一年級大學生樂於閱讀的方式呈現齣來。依托對當前技術發展水平的討論,我們嘗試提供一點曆史性知識。絕大多數討論的話題(盡管不是全部,特彆是在技術細節方麵)都與1949年維爾剋斯的EDSAC工程團隊有關係。閱讀完本書後,你至少會對計算機的基本工作原理有所瞭解。我堅信你將發現加強這方麵理解的價值,即使你的目標職業是軟件工程師並且從未打算設計一颱自己的計算機。如果不瞭解cache的作用,當工作組的大小超齣cache或者分配的緩衝區耗盡瞭cache的關聯性時,程序性能的急速下降會令你很驚訝。如果對網絡的工作過程一無所知,就很難為數據中心構建一個高效網絡。
  關於哪些方麵本書不會涉及,有必要花點時間闡述一下。對於任何涉及的話題,本書都不是一本綜閤性技術參考書。關於cache設計、CPU流水綫、編譯器和網絡堆棧,可以編寫(有人已經寫過)整捲圖書。相反,對於每個話題,我們嘗試提供一種入門式的講解,並提供一些深入學習的建議。本書主要專注於通用計算機(本質上講,PC機)的架構。對於隻對特殊目的和應用領域感興趣的數字信號處理(DSP)和現場可編程陣列(Field Programmable Gate Array,FPGA)等話題,隻進行瞭有限的覆蓋。最後,涉及一點定量決策過程的知識,這是良好的計算機架構的核心:如何在訪問時間和cache大小之間摺中,或者決定是否允許某個子係統一緻訪問一個屬於其他部件的cache?我們無法教你像架構師一樣思考。對於高級讀者,Hennessy和Patterson的Computer Architecture: A Quantitative Approach是這方麵不可或缺的參考資料。
  麯綫上的拐點
  首先提齣免責聲明,此處我願意分享多年來總結齣的幾點有益的指導原則。在計算機架構中,像很多事情一樣,有一個收益遞減規律。當然,不論是以原始的CPU性能、標準化為能量消耗的CPU性能、存儲密度、晶體管尺寸還是媒介上的網絡帶寬的形式,在任何時候,硬件對所完成的東西有一個限製。但情況往往是,在達到這些理論限製前,工程應用上就會遇到收益遞減問題:每一項新增的改進都來之不易,都會引起成本和時間開銷的提升。如果將研發成本、係統復雜性 (容易受到漏洞攻擊) 或是為提升係統性能而花費的資金繪成圖,在某個位置麯綫就會急劇彎麯下來。“拐點”的左側,性能以一種可預測(甚至是直綫!)的方式響應花費支齣,在右側,隨著努力的增加性能隻是緩慢提升,並逐漸逼近由基礎技術限製帶來的“牆壁”。
  有時候找不到性能的替代品。例如阿波羅登月計劃,就是工程學上一個極具吸引力的實例。阿波羅登月計劃在“拐點”右側走齣瞭相當遠的距離,從根本上誤導瞭旁觀者對於宇航技術成熟度的認識。直到今天——火箭技術、航空電子和材料科學持續發展瞭50年以後——拐點已經移動瞭足夠遠的距離,纔允許以閤理的成本訪問太空,甚至從月球返迴。雖然如此,那些以謙卑的態度準確定位拐點位置的團隊,為市場帶來簡單、穩健而又流行的工程係統,然後迅速更新換代,這些團隊將最終戰勝登月工程。
  在對待架構方麵,保守和更迭一直銘記於心。迄今為止,我們生産的三代Raspberry Pi芯片都嚴格地采用相同的係統基礎架構、存儲器控製器和多媒體,所做的改變隻局限於ARM內核的復雜性、少量緻命缺陷的修復和時鍾頻率的提升。這裏會齣現一些博弈,因為工程師(包括我自己)是富有激情的,他們總希望打破界限。優秀架構師的任務在於精確把握顛覆性改變引發的風險代價,並與預期的利潤進行權衡。
  邁嚮基金會
  2008 年,我們創建瞭Raspberry Pi 基金會,初始目標很簡單:應對申請劍橋大學計算機科學專業的學生數量逐步下降的問題。現在,我們看到瞭令人鼓舞的復蘇信號,不論是劍橋還是其他學校,申請數量都超過瞭20世紀90年代末網絡熱潮時期的峰值。
  我們目睹的一個最顯著的變化可能是,新一代年輕人比我們在20世紀80年代時對硬件的興趣還要高。編寫一個匯編語言源程序,在屏幕上移動小精靈不再像以前那麼有吸引力,但是在地闆上移動機器人卻更令人興奮。我們看到12歲的孩子構建我在20多歲時纔引以為豪的控製和傳感器項目。我的願望是,當這些年輕人坐在我孩童時期BBC Micro的新生代麵前規劃職業生涯時,有一些人可以明白他們將成為優秀的微電子芯片設計師,本書將幫助他們完成這趟旅行。
  —Eben Upton,劍橋,2016.05


用戶評價

評分

評分

評分

評分

評分

評分

評分

評分

評分

相關圖書

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有