- ホーム
 - > 洋書
 - > 英文書
 - > Computer / General
 
Full Description
Use your Raspberry Pi to get smart about computing fundamentals
 In the 1980s, the tech revolution was kickstarted by a flood of relatively inexpensive, highly programmable computers like the Commodore. Now, a second revolution in computing is beginning with the Raspberry Pi. Learning Computer Architecture with the Raspberry Pi is the premier guide to understanding the components of the most exciting tech product available. Thanks to this book, every Raspberry Pi owner can understand how the computer works and how to access all of its hardware and software capabilities.
 Now, students, hackers, and casual users alike can discover how computers work with Learning Computer Architecture with the Raspberry Pi. This book explains what each and every hardware component does, how they relate to one another, and how they correspond to the components of other computing systems. You'll also learn how programming works and how the operating system relates to the Raspberry Pi's physical components.
 
Co-authored by Eben Upton, one of the creators of the Raspberry Pi, this is a companion volume to the Raspberry Pi User Guide
An affordable solution for learning about computer system design considerations and experimenting with low-level programming
Understandable descriptions of the functions of memory storage, Ethernet, cameras, processors, and more
Gain knowledge of computer design and operation in general by exploring the basic structure of the Raspberry Pi
 The Raspberry Pi was created to bring forth a new generation of computer scientists, developers, and architects who understand the inner workings of the computers that have become essential to our daily lives. Learning Computer Architecture with the Raspberry Pi is your gateway to the world of computer system design.
