Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Learning Computer Architecture with Raspberry Pi, Notas de estudo de Eletrônica

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.

Tipologia: Notas de estudo

2017

Compartilhado em 11/04/2017

mcp-3008-6
mcp-3008-6 🇧🇷

4.5

(37)

8 documentos

1 / 531

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Learning Computer Architecture with Raspberry Pi e outras Notas de estudo em PDF para Eletrônica, somente na Docsity!

Learning

Computer

Architecture with

Raspberry Pi

®

Eben Upton, Jeff Duntemann, Ralph Roberts,

Tim Mamtora, and Ben Everard

Publisher’s Acknowledgements

VP Consumer and Technology Publishing Director: Michelle Leet

Professional Technology & Strategy Director: Barry Pruett

Marketing Manager: Lorna Mein

Acquisitions Editor: Jody Lefevere

Project Editor: Charlotte Kughen

Copy Editor: Grace Fairley

Technical Editor: Omer Kilic

Editorial Manager: Mary Beth Wakefield

Editorial Assistant: Matthew Lowe

About the Authors

EBEN UPTON is a founder of the Raspberry Pi Foundation, serves as the CEO of Raspberry Pi (Trading) Ltd, its trading arm, and is the co-author, with Gareth Halfacree, of the Raspberry Pi User Guide. In an earlier life, Eben founded two successful mobile games and middleware companies (Ideaworks 3d and Podfun), held the post of Director of Studies for Computer Science at St John’s College, Cambridge and wrote the Oxford Rhyming Dictionary with his father, Professor Clive Upton. He holds a BA in Physics and Engineering, a PhD in Computer Science, and an Executive MBA, from the University of Cambridge.

JEFF DUNTEMANN has been professionally published in both technical nonfiction and science fiction since 1974. He worked as a programmer for Xerox Corporation and as a tech- nical editor for Ziff-Davis Publishing and Borland International. He launched and edited two print magazines for programmers and has 20 technical books to his credit, including the best-selling Assembly Language Step By Step. He wrote the “Structured Programming” column in Dr. Dobb’s Journal for four years and has published dozens of technical articles in many magazines. With fellow writer Keith Weiskamp, Jeff launched The Coriolis Group in 1989, which went on to become Arizona’s largest book publisher by 1998. He has a longstanding interest in “strong” artificial intelligence, and most of his fiction (including his two novels, The Cunning Blood and Ten Gentle Opportunities) explore the consequences of strong AI. His other interests include electronics and amateur radio (callsign K7JPD), telescopes and kites. Jeff lives in Phoenix, Arizona with Carol, his wife of 40 years, and four bichon frise dogs.

RALPH ROBERTS is a decorated Vietnam Veteran who worked with NASA during the Apollo moon-landing program and has been writing about computers and software continu- ously since his first sale to Creative Computing magazine in 1979. Roberts has written more than 100 books for national publishers and thousands of articles and short stories. In all, he’s sold more than 20 million words professionally. His best sellers include the first U.S. book on computer viruses (which resulted in several appearances on national TV) and Classic Cooking with Coca-Cola®, a cookbook that has been in print for the past 21 years and has sold 500,000 copies.

TIM MAMTORA works as a master engineer in IC Design for Broadcom Limited and is cur- rently the technical lead for the internal GPU hardware team. He has worked in mobile com- puter graphics for nearly seven years and previously held roles developing internal IP for analog TV and custom DSP hardware. Tim holds a Masters in Engineering from the University of Cambridge, and he spent his third year at the Massachusetts Institute of Technology, which sparked his interest in digital hardware design. He is passionate about promoting engineering and has dedicated time to supervising undergraduates at the University of Cambridge and giving talks about opportunities in engineering to his old school. Outside of work he enjoys a variety of sports, photography and seeing the world.

—Eben Upton

In memory of Alan Drew, without whom I would have stopped before I got started.

To the eternal memory of Steve Ostruszka 1917-1990, who gave me his daughter's hand and honored me with his friendship. —Jeff Duntemann

