Produktbild: Learning Computer Architecture with Raspberry Pi

Learning Computer Architecture with Raspberry Pi

29,99 €

inkl. gesetzl. MwSt., Versandkostenfrei


Beschreibung

Produktdetails

Einband

Taschenbuch

Erscheinungsdatum

27.09.2016

Verlag

John Wiley & Sons

Seitenzahl

528

Maße (L/B/H)

23,3/18,9/2,7 cm

Gewicht

895 g

Auflage

1. Auflage

Sprache

Englisch

ISBN

978-1-119-18393-8

Beschreibung

Produktdetails

Einband

Taschenbuch

Erscheinungsdatum

27.09.2016

Verlag

John Wiley & Sons

Seitenzahl

528

Maße (L/B/H)

23,3/18,9/2,7 cm

Gewicht

895 g

Auflage

1. Auflage

Sprache

Englisch

ISBN

978-1-119-18393-8

Herstelleradresse

Libri GmbH
Europaallee 1
36244 Bad Hersfeld
DE

Email: gpsr@libri.de

Kundinnen und Kunden meinen

0 Bewertungen

Informationen zu Bewertungen

Zur Abgabe einer Bewertung ist eine Anmeldung im Konto notwendig. Die Authentizität der Bewertungen wird von uns nicht überprüft. Wir behalten uns vor, Bewertungstexte, die unseren Richtlinien widersprechen, entsprechend zu kürzen oder zu löschen.

Die Bewertungen sind nach Format, Anzahl Sterne und Datum sortiert.

Verfassen Sie die erste Bewertung zu diesem Artikel

Helfen Sie anderen Kund*innen durch Ihre Meinung

Kundinnen und Kunden meinen

0 Bewertungen filtern

Die Leseprobe wird geladen.
  • Produktbild: Learning Computer Architecture with Raspberry Pi
  • 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