Contents
Introduction 1 
 Cambridge 1
 Cut to the Chase 3
 The Knee in the Curve 4
 Forward the Foundation 5
 Chapter 1 The Shape of a Computer Phenomenon 7
 Growing Delicious, Juicy Raspberries 7
 System-on-a-Chip 10
 An Exciting Credit Card-Sized Computer 12
 What Does the Raspberry Pi Do? 14
 Meeting and Greeting the Raspberry Pi Board 14
 GPIO Pins 15
 Status LEDs 16
 USB Receptacles 18
 Ethernet Connection 18
 Audio Out 19
 Composite Video 21
 CSI Camera Module Connector 21
 HDMI 22
 Micro USB Power 22
 Storage Card 23
 DSI Display Connection 24
 Mounting Holes 25
 The Chips 25
 The Future 25
 Chapter 2 Recapping Computing 27
 The Cook as Computer 28
 Ingredients as Data 28
 Basic Actions 30
 The Box That Follows a Plan 31
 Doing and Knowing 31
 Programs are Data 32
 Memory 33
 Registers 34
 The System Bus 36
 Instruction Sets 36
 Voltages, Numbers and Meaning 37
 Binary: Counting in 1s and 0s 37
 The Digit Shortage 40
 Counting and Numbering and 0 40
 Hexadecimal as a Shorthand for Binary 41
 Doing Binary and Hexadecimal Arithmetic 43
 Operating Systems: The Boss of the Box 44
 What an Operating System Does 44
 Saluting the Kernel 46
 Multiple Cores 46
 Chapter 3 Electronic Memory 47
 There Was Memory Before There Were Computers 47
 Rotating Magnetic Memory 48
 Magnetic Core Memory 50
 How Core Memory Works 50
 Memory Access Time 52
 Static Random Access Memory (SRAM) 53
 Address Lines and Data Lines 54
 Combining Memory Chips into Memory Systems 56
 Dynamic Random Access Memory (DRAM) 59
 How DRAM Works 60
 Synchronous vs. Asynchronous DRAM 62
 SDRAM Columns, Rows, Banks, Ranks and DIMMs 64
 DDR, DDR2 DDR3 and DDR4 SDRAM 66
 Error-Correcting Code (ECC) Memory 69
 The Raspberry Pi Memory System 70
 Power Reduction Features 70
 Ball-Grid Array Packaging 71
 Cache 72
 Locality of Reference 72
 Cache Hierarchy 72
 Cache Lines and Cache Mapping 74
 Direct Mapping 76
 Associative Mapping 78
 Set-Associative Cache 79
 Writing Cache Back to Memory 81
 Virtual Memory 81
 The Virtual Memory Big Picture 82
 Mapping Virtual to Physical 83
 Memory Management Units: Going Deeper 84
 Multi-Level Page Tables and the TLB 88
 The Raspberry Pi Swap Problem 88
 Watching Raspberry Pi Virtual Memory 90
 Chapter 4 ARM Processors and Systems-on-a-Chip 93
 The Incredible Shrinking CPU 93
 Microprocessors 94
 Transistor Budgets 95
 Digital Logic Primer 95
 Logic Gates 96
 Flip-Flops and Sequential Logic 97
 Inside the CPU 99
 Branching and Flags 101
 The System Stack 102
 System Clocks and Execution Time 105
 Pipelining 106
 Pipelining in Detail 108
 Deeper Pipelines and Pipeline Hazards 109
 The ARM11 Pipeline 112
 Superscalar Execution 113
 More Parallelism with SIMD 115
 Endianness 118
 Rethinking the CPU: CISC vs. RISC 119
 RISC's Legacy 121
 Expanded Register Files 122
 Load/Store Architecture 122
 Orthogonal Machine Instructions 123
 Separate Caches for Instructions and Data 123
 ARMs from Little Acorns Grow 124
 Microarchitectures, Cores and Families 125
 Selling Licenses Rather Than Chips 125
 ARM11 126
 The ARM Instruction Set 126
 Processor Modes 129
 Modes and Registers 131
 Fast Interrupts 137
 Software Interrupts 137
 Interrupt Priority 138
 Conditional Instruction Execution 139
 Coprocessors 142
 The ARM Coprocessor Interface 143
 The System Control Coprocessor 143
 The Vector Floating Point (VFP) Coprocessor 144
 Emulating Coprocessors 145
 ARM Cortex 145
 Multiple-Issue and Out-Of-Order Execution 146
 Thumb 2 147
 Thumb EE 147
 big.LITTLE 147
 The NEON Coprocessor for SIMD 148
 ARMv8 and 64-Bit Computing 148
 Systems on a Single Chip 150
 The Broadcom BCM2835 SoC 150
 Broadcom's Second- and Third-Generation SoC Devices 151
 How VLSI Chips Happen 151
 Processes, Geometries and Masks 152
 IP: Cells, Macrocells and Cores 153
 Hard and Soft IP 154
 Floorplanning, Layout and Routing 154
 Standards for On-Chip Communication: AMBA 155
 Chapter 5 Programming 159
 Programming from a Height 159
 The Software Development Process 160
 Waterfall vs. Spiral vs. Agile 162
 Programming in Binary 165
 Assembly Language and Mnemonics 166
 High-Level Languages 167
 Après BASIC, Le Deluge 170
 Programming Terminology 171
 How Native-Code Compilers Work 173
 Preprocessing 174
 Lexical Analysis 175
 Semantic Analysis 175
 Intermediate Code Generation 176
 Optimisation 176
 Target Code Generation 176
 Compiling C: A Concrete Example 177
 Linking Object Code Files to Executable Files 183
 Pure Text Interpreters 184
 Bytecode Interpreted Languages 186
 P-Code 186
 Java 187
 Just-In-Time (JIT) Compilation 189
 Bytecode and JIT Compilation Beyond Java 191
 Android, Java and Dalvik 191
 Data Building Blocks 192
 Identifiers, Reserved Words, Symbols and Operators 192
 Values, Literals and Named Constants 193
 Variables, Expressions and Assignment 193
 Types and Type Definitions 194
 Static and Dynamic Typing 196
 Two's Complement and IEEE 754 198
 Code Building Blocks 200
 Control Statements and Compound Statements 200
 If/Then/Else 200
 Switch and Case 202
 Repeat Loops 205
 While Loops 205
 For Loops 207
 The Break and Continue Statements 208
 Functions 210
 Locality and Scope 211
 Object-Oriented Programming 214
 Encapsulation 217
 Inheritance 219
 Polymorphism 221
 OOP Wrapup 224
 A Tour of the GNU Compiler Collection Toolset 224
 gcc as Both Compiler and Builder 225
 Using Linux Make 228
 Chapter 6 Non-Volatile Storage 231
 Punched Cards and Tape 232
 Punched Cards 232
 Tape Data Storage 232
 The Dawn of Magnetic Storage 235
 Magnetic Recording and Encoding Schemes 236
 Flux Transitions 237
 Perpendicular Recording 238
 Magnetic Disk Storage 240
 Cylinders, Tracks and Sectors 240
 Low-Level Formatting 242
 Interfaces and Controllers 244
 Floppy Disk Drives 246
 Partitions and File Systems 247
 Primary Partitions and Extended Partitions 247
 File Systems and High-Level Formatting 249
 The Future: GUID Partition Tables (GPTs) 249
 Partitions on the Raspberry Pi SD Card 250
 Optical Discs 252
 CD-Derived Formats 254
 DVD-Derived Formats 254
 Ramdisks 255
 Flash Storage 257
 ROMs, PROMs and EPROMs 257
 Flash as EEPROM 258
 Single-Level vs. Multi-Level Storage 260
 NOR vs. NAND Flash 261
 Wear Levelling and the Flash Translation Layer 265
 Garbage Collection and TRIM 267
 SD Cards 268
 eMMC 270
 The Future of Non-Volatile Storage 271
 Chapter 7 Wired and Wireless Ethernet 273
 The OSI Reference Model for Networking 274
 The Application Layer 276
 The Presentation Layer 276
 The Session Layer 278
 The Transport Layer 278
 The Network Layer 279
 The Data Link Layer 281
 The Physical Layer 282
 Ethernet 282
 Thicknet and Thinnet 283
 The Basic Ethernet Idea 283
 Collision Detection and Avoidance 285
 Ethernet Encoding Systems 286
 PAM-5 Encoding 290
 10BASE-T and Twisted-Pair Cabling 291
 From Bus Topology to Star Topology 292
 Switched Ethernet 293
 Routers and the Internet 296
 Names vs. Addresses 296
 IP Addresses and TCP Ports 297
 Local IP Addresses and DHCP 300
 Network Address Translation 302
 Wi-Fi 304
 Standards within Standards 305
 Facing the Real World 305
 Wi-Fi Equipment in Use 309
 Infrastructure Networks vs. Ad Hoc Networks 311
 Wi-Fi Distributed Media Access 312
 Carrier Sense and the Hidden Node Problem 314
 Fragmentation 315
 Amplitude Modulation, Phase Modulation and QAM 316
 Spread-Spectrum Techniques 319
 Wi-Fi Modulation and Coding in Detail 320
 How Wi-Fi Connections Happen 323
 Wi-Fi Security 325
 Wi-Fi on the Raspberry Pi 326
 Even More Networking 329
 Chapter 8 Operating Systems 331
 Introduction to Operating Systems 333
 History of Operating Systems 333
 The Basics of Operating Systems 336
 The Kernel: The Basic Facilitator of Operating Systems 343
 Operating System Control 344
 Modes 345
 Memory Management 346
 Virtual Memory 347
 Multitasking 347
 Disk Access and File Systems 348
 Device Drivers 349
 Enablers and Assistants to the Operating System 349
 Waking Up the OS 349
 Firmware 353
 Operating Systems for Raspberry Pi 354
 NOOBS 354
 Third-Party Operating Systems 356
 Other Available Operating Systems 356
 Chapter 9 Video Codecs and Video Compression 359
 The First Video Codecs 360
 Exploiting the Eye 361
 Exploiting the Data 363
 Understanding Frequency Transform 367
 Using Lossless Encoding Techniques 371
 Changing with the Times 373
 The Latest Standards from MPEG 374
 H.265 378
 Motion Search 378
 Video Quality 381
 Processing Power 382
 Chapter 10 3D Graphics 383
 A Brief History of 3D Graphics 383
 The Graphical User Interface (GUI) 384
 3D Graphics in Video Games 386
 Personal Computing and the Graphics Card 387
 Two Competing Standards 390
 The OpenGL Graphics Pipeline 391
 Geometry Specification and Attributes 393
 Geometry Transformation 396
 Lighting and Materials 400
 Primitive Assembly and Rasterisation 403
 Pixel Processing (Fragment Shading) 405
 Texturing 407
 Modern Graphics Hardware 411
 Tiled Rendering 411
 Geometry Rejection 413
 Shading 415
 Caching 416
 Raspberry Pi GPU 417
 Open VG 421
 General Purpose GPUs 423
 Heterogeneous Architectures 423
 OpenCL 425
 Chapter 11 Audio 427
 Can You Hear Me Now? 427
 MIDI 428
 Sound Cards 428
 Analog vs. Digital 429
 Sound and Signal Processing 430
 Editing 431
 Compression 431
 Recording with Effects 432
 Encoding and Decoding Information for Communication 433
 1-Bit DAC 434
 I2S 436
 Raspberry Pi Sound Input/Output 437
 Audio Output Jack 437
 HDMI 438
 Sound on the Raspberry Pi 438
 Raspberry Pi Sound on Board 439
 Manipulating Sound on the Raspberry Pi 439
 Chapter 12 Input/Output 447
 Introducing Input/Output 448
 I/O Enablers 451
 Universal Serial Bus 452
 USB Powered Hubs 455
 Ethernet 457
 Universal Asynchronous Receiver/Transmitters 458
 Small Computer Systems Interface 459
 Parallel ATA 459
 Serial Advanced Technology Attachment 460
 RS-232 Serial 460
 High Definition Media Interface 461
 I2S 462
 I2C 463
 Raspberry Pi Display, Camera Interface and JTAG 464
 Raspberry Pi GPIO 464
 GPIO Overview and the Broadcom SoC 465
 Meeting the GPIO 466
 Programming GPIO 473
 Alternative Modes 479
 GPIO Experimentation the Easy Way 480
 Index 481

              
              