Table of Contents

  • Introduction
    • Cambridge
    • Cut to the Chase
    • The Knee in the Curve
    • Forward the Foundation
  • CHAPTER
  • The Shape of a Computer Phenomenon
    • Growing Delicious, Juicy Raspberries
    • System-on-a-Chip
    • An Exciting Credit Card-Sized Computer
    • What Does the Raspberry Pi Do?
    • Meeting and Greeting the Raspberry Pi Board
      • GPIO Pins
      • Status LEDs
      • USB Receptacles
      • Ethernet Connection
      • Audio Out
      • Composite Video
      • CSI Camera Module Connector
      • HDMI
      • Micro USB Power
      • Storage Card
      • DSI Display Connection
      • Mounting Holes
      • The Chips
    • The Future
  • CHAPTER
  • Recapping Computing.
    • The Cook as Computer
      • Ingredients as Data
      • Basic Actions
    • The Box That Follows a Plan
      • Doing and Knowing
      • Programs Are Data
      • Memory L E A R N I N G C O M P U T E R A R C H I T E C T U R E W I T H R A S P B E R R Y P I
      • Registers
      • The System Bus
      • Instruction Sets
    • Voltages, Numbers and Meaning
      • Binary: Counting in 1s and 0s
      • The Digit Shortage
      • Counting and Numbering and
      • Hexadecimal as a Shorthand for Binary
      • Doing Binary and Hexadecimal Arithmetic
    • Operating Systems: The Boss of the Box
      • What an Operating System Does
      • Saluting the Kernel
      • Multiple Cores
  • CHAPTER
  • Electronic Memory.
    • There Was Memory Before There Were Computers
    • Rotating Magnetic Memory
    • Magnetic Core Memory
      • How Core Memory Works
      • Memory Access Time
    • Static Random Access Memory (SRAM)
    • Address Lines and Data Lines
    • Combining Memory Chips into Memory Systems
    • Dynamic Random Access Memory (DRAM)
      • How DRAM Works
      • Synchronous vs Asynchronous DRAM
      • SDRAM Columns, Rows, Banks, Ranks and DIMMs
      • DDR, DDR2 DDR3 and DDR4 SDRAM
      • Error-Correcting Code (ECC) Memory
    • The Raspberry Pi Memory System
      • Power Reduction Features
      • Ball-Grid Array Packaging
    • Cache
      • Locality of Reference
      • Cache Hierarchy
      • Cache Lines and Cache Mapping T A B L E O F C O N T E N T S
      • Direct Mapping
      • Associative Mapping
      • Set-Associative Cache
      • Writing Cache Back to Memory
    • Virtual Memory
      • The Virtual Memory Big Picture
      • Mapping Virtual to Physical
      • Memory Management Units: Going Deeper
      • Multi-Level Page Tables and the TLB
      • The Raspberry Pi Swap Problem
      • Watching Raspberry Pi Virtual Memory
  • CHAPTER
  • ARM Processors and Systems-on-a-Chip
    • The Incredible Shrinking CPU
      • Microprocessors
      • Transistor Budgets
    • Digital Logic Primer
      • Logic Gates
      • Flip-Flops and Sequential Logic
    • Inside the CPU
      • Branching and Flags
      • The System Stack
      • System Clocks and Execution Time
      • Pipelining
      • Pipelining in Detail
      • Deeper Pipelines and Pipeline Hazards
      • The ARM11 Pipeline
      • Superscalar Execution
      • More Parallelism with SIMD
      • Endianness
    • Rethinking the CPU: CISC vs RISC
      • RISC’s Legacy
      • Expanded Register Files
      • Load/Store Architecture
      • Orthogonal Machine Instructions
      • Separate Caches for Instructions and Data
    • ARMs from Little Acorns Grow L E A R N I N G C O M P U T E R A R C H I T E C T U R E W I T H R A S P B E R R Y P I
      • Microarchitectures, Cores and Families
      • Selling Licenses Rather Than Chips
    • ARM11
      • The ARM Instruction Set
      • Processor Modes
      • Modes and Registers
      • Fast Interrupts
      • Software Interrupts
      • Interrupt Priority
      • Conditional Instruction Execution
    • Coprocessors
      • The ARM Coprocessor Interface
      • The System Control Coprocessor
      • The Vector Floating Point (VFP) Coprocessor
      • Emulating Coprocessors
    • ARM Cortex
      • Multiple-Issue and Out-Of-Order Execution
      • Thumb
      • Thumb EE
      • big LITTLE
      • The NEON Coprocessor for SIMD
      • ARMv8 and 64-Bit Computing
    • Systems on a Single Chip
      • The Broadcom BCM2835 SoC
      • Broadcom’s Second- and Third-Generation SoC Devices
      • How VLSI Chips Happen
      • Processes, Geometries and Masks
      • IP: Cells, Macrocells and Cores
      • Hard and Soft IP
      • Floorplanning, Layout and Routing
      • Standards for On-Chip Communication: AMBA
  • CHAPTER
  • Programming
    • Programming from a Height
      • The Software Development Process
      • Waterfall vs Spiral vs Agile
    • Programming in Binary T A B L E O F C O N T E N T S
    • Assembly Language and Mnemonics
    • High-Level Languages
    • Après BASIC, Le Deluge
    • Programming Terminology
  • How Native-Code Compilers Work
    • Preprocessing
    • Lexical Analysis
    • Semantic Analysis
    • Intermediate Code Generation
    • Optimisation
    • Target Code Generation
    • Compiling C: A Concrete Example
    • Linking Object Code Files to Executable Files
  • Pure Text Interpreters
  • Bytecode Interpreted Languages
    • P-Code
    • Java
    • Just-In-Time (JIT) Compilation
    • Bytecode and JIT Compilation Beyond Java
    • Android, Java and Dalvik
  • Data Building Blocks
    • Identifiers, Reserved Words, Symbols and Operators
    • Values, Literals and Named Constants
    • Variables, Expressions and Assignment
    • Types and Type Definitions
    • Static and Dynamic Typing
    • Two’s Complement and IEEE
  • Code Building Blocks
    • Control Statements and Compound Statements
    • If/Then/Else
    • Switch and Case
    • Repeat Loops
    • While Loops
    • For Loops
    • The Break and Continue Statements
    • Functions
    • Locality and Scope
    • Object-Oriented Programming L E A R N I N G C O M P U T E R A R C H I T E C T U R E W I T H R A S P B E R R Y P I
      • Encapsulation
      • Inheritance
      • Polymorphism
      • OOP Wrapup
    • A Tour of the GNU Compiler Collection Toolset
      • gcc as Both Compiler and Builder
      • Using Linux Make
  • CHAPTER
  • Non-Volatile Storage.
    • Punched Cards and Tape
      • Punched Cards
      • Tape Data Storage
      • The Dawn of Magnetic Storage
    • Magnetic Recording and Encoding Schemes
      • Flux Transitions
      • Perpendicular Recording
    • Magnetic Disk Storage
      • Cylinders, Tracks and Sectors
      • Low-Level Formatting
      • Interfaces and Controllers
      • Floppy Disk Drives
    • Partitions and File Systems
      • Primary Partitions and Extended Partitions
      • File Systems and High-Level Formatting
      • The Future: GUID Partition Tables (GPTs)
      • Partitions on the Raspberry Pi SD Card
    • Optical Discs
      • CD-Derived Formats
      • DVD-Derived Formats
    • Ramdisks
    • Flash Storage
      • ROMs, PROMs and EPROMs
      • Flash as EEPROM
      • Single-Level vs Multi-Level Storage
      • NOR vs NAND Flash
      • Wear Levelling and the Flash Translation Layer
      • Garbage Collection and TRIM T A B L E O F C O N T E N T S
      • SD Cards
      • eMMC
      • The Future of Non-Volatile Storage
  • CHAPTER
  • Wired and Wireless Ethernet
    • The OSI Reference Model for Networking
      • The Application Layer
      • The Presentation Layer
      • The Session Layer
      • The Transport Layer
      • The Network Layer
      • The Data Link Layer
      • The Physical Layer
    • Ethernet
      • Thicknet and Thinnet
      • The Basic Ethernet Idea
      • Collision Detection and Avoidance
      • Ethernet Encoding Systems
      • PAM-5 Encoding
      • 10BASE-T and Twisted-Pair Cabling
      • From Bus Topology to Star Topology
      • Switched Ethernet
    • Routers and the Internet
      • Names vs Addresses
      • IP Addresses and TCP Ports
      • Local IP Addresses and DHCP
      • Network Address Translation
    • Wi-Fi
      • Standards within Standards
      • Facing the Real World
      • Wi-Fi Equipment in Use
      • Infrastructure Networks vs Ad Hoc Networks
      • Wi-Fi Distributed Media Access
      • Carrier Sense and the Hidden Node Problem
      • Fragmentation
      • Amplitude Modulation, Phase Modulation and QAM
      • Spread-Spectrum Techniques L E A R N I N G C O M P U T E R A R C H I T E C T U R E W I T H R A S P B E R R Y P I
      • Wi-Fi Modulation and Coding in Detail
      • How Wi-Fi Connections Happen
      • Wi-Fi Security
      • Wi-Fi on the Raspberry Pi
      • Even More Networking
  • CHAPTER
  • Operating Systems
    • Introduction to Operating Systems
      • History of Operating Systems
      • The Basics of Operating Systems
    • The Kernel: The Basic Facilitator of Operating Systems
      • Operating System Control
      • Modes
      • Memory Management
      • Virtual Memory
      • Multitasking
      • Disk Access and File Systems
      • Device Drivers
    • Enablers and Assistants to the Operating System
      • Waking Up the OS
      • Firmware
    • Operating Systems for Raspberry Pi
      • NOOBS
      • Third-Party Operating Systems
      • Other Available Operating Systems
  • CHAPTER
  • Video Codecs and Video Compression.
    • The First Video Codecs
      • Exploiting the Eye
      • Exploiting the Data
      • Understanding Frequency Transform
      • Using Lossless Encoding Techniques
    • Changing with the Times
      • The Latest Standards from MPEG
      • H
    • Motion Search T A B L E O F C O N T E N T S
      • Video Quality
      • Processing Power
  • CHAPTER
  • 3D Graphics
    • A Brief History of 3D Graphics
      • The Graphical User Interface (GUI)
      • 3D Graphics in Video Games
      • Personal Computing and the Graphics Card
      • Two Competing Standards
    • The OpenGL Graphics Pipeline
      • Geometry Specification and Attributes
      • Geometry Transformation
      • Lighting and Materials
      • Primitive Assembly and Rasterisation
      • Pixel Processing (Fragment Shading)
      • Texturing
    • Modern Graphics Hardware
      • Tiled Rendering
      • Geometry Rejection
      • Shading
      • Caching
      • Raspberry Pi GPU
    • Open VG
    • General Purpose GPUs
      • Heterogeneous Architectures
      • OpenCL
  • CHAPTER
  • Audio
    • Can You Hear Me Now?
      • MIDI
      • Sound Cards
    • Analog vs Digital
    • Sound and Signal Processing
      • Editing
      • Compression
      • Recording with Effects L E A R N I N G C O M P U T E R A R C H I T E C T U R E W I T H R A S P B E R R Y P I
      • Encoding and Decoding Information for Communication
    • 1-Bit DAC
    • I^2 S
    • Raspberry Pi Sound Input/Output
      • Audio Output Jack
      • HDMI
    • Sound on the Raspberry Pi
      • Raspberry Pi Sound on Board
      • Manipulating Sound on the Raspberry Pi
  • CHAPTER
  • Input/Output
    • Introducing Input/Output
    • I/O Enablers
      • Universal Serial Bus
      • USB Powered Hubs
      • Ethernet
      • Universal Asynchronous Receiver/Transmitters
      • Small Computer Systems Interface
      • Parallel ATA
      • Serial Advanced Technology Attachment
      • RS-232 Serial
      • High Definition Media Interface
      • I^2 S
      • I 2 C
      • Raspberry Pi Display, Camera Interface and JTAG
    • Raspberry Pi GPIO
      • GPIO Overview and the Broadcom SoC
      • Meeting the GPIO
      • Programming GPIO
      • Alternative Modes
      • GPIO Experimentation the Easy Way
  • Index