使用Raspberry Pi学习计算机体系结构

使用Raspberry Pi学习计算机体系结构 pdf epub mobi txt 电子书 下载 2026

出版者:清华大学出版社
作者:Eben Upton
出品人:
页数:404
译者:张龙杰 杨玫
出版时间:2017-11-30
价格:79.80元
装帧:平装
isbn号码:9787302487173
丛书系列:
图书标签:
  • 计算机
  • 操作系统
  • 我的书单
  • 黑客
  • 编程艺术
  • cs
  • RaspberryPi
  • CSE
  • Raspberry Pi
  • 计算机体系结构
  • 嵌入式系统
  • 硬件
  • 教育
  • DIY
  • 学习
  • 电子工程
  • 计算机科学
  • 实践
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《使用Raspberry Pi学习计算机体系结构》能帮助读者

■ 了解Raspberry Pi每个部分的设计目的

■ 理解不同组件之间的交互方式

■ 深入了解系统设计的完整过程

■ 学习程序设计原理

■ 观察硬件和操作系统之间的相互作用

■ 深入研究ARM芯片背后的机制

■ 比较和对照不同的芯片,从ARM到Intel

计算机体系结构深度解析:从晶体管到操作系统 第一部分:数字逻辑与基础电路 本书旨在为读者构建一个坚实的基础,深入探讨现代计算机体系结构的核心构建模块。我们将从最底层的电子元件出发,逐步向上构建出复杂的数字系统。 第一章:二进制的基石与逻辑门 本章将详尽阐述计算机科学的语言——二进制系统。我们会探讨不同进制之间的转换(二进制、八进制、十六进制),以及如何用二进制表示有符号和无符号数,包括补码(Two's Complement)的原理与应用,这对于理解计算机如何处理负数至关重要。随后,我们将深入研究布尔代数,它是设计所有数字电路的数学基础。我们将详细分析基本逻辑门(AND, OR, NOT, XOR, NAND, NOR)的功能及其在电路图中的表示。更进一步,我们将探讨通用门(如NAND和NOR)如何作为构造所有其他逻辑功能的基石。本章还会介绍德摩根定律及其在逻辑表达式简化中的实际作用。 第二章:组合逻辑电路的设计与实现 基于第一章介绍的逻辑门,本章聚焦于组合逻辑电路——其输出仅依赖于当前的输入。我们将学习如何使用真值表和卡诺图(Karnaugh Maps)来简化复杂的逻辑表达式,这是优化硬件性能的关键步骤。详细分析和设计多路复用器(Multiplexers, MUX)和译码器(Decoders),它们是数据选择和地址解码的基础元件。此外,异或门阵列(XOR arrays)在奇偶校验电路中的应用也将被深入探讨。我们还将构建半加器(Half Adder)和全加器(Full Adder),并展示如何通过级联全加器来设计多位加法器,例如进位产生与进位旁路(Carry Lookahead)的原理,以提高运算速度。 第三章:时序逻辑电路与存储单元 与组合逻辑不同,时序逻辑电路的输出不仅取决于当前输入,还依赖于过去的输入状态,即它具有“记忆”功能。本章将重点解析触发器(Flip-Flops),特别是SR、D、JK和T触发器的结构、特性和时序图。我们将详细区分锁存器(Latches)和触发器(Edge-Triggered),并解释时钟信号在同步电路中的核心作用。接着,我们将研究如何利用触发器构建寄存器(Registers)来暂时存储数据,以及移位寄存器(Shift Registers)在数据并行传输和串行转换中的应用。反馈机制的引入使得我们能够设计有限状态机(Finite State Machines, FSMs),本章将用Mealy和Moore模型来设计和分析简单的状态机,例如序列检测器。 第四章:中等规模集成电路的应用 本章将把理论知识付诸实践,介绍如何利用标准的中等规模集成电路(MSI)芯片来快速构建复杂系统。我们将分析和使用诸如加法器芯片(如74283)、比较器、编码器和解码器芯片的内部工作原理和引脚配置。重点将放在如何使用这些现成的模块,通过外部连线快速搭建数据分配、算术运算单元(ALU的简化模型)以及状态控制逻辑,从而加速原型设计过程。 第二部分:数据通路与中央处理器(CPU)核心 在掌握了基本逻辑单元之后,本章将深入研究如何将这些单元组织起来,形成计算机的“大脑”——中央处理器。 第五章:算术逻辑单元(ALU)的设计 ALU是CPU中执行所有算术和逻辑运算的核心部件。本章将从零开始设计一个功能完备的ALU。我们将复习加法、减法(基于补码)的实现,并扩展到逻辑操作(AND, OR, NOT, XOR)和移位操作(逻辑移位、算术移位、循环移位)。设计过程中,我们将讨论如何设计控制逻辑,使得单个ALU能够根据外部控制信号(操作码)执行不同的功能。此外,我们将探讨溢出检测(Overflow Detection)的机制及其重要性。 第六章:CPU的数据通路与控制 本章将CPU的核心部件——数据通路(Datapath)进行详细剖析。数据通路包括寄存器堆(Register File)、ALU、内存接口以及数据在它们之间流动的总线结构。我们将解释数据通路中关键组件(如程序计数器PC、指令寄存器IR)的作用。随后,重点转向控制单元(Control Unit)的设计。我们将区分硬布线控制(Hardwired Control)和微程序控制(Microprogrammed Control)的优缺点。设计一个简单的单周期CPU模型,演示指令(如LOAD, ADD, JUMP)的取指、译码、执行和写回这五个阶段如何在一个时钟周期内完成数据流动的整个过程。 第七章:指令集架构(ISA)初探 指令集架构是硬件与软件之间的桥梁。本章将介绍ISA的基本概念,包括指令格式、操作码(Opcode)、寻址模式(Immediate, Direct, Indirect, Register, Indexed)。我们将对比面向栈(Stack-based)、面向寄存器(Register-based)和混合架构的特点。随后,我们将以一个简化的RISC(精简指令集计算机)架构为例,详细分析其指令集的设计哲学,解释为什么RISC架构通常在流水线设计中更具优势。本章还将探讨操作数和指令如何被编码和解码。 第三部分:存储系统与性能优化 现代计算机的性能瓶颈往往不在于CPU的计算速度,而在于数据存取速度。本章将系统性地探讨存储器的层次结构。 第八章:存储器层次结构与主存 我们将系统地梳理从寄存器到磁盘的存储层次结构。重点分析SRAM和DRAM的物理差异、读写时序和成本考量。本章将详述随机存取存储器(RAM)的工作原理,包括地址映射和数据组织方式。我们还会探讨只读存储器(ROM)的种类及其在固件存储中的角色。理解为什么这种层次结构是必需的,以及它如何通过局部性原理(Locality of Reference)来提升系统整体性能。 第九章:缓存存储器原理与设计 缓存(Cache)是连接高速CPU和相对慢速主存的关键。本章将深入解析缓存的工作机制。我们将详细分析三种主要的映射方式:直接映射(Direct Mapped)、全相联映射(Fully Associative)和组相联映射(Set-Associative)。针对每种映射方式,我们会探讨命中率(Hit Rate)的计算、替换策略(如LRU、FIFO)的选择,以及写操作的策略(Write-Through vs. Write-Back)。此外,我们还会讨论多级缓存(L1, L2, L3)的协同工作模式及其对性能的影响。 第十章:流水线技术与性能提升 为了最大限度地利用CPU的并行性,流水线(Pipelining)技术被广泛采用。本章将剖析经典的五级流水线模型(IF, ID, EX, MEM, WB)。我们将详细分析流水线操作中引入的结构冲突、数据冲突和控制冲突(分支预测)。重点在于如何使用转发/前馈(Forwarding/Bypassing)机制和分支延迟槽(Branch Delay Slots)来缓解这些冲突,从而提高指令吞吐量,并阐述指令级并行性(ILP)的基本概念。 第四部分:输入/输出系统与并行处理 第十一章:I/O系统与总线结构 本章将关注CPU如何与外部世界进行通信。我们将解析系统总线(地址总线、数据总线、控制总线)的结构和工作协议。详细介绍不同的I/O技术,包括程序控制I/O、中断驱动I/O和直接内存访问(DMA)。我们将分析DMA控制器的工作流程,解释它如何使数据传输绕过CPU,从而解放处理器资源。 第十二章:并行处理的基本概念 现代计算对性能的追求推动了并行计算的发展。本章将介绍并行性的不同维度。我们将区分位级并行、指令级并行(已在流水线中讨论)和任务级并行。重点解析Flynn的分类法(SISD, SIMD, MISD, MIMD)。本章还将简要介绍多核处理器的基本结构,以及数据并行处理(如SIMD指令集)在图形和科学计算中的应用前景。 附录:硬件描述语言基础 为辅助理解硬件设计,附录将简要介绍硬件描述语言(如VHDL或Verilog)的基本语法结构,并提供如何用这些语言描述简单的时序逻辑电路(如计数器)的示例代码。

作者简介

Eben Upton是Raspberry Pi基金会的创始人,也是该基金会旗下的贸易部门Raspberry Pi(贸易)有限公司的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 By Step一书。在Dr. Dobb’s Journal杂志上,Jeff连续四年撰写“Structured Programming”专栏,并在很多杂志上发表了大量技术性文章。1989年,Jeff和他的作家伙伴Keith Weiskamp发起成立了Coriolis Group,到1998年Coriolis Group已经成为美国亚利桑那州最大的图书出版商。Jeff对“强”人工智能表现出持久的兴趣,他的绝大部分科幻著作(包括The Cunning Blood和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
· · · · · · (收起)

读后感

评分

评分

评分

评分

评分

用户评价

评分

第六段评价: 这本书的名字,“使用 Raspberry Pi 学习计算机体系结构”,对我而言,是打开一扇通往计算机“心脏”的大门,而且这扇门是用一种非常容易接近的语言和工具来构建的。我一直以来都对计算机的底层是如何工作的,以及那些我们习以为常的软件背后隐藏着的硬件机制感到非常着迷。然而,传统的计算机体系结构书籍,往往因为其高度的理论性和抽象性,让我常常望而却步,感觉像是在阅读一本晦涩难懂的天书。我期望这本书能够打破这种隔阂,用 Raspberry Pi 这个实际的、可操作的硬件平台,将那些深奥的原理变得具体而生动。我希望它能够带领我从最基础的指令集架构(ISA)入手,详细解析 Raspberry Pi 上 ARM 处理器的运作方式,比如各种寄存器的功能、寻址模式,甚至可能是指令流水线(instruction pipeline)的工作原理。我特别期待书中能够提供一系列精心设计的实践项目,让我能够亲手编写一些简单的汇编代码,并观察 CPU 在执行这些代码时的状态变化,从而真正地“感受”到计算机的运算过程。Furthermore, I’m eager to understand how the operating system on the Raspberry Pi interacts with the hardware at a fundamental level. This might involve delving into concepts like memory management, including virtual memory and the role of the Memory Management Unit (MMU), and how interrupts are handled. The prospect of being able to experiment with these architectural features directly on a physical device, rather than just reading about them in abstract terms, is incredibly exciting. I envision the book guiding me through understanding cache memory, its levels, and how program design can impact cache performance. It’s the idea of demystifying the complex machinery of a computer by actively engaging with a tangible platform that truly appeals to me. This book promises not just to impart knowledge about computer architecture, but to foster a deep, intuitive understanding through hands-on exploration and experimentation.

评分

第五段评价: “使用 Raspberry Pi 学习计算机体系结构”,这个书名本身就透露出一种“学以致用”的强烈信号,对我这种动手能力强、喜欢通过实践来学习的人来说,简直是莫大的吸引力。我对计算机体系结构这个领域一直充满好奇,但坦白说,传统的教科书往往太过抽象,充斥着大量的理论模型和符号,读起来常常让人感觉云里雾里,难以消化。我希望这本书能够提供一个更直接、更具体的方式来理解这些概念,而 Raspberry Pi 这样一个小巧而功能强大的硬件平台,无疑是实现这一目标的绝佳载体。我期待这本书能够带领我深入到 Raspberry Pi 的内部世界,从处理器架构开始,比如 ARM 指令集是如何工作的,寄存器有哪些用途,以及指令的执行流程是怎样的。我希望能通过书中提供的项目,让我能够亲手编写一些简单的程序,并观察这些程序在 Raspberry Pi 硬件上的实际运行效果,从而更直观地理解诸如指令流水线、缓存机制以及内存管理等核心概念。I am particularly excited about the prospect of understanding how the software we write actually translates into physical operations on the hardware. For example, when dealing with memory, I hope the book will explain the role of the MMU and cache in detail, and perhaps even provide experiments to demonstrate their impact on program performance. The idea of being able to tinker with the hardware, perhaps by connecting external components to the GPIO pins and observing how the CPU interacts with them, is incredibly appealing. This could extend to understanding interrupt handling and how the system responds to external events. The book’s focus on a tangible platform like the Raspberry Pi suggests a departure from pure theory, offering a pathway to concrete comprehension. I envision learning about topics like instruction pipelining, branch prediction, and even the basic principles of memory hierarchy, not just as abstract ideas, but as elements I can manipulate and observe on a real device. This hands-on approach promises to make the complex world of computer architecture accessible and understandable, turning theoretical knowledge into practical mastery.

评分

第十段评价: “使用 Raspberry Pi 学习计算机体系结构”,这个书名就像是为那些渴望深入理解计算本质,但又被传统理论书籍的晦涩所困扰的人们点亮的一盏明灯。我一直对计算机的底层运作原理充满好奇,但过去的学习经历告诉我,仅仅阅读理论是远远不够的,动手实践才能真正地建立起深刻的理解。Raspberry Pi 的出现,为这种实践性的学习提供了一个绝佳的平台。我希望这本书能够以一种非常直观、可操作的方式,带领我走进计算机体系结构的殿堂。我期待书中能够详细介绍 Raspberry Pi 上 ARM 处理器的基本构造,包括指令集架构(ISA)、寄存器、内存管理单元(MMU)以及处理器流水线(pipeline)等核心概念。更重要的是,我希望能够通过书中提供的实际编程示例和硬件实验,让我能够亲身体验这些概念,比如编写一些简单的汇编程序,然后通过 Raspberry Pi 的硬件来观察指令的执行流程,理解数据如何在存储器和处理器之间流动。Furthermore, I'm particularly eager to see how the book explains concepts like cache memory, its hierarchy, and how program design can affect cache performance through practical demonstrations. The idea of being able to experiment with interrupt handling, understanding how the CPU responds to external signals from peripherals, or even exploring the boot process of the operating system on the Pi, all through hands-on activities, is incredibly motivating. This book promises to bridge the gap between abstract theory and concrete understanding by leveraging the power of a tangible, programmable device. It's about transforming the often daunting field of computer architecture into an accessible, engaging, and ultimately empowering learning journey.

评分

第八段评价: “使用 Raspberry Pi 学习计算机体系结构”,这个名字对我来说,意味着一扇通往计算本质的便捷之门。我一直都对计算机系统深层的运作机制非常好奇,但传统的计算机体系结构书籍,虽然内容严谨,却往往过于理论化,充满了枯燥的图表和抽象的术语,让人难以获得真正的理解。Raspberry Pi 的出现,则为这种学习方式注入了活力。我希望这本书能以一种更加生动、更具互动性的方式,带领我深入了解计算机体系结构的方方面面。我期待书中能够详细讲解 Raspberry Pi 所采用的 ARM 架构,包括指令集、处理器流水线、缓存机制以及内存管理等核心概念。我希望能通过实际的编程示例和硬件实验,让我能够亲手去搭建、去观察,从而更深刻地理解这些抽象的原理。例如,我希望能够通过编写一些底层代码,来模拟指令的执行过程,或者观察数据在内存和处理器之间的流动。Furthermore, I'm keen to explore how the operating system on the Raspberry Pi interacts with the hardware at a fundamental level. This might involve understanding interrupt handling, peripheral interfacing, and memory protection mechanisms. The idea of being able to experiment with these concepts on a physical device, seeing the direct impact of software on hardware behavior, is incredibly appealing. The book's focus on Raspberry Pi suggests a practical, project-based approach, which is precisely what I'm looking for. It promises to transform the often daunting field of computer architecture into an accessible and engaging exploration, empowering me to not just read about how computers work, but to truly understand and interact with their fundamental building blocks.

评分

第三段评价: 《使用 Raspberry Pi 学习计算机体系结构》这个书名,在我看来,简直是一把开启计算机奥秘之门的钥匙,而且是一把非常独特的钥匙。我一直对计算机是如何工作的,这个“幕后”的运行机制充满好奇。过去,我尝试阅读过一些计算机体系结构的教材,但那些书往往充斥着大量的学术术语和复杂的模型,让我感觉像是在仰望一座高不可攀的山峰,即使有心攀登,也常常因为缺乏有效的工具和方法而停滞不前。而 Raspberry Pi 的引入,无疑为我提供了一个非常接地气的切入点。我希望这本书能够带领我,用一种非常直观、甚至可以说是“玩”的方式,去理解那些曾经让我头疼的概念。我期待书中能够详细介绍 Raspberry Pi 上 ARM 处理器的基本架构,比如它的寄存器组、指令集以及寻址模式。我希望能通过实际的编程练习,比如编写一些简单的汇编代码,来观察 CPU 在执行这些代码时的状态变化,从而真正地“感受”到指令的执行过程,理解数据是如何在寄存器和内存之间传递的。Moreover, I’m particularly interested in how the book might explain the interaction between software and hardware at a fundamental level. For instance, when we talk about operating systems managing memory, how does that translate to the actual hardware of the Raspberry Pi? I'm hoping for explanations of concepts like memory management units (MMUs), virtual memory, and perhaps even cache coherence, all illustrated with practical examples using the Pi. The idea of being able to simulate or directly interact with these architectural features on a physical device is incredibly compelling. I envision scenarios where the book guides me through building simple hardware accelerators or understanding how peripheral devices, like sensors connected via the GPIO pins, communicate with the CPU. The prospect of demystifying complex topics like pipelining, out-of-order execution, or even basic processor design principles through hands-on experiments on a Raspberry Pi is what makes this book stand out. It’s not just about theoretical knowledge; it’s about gaining practical insights and building a tangible understanding of the computational engine that powers so much of our digital world. This book promises to transform abstract concepts into concrete experiences.

评分

第二段评价: 这本书的名字,"使用 Raspberry Pi 学习计算机体系结构",听起来就充满了实践的温度。我一直以来都对计算机内部是如何运作的感到好奇,但市面上很多相关的书籍,虽然内容详实,却往往过于理论化,充斥着大量的图表和公式,让我感觉像是隔着一层玻璃在观察,始终无法真正地“触摸”到计算机的心脏。我期待这本书能打破这种隔阂,将抽象的计算机体系结构概念,通过 Raspberry Pi 这个极具亲和力的硬件平台,变得鲜活起来。我希望它能够引导我一步一步地去理解,比如处理器是如何执行指令的,各种指令集是如何工作的,内存是如何组织和访问的,以及这些微小的电子元件是如何协同工作,最终构建出我们习以为常的计算世界。我特别设想,这本书会提供一系列实操项目,让我能够亲手搭建一些基础的计算模型,甚至能够编写一些简单的程序,通过 Raspberry Pi 的 GPIO 接口来控制一些外部设备,从而更直观地理解输入输出(I/O)的工作原理。我希望书中能够详细解释,当我们在 Raspberry Pi 上运行一个简单的 C 程序时,它背后究竟发生了哪些复杂的计算过程,从源代码到机器码,再到指令在 CPU 内部的执行,以及数据在内存和缓存之间是如何流动的。我期待能够深入了解,比如指令流水线(instruction pipeline)的工作机制,如何通过并行处理来提升性能,以及缓存(cache)的重要性,为什么它能显著加快数据访问速度。Furthermore, the book’s approach through Raspberry Pi suggests a journey into embedded systems architecture as well. I envision exploring how a compact, low-power device like the Raspberry Pi manages its resources efficiently. This might involve understanding the differences between various ARM cores used in different Raspberry Pi models, and how memory management is handled in a resource-constrained environment. The potential to delve into interrupt handling, understanding how the CPU responds to external events from peripherals, is also a significant draw. I’m keen to see if the book explains concepts like the memory-mapped I/O versus port-mapped I/O in a practical context using the Pi. The ability to visualize and experiment with these fundamental concepts, rather than just reading about them in textbooks, is precisely what makes this book so appealing to me. It promises a journey from abstract theory to concrete understanding, facilitated by a tool that makes computer architecture tangible and accessible.

评分

第九段评价: 《使用 Raspberry Pi 学习计算机体系结构》这个书名,对我来说,就像是为我量身定制的学习指南。我一直对计算机是如何工作的,特别是那些在屏幕背后默默运行的底层机制,充满了浓厚的兴趣,但以往阅读的很多体系结构书籍,都给我一种“纸上谈兵”的感觉,缺乏实际的动手操作,让我难以真正消化和吸收。Raspberry Pi 的引入,则让我看到了将理论与实践完美结合的希望。我期待这本书能够带领我,从最基础的层面,深入了解 Raspberry Pi 上 ARM 处理器的架构,比如指令集、寄存器、内存模型以及数据通路。我希望能通过书中提供的一系列精心设计的实验和项目,让我能够亲手去验证这些概念,比如编写简单的汇编程序,然后通过 Raspberry Pi 的硬件来观察指令的执行过程,理解数据是如何在不同组件之间传递的。Moreover, I’m particularly interested in how the book might explain concepts like pipelining, instruction level parallelism, and cache coherence in a practical and tangible way. The ability to experiment with these architectural features on a real device, and perhaps even design small experiments to measure their performance impact, is a huge draw. I envision the book guiding me through understanding the intricacies of memory hierarchy, from registers to main memory, and how effective memory management is crucial for performance. The prospect of demystifying the complex world of computer architecture by actively engaging with a physical, programmable computer like the Raspberry Pi is incredibly exciting. This book promises to provide a hands-on, immersive learning experience that transforms abstract theoretical knowledge into concrete, usable understanding.

评分

第一段评价: 这本书的名字叫“使用 Raspberry Pi 学习计算机体系结构”,单看书名就激起了我极大的好奇心。我一直对计算机的底层是如何运作的充满兴趣,但传统的计算机体系结构书籍往往充斥着抽象的概念和复杂的图表,读起来颇为枯燥,也常常让人望而却步。而“学习计算机体系结构”这个目标,本身就带着一种挑战性,它要求我们去理解处理器是如何工作的,指令是如何被执行的,内存是如何管理的,以及这些组件之间是如何协同运作以支撑起我们日常使用的操作系统和应用程序的。我对这本书的期望,是它能够以一种更具象、更可操作的方式来解析这些深奥的原理。Raspberry Pi 的出现,则为这种学习方式提供了绝佳的平台。我设想,这本书会带领我通过实际的硬件操作,去“感受”和“触碰”计算机体系结构的概念。也许会从最基础的指令集架构(ISA)开始,解释ARM架构在Raspberry Pi上的具体实现,比如不同的寄存器功能、寻址模式,甚至是流水线的工作原理。我期待书中会提供一系列精心设计的实验,让我能够编写简单的汇编代码,观察CPU在执行这些代码时的状态变化,比如程序计数器(PC)的更新,数据如何在寄存器和内存之间流动。Furthermore, I hope the book goes beyond mere assembly language programming. It might delve into how the operating system, likely a Linux distribution on the Raspberry Pi, interacts with the hardware at a deeper level. This could involve understanding memory management units (MMUs), cache hierarchies, and perhaps even the boot process. The sheer practicality of using a physical device like the Raspberry Pi is a huge draw. Instead of just reading about virtual memory, I could potentially experiment with allocating and deallocating memory on the Pi and observe its performance implications. The prospect of debugging code at a hardware level, understanding segmentation faults not just as an error message but as a consequence of mismanaged memory access, is incredibly appealing. I'm also eager to see if the book explores the nuances of I/O operations and how peripherals are interfaced with the CPU, perhaps even touching upon interrupt handling. The idea of demystifying the black box of computing by actively engaging with a tangible, programmable computer is what truly excites me about this title. It promises not just theoretical knowledge, but a hands-on mastery of the very foundations of computation.

评分

第七段评价: 《使用 Raspberry Pi 学习计算机体系结构》——这个书名光听着就让我眼前一亮。我长期以来对计算机是如何工作的,尤其是其内在的硬件机制,充满了浓厚的兴趣,但市面上绝大多数的体系结构书籍,往往过于理论化,充斥着大量的抽象概念和公式,读起来索然无味,难以深入理解。我非常渴望能够找到一种更直观、更具实践性的学习方法,而 Raspberry Pi 的出现,恰恰为我提供了这样一个绝佳的平台。我期待这本书能够带领我,用一种“玩中学”的方式,去探索计算机体系结构的核心奥秘。我希望书中能够详细介绍 Raspberry Pi 上 ARM 处理器的基本架构,包括指令集、寄存器、内存管理单元(MMU)等关键组件的工作原理。更重要的是,我希望能够通过书中提供的实际操作和编程练习,让我能够亲手去验证这些理论知识,比如编写一些简单的程序,并观察它们在 Raspberry Pi 硬件上的执行过程,从而直观地理解指令的执行、数据的流动以及内存的访问。Moreover, I’m particularly interested in how the book might explain advanced concepts like pipelining, out-of-order execution, and cache memory in a way that is understandable and demonstrable on the Raspberry Pi. The ability to experiment with these architectural features, perhaps by observing performance differences between different code implementations or by interacting with peripherals via the GPIO pins, would be invaluable. The prospect of demystifying the black box of computing by getting my hands dirty with a real piece of hardware is incredibly motivating. This book promises to bridge the gap between theoretical knowledge and practical understanding, making the often daunting subject of computer architecture an engaging and accessible journey of discovery.

评分

第四段评价: “使用 Raspberry Pi 学习计算机体系结构”,这个书名一下子就击中了我的兴趣点。我一直对计算机的底层运作原理非常着迷,但很多传统的计算机体系结构书籍,虽然内容严谨,却总是显得过于枯燥和理论化,读起来总是让人提不起精神,更别提真正理解了。而 Raspberry Pi 的加入,则为我提供了一种全新的学习思路。我憧憬着这本书能够以一种非常生动、实践导向的方式,将那些抽象的体系结构概念变得触手可及。我期待它能够带领我深入了解 Raspberry Pi 所采用的 ARM 架构,比如它的指令集、寄存器以及流水线的工作方式。我希望通过书中提供的案例和实验,我能够亲手编写一些底层的代码,甚至是一些汇编语言的程序,然后通过 Raspberry Pi 的硬件来观察这些程序的执行过程,从而更直观地理解 CPU 如何处理指令,数据如何在内存和处理器之间流动。Furthermore, I’m particularly keen to see how the book bridges the gap between high-level programming and the underlying hardware. For instance, when we talk about memory management, I hope the book will explain how the Raspberry Pi’s Memory Management Unit (MMU) actually works, perhaps even demonstrating techniques for optimizing memory access patterns through practical examples. The idea of understanding cache memory not just as a theoretical concept but as a tangible component that can be influenced by program design is very exciting. I envision scenarios where the book guides me to build simple logic circuits or explore the intricacies of the bus architecture on the Raspberry Pi, making the invisible world of computer architecture visible and interactive. The prospect of experimenting with interrupt handling, understanding how the CPU responds to external signals from peripherals, or even delving into the boot process of the operating system on the Pi, all through hands-on activities, is incredibly motivating. This book promises to transform the often daunting subject of computer architecture into an engaging and empowering learning experience, allowing me to truly grasp the fundamental building blocks of computation.

评分

入门读物

评分

省略得当

评分

角度新颖

评分

角度新颖

评分

入门读物

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

© 2026 book.quotespace.org All Rights Reserved. 小美书屋 版权所有