{"product_id":"learning-computer-architecture-with-raspberry-pi-isbn-9781119183938","title":"Learning Computer Architecture with Raspberry Pi","description":"\u003cp\u003e\u003cb\u003eUse your Raspberry Pi to get smart about computing fundamentals\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIn 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. \u003ci\u003eLearning Computer Architecture with the Raspberry Pi\u003c\/i\u003e 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.\u003c\/p\u003e \u003cp\u003eNow, students, hackers, and casual users alike can discover how computers work with \u003ci\u003eLearning Computer Architecture with the Raspberry Pi\u003c\/i\u003e. 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.\u003c\/p\u003e \u003cul\u003e \u003cli\u003eCo-authored by Eben Upton, one of the creators of the Raspberry Pi, this is a companion volume to the \u003ci\u003eRaspberry Pi User Guide\u003c\/i\u003e\n\u003c\/li\u003e \u003cli\u003eAn affordable solution for learning about computer system design considerations and experimenting with low-level programming\u003c\/li\u003e \u003cli\u003eUnderstandable descriptions of the functions of memory storage, Ethernet, cameras, processors, and more\u003c\/li\u003e \u003cli\u003eGain knowledge of computer design and operation in general by exploring the basic structure of the Raspberry Pi\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eThe 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. \u003ci\u003eLearning Computer Architecture with the Raspberry Pi\u003c\/i\u003e is your gateway to the world of computer system design.\u003c\/p\u003e \u003cp\u003e\u003cb\u003eIntroduction 1 \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCambridge 1\u003c\/p\u003e \u003cp\u003eCut to the Chase 3\u003c\/p\u003e \u003cp\u003eThe Knee in the Curve 4\u003c\/p\u003e \u003cp\u003eForward the Foundation 5\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1 The Shape of a Computer Phenomenon 7\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGrowing Delicious, Juicy Raspberries 7\u003c\/p\u003e \u003cp\u003eSystem-on-a-Chip 10\u003c\/p\u003e \u003cp\u003eAn Exciting Credit Card-Sized Computer 12\u003c\/p\u003e \u003cp\u003eWhat Does the Raspberry Pi Do? 14\u003c\/p\u003e \u003cp\u003eMeeting and Greeting the Raspberry Pi Board 14\u003c\/p\u003e \u003cp\u003eGPIO Pins 15\u003c\/p\u003e \u003cp\u003eStatus LEDs 16\u003c\/p\u003e \u003cp\u003eUSB Receptacles 18\u003c\/p\u003e \u003cp\u003eEthernet Connection 18\u003c\/p\u003e \u003cp\u003eAudio Out 19\u003c\/p\u003e \u003cp\u003eComposite Video 21\u003c\/p\u003e \u003cp\u003eCSI Camera Module Connector 21\u003c\/p\u003e \u003cp\u003eHDMI 22\u003c\/p\u003e \u003cp\u003eMicro USB Power 22\u003c\/p\u003e \u003cp\u003eStorage Card 23\u003c\/p\u003e \u003cp\u003eDSI Display Connection 24\u003c\/p\u003e \u003cp\u003eMounting Holes 25\u003c\/p\u003e \u003cp\u003eThe Chips 25\u003c\/p\u003e \u003cp\u003eThe Future 25\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2 Recapping Computing 27\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Cook as Computer 28\u003c\/p\u003e \u003cp\u003eIngredients as Data 28\u003c\/p\u003e \u003cp\u003eBasic Actions 30\u003c\/p\u003e \u003cp\u003eThe Box That Follows a Plan 31\u003c\/p\u003e \u003cp\u003eDoing and Knowing 31\u003c\/p\u003e \u003cp\u003ePrograms are Data 32\u003c\/p\u003e \u003cp\u003eMemory 33\u003c\/p\u003e \u003cp\u003eRegisters 34\u003c\/p\u003e \u003cp\u003eThe System Bus 36\u003c\/p\u003e \u003cp\u003eInstruction Sets 36\u003c\/p\u003e \u003cp\u003eVoltages, Numbers and Meaning 37\u003c\/p\u003e \u003cp\u003eBinary: Counting in 1s and 0s 37\u003c\/p\u003e \u003cp\u003eThe Digit Shortage 40\u003c\/p\u003e \u003cp\u003eCounting and Numbering and 0 40\u003c\/p\u003e \u003cp\u003eHexadecimal as a Shorthand for Binary 41\u003c\/p\u003e \u003cp\u003eDoing Binary and Hexadecimal Arithmetic 43\u003c\/p\u003e \u003cp\u003eOperating Systems: The Boss of the Box 44\u003c\/p\u003e \u003cp\u003eWhat an Operating System Does 44\u003c\/p\u003e \u003cp\u003eSaluting the Kernel 46\u003c\/p\u003e \u003cp\u003eMultiple Cores 46\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3 Electronic Memory 47\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThere Was Memory Before There Were Computers 47\u003c\/p\u003e \u003cp\u003eRotating Magnetic Memory 48\u003c\/p\u003e \u003cp\u003eMagnetic Core Memory 50\u003c\/p\u003e \u003cp\u003eHow Core Memory Works 50\u003c\/p\u003e \u003cp\u003eMemory Access Time 52\u003c\/p\u003e \u003cp\u003eStatic Random Access Memory (SRAM) 53\u003c\/p\u003e \u003cp\u003eAddress Lines and Data Lines 54\u003c\/p\u003e \u003cp\u003eCombining Memory Chips into Memory Systems 56\u003c\/p\u003e \u003cp\u003eDynamic Random Access Memory (DRAM) 59\u003c\/p\u003e \u003cp\u003eHow DRAM Works 60\u003c\/p\u003e \u003cp\u003eSynchronous vs. Asynchronous DRAM 62\u003c\/p\u003e \u003cp\u003eSDRAM Columns, Rows, Banks, Ranks and DIMMs 64\u003c\/p\u003e \u003cp\u003eDDR, DDR2 DDR3 and DDR4 SDRAM 66\u003c\/p\u003e \u003cp\u003eError-Correcting Code (ECC) Memory 69\u003c\/p\u003e \u003cp\u003eThe Raspberry Pi Memory System 70\u003c\/p\u003e \u003cp\u003ePower Reduction Features 70\u003c\/p\u003e \u003cp\u003eBall-Grid Array Packaging 71\u003c\/p\u003e \u003cp\u003eCache 72\u003c\/p\u003e \u003cp\u003eLocality of Reference 72\u003c\/p\u003e \u003cp\u003eCache Hierarchy 72\u003c\/p\u003e \u003cp\u003eCache Lines and Cache Mapping 74\u003c\/p\u003e \u003cp\u003eDirect Mapping 76\u003c\/p\u003e \u003cp\u003eAssociative Mapping 78\u003c\/p\u003e \u003cp\u003eSet-Associative Cache 79\u003c\/p\u003e \u003cp\u003eWriting Cache Back to Memory 81\u003c\/p\u003e \u003cp\u003eVirtual Memory 81\u003c\/p\u003e \u003cp\u003eThe Virtual Memory Big Picture 82\u003c\/p\u003e \u003cp\u003eMapping Virtual to Physical 83\u003c\/p\u003e \u003cp\u003eMemory Management Units: Going Deeper 84\u003c\/p\u003e \u003cp\u003eMulti-Level Page Tables and the TLB 88\u003c\/p\u003e \u003cp\u003eThe Raspberry Pi Swap Problem 88\u003c\/p\u003e \u003cp\u003eWatching Raspberry Pi Virtual Memory 90\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4 ARM Processors and Systems-on-a-Chip 93\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Incredible Shrinking CPU 93\u003c\/p\u003e \u003cp\u003eMicroprocessors 94\u003c\/p\u003e \u003cp\u003eTransistor Budgets 95\u003c\/p\u003e \u003cp\u003eDigital Logic Primer 95\u003c\/p\u003e \u003cp\u003eLogic Gates 96\u003c\/p\u003e \u003cp\u003eFlip-Flops and Sequential Logic 97\u003c\/p\u003e \u003cp\u003eInside the CPU 99\u003c\/p\u003e \u003cp\u003eBranching and Flags 101\u003c\/p\u003e \u003cp\u003eThe System Stack 102\u003c\/p\u003e \u003cp\u003eSystem Clocks and Execution Time 105\u003c\/p\u003e \u003cp\u003ePipelining 106\u003c\/p\u003e \u003cp\u003ePipelining in Detail 108\u003c\/p\u003e \u003cp\u003eDeeper Pipelines and Pipeline Hazards 109\u003c\/p\u003e \u003cp\u003eThe ARM11 Pipeline 112\u003c\/p\u003e \u003cp\u003eSuperscalar Execution 113\u003c\/p\u003e \u003cp\u003eMore Parallelism with SIMD 115\u003c\/p\u003e \u003cp\u003eEndianness 118\u003c\/p\u003e \u003cp\u003eRethinking the CPU: CISC vs. RISC 119\u003c\/p\u003e \u003cp\u003eRISC's Legacy 121\u003c\/p\u003e \u003cp\u003eExpanded Register Files 122\u003c\/p\u003e \u003cp\u003eLoad\/Store Architecture 122\u003c\/p\u003e \u003cp\u003eOrthogonal Machine Instructions 123\u003c\/p\u003e \u003cp\u003eSeparate Caches for Instructions and Data 123\u003c\/p\u003e \u003cp\u003eARMs from Little Acorns Grow 124\u003c\/p\u003e \u003cp\u003eMicroarchitectures, Cores and Families 125\u003c\/p\u003e \u003cp\u003eSelling Licenses Rather Than Chips 125\u003c\/p\u003e \u003cp\u003eARM11 126\u003c\/p\u003e \u003cp\u003eThe ARM Instruction Set 126\u003c\/p\u003e \u003cp\u003eProcessor Modes 129\u003c\/p\u003e \u003cp\u003eModes and Registers 131\u003c\/p\u003e \u003cp\u003eFast Interrupts 137\u003c\/p\u003e \u003cp\u003eSoftware Interrupts 137\u003c\/p\u003e \u003cp\u003eInterrupt Priority 138\u003c\/p\u003e \u003cp\u003eConditional Instruction Execution 139\u003c\/p\u003e \u003cp\u003eCoprocessors 142\u003c\/p\u003e \u003cp\u003eThe ARM Coprocessor Interface 143\u003c\/p\u003e \u003cp\u003eThe System Control Coprocessor 143\u003c\/p\u003e \u003cp\u003eThe Vector Floating Point (VFP) Coprocessor 144\u003c\/p\u003e \u003cp\u003eEmulating Coprocessors 145\u003c\/p\u003e \u003cp\u003eARM Cortex 145\u003c\/p\u003e \u003cp\u003eMultiple-Issue and Out-Of-Order Execution 146\u003c\/p\u003e \u003cp\u003eThumb 2 147\u003c\/p\u003e \u003cp\u003eThumb EE 147\u003c\/p\u003e \u003cp\u003ebig.LITTLE 147\u003c\/p\u003e \u003cp\u003eThe NEON Coprocessor for SIMD 148\u003c\/p\u003e \u003cp\u003eARMv8 and 64-Bit Computing 148\u003c\/p\u003e \u003cp\u003eSystems on a Single Chip 150\u003c\/p\u003e \u003cp\u003eThe Broadcom BCM2835 SoC 150\u003c\/p\u003e \u003cp\u003eBroadcom's Second- and Third-Generation SoC Devices 151\u003c\/p\u003e \u003cp\u003eHow VLSI Chips Happen 151\u003c\/p\u003e \u003cp\u003eProcesses, Geometries and Masks 152\u003c\/p\u003e \u003cp\u003eIP: Cells, Macrocells and Cores 153\u003c\/p\u003e \u003cp\u003eHard and Soft IP 154\u003c\/p\u003e \u003cp\u003eFloorplanning, Layout and Routing 154\u003c\/p\u003e \u003cp\u003eStandards for On-Chip Communication: AMBA 155\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5 Programming 159\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eProgramming from a Height 159\u003c\/p\u003e \u003cp\u003eThe Software Development Process 160\u003c\/p\u003e \u003cp\u003eWaterfall vs. Spiral vs. Agile 162\u003c\/p\u003e \u003cp\u003eProgramming in Binary 165\u003c\/p\u003e \u003cp\u003eAssembly Language and Mnemonics 166\u003c\/p\u003e \u003cp\u003eHigh-Level Languages 167\u003c\/p\u003e \u003cp\u003eAprès BASIC, Le Deluge 170\u003c\/p\u003e \u003cp\u003eProgramming Terminology 171\u003c\/p\u003e \u003cp\u003eHow Native-Code Compilers Work 173\u003c\/p\u003e \u003cp\u003ePreprocessing 174\u003c\/p\u003e \u003cp\u003eLexical Analysis 175\u003c\/p\u003e \u003cp\u003eSemantic Analysis 175\u003c\/p\u003e \u003cp\u003eIntermediate Code Generation 176\u003c\/p\u003e \u003cp\u003eOptimisation 176\u003c\/p\u003e \u003cp\u003eTarget Code Generation 176\u003c\/p\u003e \u003cp\u003eCompiling C: A Concrete Example 177\u003c\/p\u003e \u003cp\u003eLinking Object Code Files to Executable Files 183\u003c\/p\u003e \u003cp\u003ePure Text Interpreters 184\u003c\/p\u003e \u003cp\u003eBytecode Interpreted Languages 186\u003c\/p\u003e \u003cp\u003eP-Code 186\u003c\/p\u003e \u003cp\u003eJava 187\u003c\/p\u003e \u003cp\u003eJust-In-Time (JIT) Compilation 189\u003c\/p\u003e \u003cp\u003eBytecode and JIT Compilation Beyond Java 191\u003c\/p\u003e \u003cp\u003eAndroid, Java and Dalvik 191\u003c\/p\u003e \u003cp\u003eData Building Blocks 192\u003c\/p\u003e \u003cp\u003eIdentifiers, Reserved Words, Symbols and Operators 192\u003c\/p\u003e \u003cp\u003eValues, Literals and Named Constants 193\u003c\/p\u003e \u003cp\u003eVariables, Expressions and Assignment 193\u003c\/p\u003e \u003cp\u003eTypes and Type Definitions 194\u003c\/p\u003e \u003cp\u003eStatic and Dynamic Typing 196\u003c\/p\u003e \u003cp\u003eTwo's Complement and IEEE 754 198\u003c\/p\u003e \u003cp\u003eCode Building Blocks 200\u003c\/p\u003e \u003cp\u003eControl Statements and Compound Statements 200\u003c\/p\u003e \u003cp\u003eIf\/Then\/Else 200\u003c\/p\u003e \u003cp\u003eSwitch and Case 202\u003c\/p\u003e \u003cp\u003eRepeat Loops 205\u003c\/p\u003e \u003cp\u003eWhile Loops 205\u003c\/p\u003e \u003cp\u003eFor Loops 207\u003c\/p\u003e \u003cp\u003eThe Break and Continue Statements 208\u003c\/p\u003e \u003cp\u003eFunctions 210\u003c\/p\u003e \u003cp\u003eLocality and Scope 211\u003c\/p\u003e \u003cp\u003eObject-Oriented Programming 214\u003c\/p\u003e \u003cp\u003eEncapsulation 217\u003c\/p\u003e \u003cp\u003eInheritance 219\u003c\/p\u003e \u003cp\u003ePolymorphism 221\u003c\/p\u003e \u003cp\u003eOOP Wrapup 224\u003c\/p\u003e \u003cp\u003eA Tour of the GNU Compiler Collection Toolset 224\u003c\/p\u003e \u003cp\u003egcc as Both Compiler and Builder 225\u003c\/p\u003e \u003cp\u003eUsing Linux Make 228\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6 Non-Volatile Storage 231\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePunched Cards and Tape 232\u003c\/p\u003e \u003cp\u003ePunched Cards 232\u003c\/p\u003e \u003cp\u003eTape Data Storage 232\u003c\/p\u003e \u003cp\u003eThe Dawn of Magnetic Storage 235\u003c\/p\u003e \u003cp\u003eMagnetic Recording and Encoding Schemes 236\u003c\/p\u003e \u003cp\u003eFlux Transitions 237\u003c\/p\u003e \u003cp\u003ePerpendicular Recording 238\u003c\/p\u003e \u003cp\u003eMagnetic Disk Storage 240\u003c\/p\u003e \u003cp\u003eCylinders, Tracks and Sectors 240\u003c\/p\u003e \u003cp\u003eLow-Level Formatting 242\u003c\/p\u003e \u003cp\u003eInterfaces and Controllers 244\u003c\/p\u003e \u003cp\u003eFloppy Disk Drives 246\u003c\/p\u003e \u003cp\u003ePartitions and File Systems 247\u003c\/p\u003e \u003cp\u003ePrimary Partitions and Extended Partitions 247\u003c\/p\u003e \u003cp\u003eFile Systems and High-Level Formatting 249\u003c\/p\u003e \u003cp\u003eThe Future: GUID Partition Tables (GPTs) 249\u003c\/p\u003e \u003cp\u003ePartitions on the Raspberry Pi SD Card 250\u003c\/p\u003e \u003cp\u003eOptical Discs 252\u003c\/p\u003e \u003cp\u003eCD-Derived Formats 254\u003c\/p\u003e \u003cp\u003eDVD-Derived Formats 254\u003c\/p\u003e \u003cp\u003eRamdisks 255\u003c\/p\u003e \u003cp\u003eFlash Storage 257\u003c\/p\u003e \u003cp\u003eROMs, PROMs and EPROMs 257\u003c\/p\u003e \u003cp\u003eFlash as EEPROM 258\u003c\/p\u003e \u003cp\u003eSingle-Level vs. Multi-Level Storage 260\u003c\/p\u003e \u003cp\u003eNOR vs. NAND Flash 261\u003c\/p\u003e \u003cp\u003eWear Levelling and the Flash Translation Layer 265\u003c\/p\u003e \u003cp\u003eGarbage Collection and TRIM 267\u003c\/p\u003e \u003cp\u003eSD Cards 268\u003c\/p\u003e \u003cp\u003eeMMC 270\u003c\/p\u003e \u003cp\u003eThe Future of Non-Volatile Storage 271\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7 Wired and Wireless Ethernet 273\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe OSI Reference Model for Networking 274\u003c\/p\u003e \u003cp\u003eThe Application Layer 276\u003c\/p\u003e \u003cp\u003eThe Presentation Layer 276\u003c\/p\u003e \u003cp\u003eThe Session Layer 278\u003c\/p\u003e \u003cp\u003eThe Transport Layer 278\u003c\/p\u003e \u003cp\u003eThe Network Layer 279\u003c\/p\u003e \u003cp\u003eThe Data Link Layer 281\u003c\/p\u003e \u003cp\u003eThe Physical Layer 282\u003c\/p\u003e \u003cp\u003eEthernet 282\u003c\/p\u003e \u003cp\u003eThicknet and Thinnet 283\u003c\/p\u003e \u003cp\u003eThe Basic Ethernet Idea 283\u003c\/p\u003e \u003cp\u003eCollision Detection and Avoidance 285\u003c\/p\u003e \u003cp\u003eEthernet Encoding Systems 286\u003c\/p\u003e \u003cp\u003ePAM-5 Encoding 290\u003c\/p\u003e \u003cp\u003e10BASE-T and Twisted-Pair Cabling 291\u003c\/p\u003e \u003cp\u003eFrom Bus Topology to Star Topology 292\u003c\/p\u003e \u003cp\u003eSwitched Ethernet 293\u003c\/p\u003e \u003cp\u003eRouters and the Internet 296\u003c\/p\u003e \u003cp\u003eNames vs. Addresses 296\u003c\/p\u003e \u003cp\u003eIP Addresses and TCP Ports 297\u003c\/p\u003e \u003cp\u003eLocal IP Addresses and DHCP 300\u003c\/p\u003e \u003cp\u003eNetwork Address Translation 302\u003c\/p\u003e \u003cp\u003eWi-Fi 304\u003c\/p\u003e \u003cp\u003eStandards within Standards 305\u003c\/p\u003e \u003cp\u003eFacing the Real World 305\u003c\/p\u003e \u003cp\u003eWi-Fi Equipment in Use 309\u003c\/p\u003e \u003cp\u003eInfrastructure Networks vs. Ad Hoc Networks 311\u003c\/p\u003e \u003cp\u003eWi-Fi Distributed Media Access 312\u003c\/p\u003e \u003cp\u003eCarrier Sense and the Hidden Node Problem 314\u003c\/p\u003e \u003cp\u003eFragmentation 315\u003c\/p\u003e \u003cp\u003eAmplitude Modulation, Phase Modulation and QAM 316\u003c\/p\u003e \u003cp\u003eSpread-Spectrum Techniques 319\u003c\/p\u003e \u003cp\u003eWi-Fi Modulation and Coding in Detail 320\u003c\/p\u003e \u003cp\u003eHow Wi-Fi Connections Happen 323\u003c\/p\u003e \u003cp\u003eWi-Fi Security 325\u003c\/p\u003e \u003cp\u003eWi-Fi on the Raspberry Pi 326\u003c\/p\u003e \u003cp\u003eEven More Networking 329\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8 Operating Systems 331\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroduction to Operating Systems 333\u003c\/p\u003e \u003cp\u003eHistory of Operating Systems 333\u003c\/p\u003e \u003cp\u003eThe Basics of Operating Systems 336\u003c\/p\u003e \u003cp\u003eThe Kernel: The Basic Facilitator of Operating Systems 343\u003c\/p\u003e \u003cp\u003eOperating System Control 344\u003c\/p\u003e \u003cp\u003eModes 345\u003c\/p\u003e \u003cp\u003eMemory Management 346\u003c\/p\u003e \u003cp\u003eVirtual Memory 347\u003c\/p\u003e \u003cp\u003eMultitasking 347\u003c\/p\u003e \u003cp\u003eDisk Access and File Systems 348\u003c\/p\u003e \u003cp\u003eDevice Drivers 349\u003c\/p\u003e \u003cp\u003eEnablers and Assistants to the Operating System 349\u003c\/p\u003e \u003cp\u003eWaking Up the OS 349\u003c\/p\u003e \u003cp\u003eFirmware 353\u003c\/p\u003e \u003cp\u003eOperating Systems for Raspberry Pi 354\u003c\/p\u003e \u003cp\u003eNOOBS 354\u003c\/p\u003e \u003cp\u003eThird-Party Operating Systems 356\u003c\/p\u003e \u003cp\u003eOther Available Operating Systems 356\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9 Video Codecs and Video Compression 359\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe First Video Codecs 360\u003c\/p\u003e \u003cp\u003eExploiting the Eye 361\u003c\/p\u003e \u003cp\u003eExploiting the Data 363\u003c\/p\u003e \u003cp\u003eUnderstanding Frequency Transform 367\u003c\/p\u003e \u003cp\u003eUsing Lossless Encoding Techniques 371\u003c\/p\u003e \u003cp\u003eChanging with the Times 373\u003c\/p\u003e \u003cp\u003eThe Latest Standards from MPEG 374\u003c\/p\u003e \u003cp\u003eH.265 378\u003c\/p\u003e \u003cp\u003eMotion Search 378\u003c\/p\u003e \u003cp\u003eVideo Quality 381\u003c\/p\u003e \u003cp\u003eProcessing Power 382\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10 3D Graphics 383\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eA Brief History of 3D Graphics 383\u003c\/p\u003e \u003cp\u003eThe Graphical User Interface (GUI) 384\u003c\/p\u003e \u003cp\u003e3D Graphics in Video Games 386\u003c\/p\u003e \u003cp\u003ePersonal Computing and the Graphics Card 387\u003c\/p\u003e \u003cp\u003eTwo Competing Standards 390\u003c\/p\u003e \u003cp\u003eThe OpenGL Graphics Pipeline 391\u003c\/p\u003e \u003cp\u003eGeometry Specification and Attributes 393\u003c\/p\u003e \u003cp\u003eGeometry Transformation 396\u003c\/p\u003e \u003cp\u003eLighting and Materials 400\u003c\/p\u003e \u003cp\u003ePrimitive Assembly and Rasterisation 403\u003c\/p\u003e \u003cp\u003ePixel Processing (Fragment Shading) 405\u003c\/p\u003e \u003cp\u003eTexturing 407\u003c\/p\u003e \u003cp\u003eModern Graphics Hardware 411\u003c\/p\u003e \u003cp\u003eTiled Rendering 411\u003c\/p\u003e \u003cp\u003eGeometry Rejection 413\u003c\/p\u003e \u003cp\u003eShading 415\u003c\/p\u003e \u003cp\u003eCaching 416\u003c\/p\u003e \u003cp\u003eRaspberry Pi GPU 417\u003c\/p\u003e \u003cp\u003eOpen VG 421\u003c\/p\u003e \u003cp\u003eGeneral Purpose GPUs 423\u003c\/p\u003e \u003cp\u003eHeterogeneous Architectures 423\u003c\/p\u003e \u003cp\u003eOpenCL 425\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11 Audio 427\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCan You Hear Me Now? 427\u003c\/p\u003e \u003cp\u003eMIDI 428\u003c\/p\u003e \u003cp\u003eSound Cards 428\u003c\/p\u003e \u003cp\u003eAnalog vs. Digital 429\u003c\/p\u003e \u003cp\u003eSound and Signal Processing 430\u003c\/p\u003e \u003cp\u003eEditing 431\u003c\/p\u003e \u003cp\u003eCompression 431\u003c\/p\u003e \u003cp\u003eRecording with Effects 432\u003c\/p\u003e \u003cp\u003eEncoding and Decoding Information for Communication 433\u003c\/p\u003e \u003cp\u003e1-Bit DAC 434\u003c\/p\u003e \u003cp\u003eI\u003csup\u003e2\u003c\/sup\u003eS 436\u003c\/p\u003e \u003cp\u003eRaspberry Pi Sound Input\/Output 437\u003c\/p\u003e \u003cp\u003eAudio Output Jack 437\u003c\/p\u003e \u003cp\u003eHDMI 438\u003c\/p\u003e \u003cp\u003eSound on the Raspberry Pi 438\u003c\/p\u003e \u003cp\u003eRaspberry Pi Sound on Board 439\u003c\/p\u003e \u003cp\u003eManipulating Sound on the Raspberry Pi 439\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12 Input\/Output 447\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroducing Input\/Output 448\u003c\/p\u003e \u003cp\u003eI\/O Enablers 451\u003c\/p\u003e \u003cp\u003eUniversal Serial Bus 452\u003c\/p\u003e \u003cp\u003eUSB Powered Hubs 455\u003c\/p\u003e \u003cp\u003eEthernet 457\u003c\/p\u003e \u003cp\u003eUniversal Asynchronous Receiver\/Transmitters 458\u003c\/p\u003e \u003cp\u003eSmall Computer Systems Interface 459\u003c\/p\u003e \u003cp\u003eParallel ATA 459\u003c\/p\u003e \u003cp\u003eSerial Advanced Technology Attachment 460\u003c\/p\u003e \u003cp\u003eRS-232 Serial 460\u003c\/p\u003e \u003cp\u003eHigh Definition Media Interface 461\u003c\/p\u003e \u003cp\u003eI2S 462\u003c\/p\u003e \u003cp\u003eI2C 463\u003c\/p\u003e \u003cp\u003eRaspberry Pi Display, Camera Interface and JTAG 464\u003c\/p\u003e \u003cp\u003eRaspberry Pi GPIO 464\u003c\/p\u003e \u003cp\u003eGPIO Overview and the Broadcom SoC 465\u003c\/p\u003e \u003cp\u003eMeeting the GPIO 466\u003c\/p\u003e \u003cp\u003eProgramming GPIO 473\u003c\/p\u003e \u003cp\u003eAlternative Modes 479\u003c\/p\u003e \u003cp\u003eGPIO Experimentation the Easy Way 480\u003c\/p\u003e \u003cp\u003eIndex 481\u003c\/p\u003e   \u003cp\u003e\u003cb\u003eEben Upton\u003c\/b\u003e is one of the co-creators of the Raspberry Pi, driven by the desire to create a new generation of developers capable of making an effective contribution to the field. Eben is also a co-author of the \u003ci\u003eRaspberry Pi User Guide\u003c\/i\u003e.\u003cb\u003e\u003c\/b\u003e \u003c\/p\u003e\u003cp\u003e\u003cb\u003eJeff Dunteman\u003c\/b\u003e is a veteran tech author and a co-founder of Coriolis Press. His previous publications include \u003ci\u003eAssembly Language Step By Step\u003c\/i\u003e and \u003ci\u003eJeff\u003c\/i\u003e \u003ci\u003eDunteman's Wi-Fi Guide\u003c\/i\u003e.    \u003c\/p\u003e\u003cp\u003e\u003cb\u003eTake an insider tour of the Raspberry Pi and learn the mechanics of computing\u003c\/b\u003e \u003c\/p\u003e\u003cp\u003eInspired by the relatively cheap, highly programmable computers of the 1980sand their impact on the UK tech industrythe Raspberry Pi was designed to inspire and empower a new generation of programmers. Accessible both economically and technically, the Raspberry Pi is the ideal vehicle for learning how computers work. \u003ci\u003eLearning Computer Architecture\u003c\/i\u003e \u003ci\u003ewith Raspberry Pi\u003c\/i\u003e is your personal guide on this journey of discovery, and it's your expert coach for developing a knowledge base that translates well beyond the Pi itself. Authors Eben Upton and Jeff Dunteman are the ideal teachers: Upton provides deep insight as a Raspberry Pi co-creator, and Dunteman distills complex technical knowledge into easily understood explanations. Together they provide expert guidance on the technology behind all computers, based on the mechanics behind the credit cardsized computer that is revolutionizing the world of programming. \u003c\/p\u003e\u003cp\u003eThis book walks you through each component step by step to show you what it does, why it's needed, how it relates to the other components, and the choices the designers faced when creating it. From memory, storage, and processors, to Ethernet, cameras, and audio, Upton and Dunteman team up to give you a solid understanding of the Raspberry Pi internals, and how it relates to the technology underlying computing as a whole. \u003c\/p\u003e\u003cp\u003eWith design intent and critical function straight from the source, \u003ci\u003eLearning Computer Architecture with Raspberry Pi\u003c\/i\u003e helps you: \u003c\/p\u003e\u003cul\u003e \u003cli\u003eLearn the purpose behind each piece of the Pi\u003c\/li\u003e \u003cli\u003eUnderstand how the various components interact\u003c\/li\u003e \u003cli\u003eDig into the thought process behind the system's design\u003c\/li\u003e \u003cli\u003eLearn how programming works\u003c\/li\u003e \u003cli\u003eExamine the interplay between hardware and operating system\u003c\/li\u003e \u003cli\u003eDelve into the mechanics behind the ARM chip\u003c\/li\u003e \u003cli\u003eCompare and contrast different chips, from ARM to Intel\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eVisit the companion website at\u003cb\u003e www.wiley.com\/go\/comparchitecture\u003c\/b\u003e\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47989521121509,"sku":"NP9781119183938","price":32.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119183938.jpg?v=1761784441","url":"https:\/\/k12savings.com\/es\/products\/learning-computer-architecture-with-raspberry-pi-isbn-9781119183938","provider":"K12savings","version":"1.0","type":"link"}