Raspberry Pi I ArchitectureDavid LorKaiwen Zheng

Table of fication OverviewCPUPipelineBranch PredictionGPUI/OProjects and Applications

What is a Raspberry Pi?Raspberry Pi is a credit-card sized single-board computer designed andmanufactured by the Raspberry Pi foundation in the United Kingdom.Raspberry Pi has an ARMv6 700 MHz single-core processor, a VideoCore IV GPUand 512MB of RAM. it uses an SD card for its operating system and data storage.The Raspberry Pi officially supports Raspbian, a lightweight linux OS based onDebian.

A Little History of the Raspberry PiBack in 2006, while Eben Upton, his colleagues at University of Cambridge, inconjunction with Pete Lomas and David Braben, formed the Raspberry PiFoundation.Early prototypes of the Raspberry Pi were based on the 8-bit Atmel ATMega644 inorder to reduce cost. Following prototypes utilized an ARM processor similar towhat was used in the release version of the Raspberry Pi.

History cont.In 2012, the team started its first production run consisted of 10,000 Raspberry Piunites manufactured by foundries in China and Taiwan.Unfortunately, there was a manufacturing issue where the ethernet jack on theRaspberry Pi. This incident caused some minor shipping delaysIt took the team six years of hardware development to create the Raspberry Pimakers and electronics enthusiasts adore today

Model BIn April 2012, the original Raspberry Pi, also known as themodel B, was launched.It offered an ARMv6 700 MHz single-core processor, aVideoCore IV GPU and 512MB of RAM, all packed in a creditcard size board.The model B supported 26-pin GPIO and a SD card slot forloading the operating system. Priced at 35 per unit.

Model AIn February 2013, the Raspberry Pi model A waslaunched, It packed the same ARM single-core processorand the GPU as model B with half of the RAM capacity at256MB.Priced at 25 per unit, the model A could be regarded asthe cheaper and less powerful version of model B.

Model B In July 2014, the Raspberry Pi model B was launched, Itwas a worthy successor to the original Raspberry Pi.Packing the same processing unit as its predecessor.The model B received two more USB ports, an updated40-pin GPIO layout, and a micro-SD card slot for loadingthe operating system.Priced at 30 per unit, the model B was cheaper andoffered more connectivity than model B, Making it anIdeal choice for education.

Model A In November 2014, the Raspberry Pi model A waslaunched, It offered improved specifications over the modelA.Packing the same processor as its predecessor, the modelA upgraded RAM capacity from 256MB to 512MB. Smallerfootprint, 40-pin GPIO, and micro-SD card.Priced at 20 per unit, the model A was the smallest andcheapest single-board computer at that time.

Model Variants

Raspberry Pi I Specifications Overview Model B Processor: Broadcom BCM2835CPU: ARM 1176JZFS (ARM 11 w/ v6core, floating pt @ 700MHz)GPU: Videocore IV GPURAM: 512 MBUSB: 2 USB 2.0Network: EthernetVideo out: HDMIAudio out: 3.5 mm jackSD Card Storage (Up to 32GB)Micro USB powerDisplay Serial Interface Port (DSI)Camera Serial Interface Port (CSI)

CPU Overview ARM11J6HZF-SARMv6 Architecture700 MHz ClockSingle Core32-bit RISCBranch Prediction with Return Stack8 Pipeline Stages33 general purpose 32 bit registers7 dedicated 32 bit registers

CPU Main Components Integer CoreLoad Store Unit (LSU)Prefetch UnitMemory SystemAMBA AXI InterfaceCoprocessor InterfaceDebugInstruction Cycle and InterlocksVector Floating-Point (VFP)System ControlInterrupt Handling

Pipelining Overview Two Fetch stages One Decode Stage One Issue Stage Four integerexecution pipelinestages

Pipeline Flow for ALU Operations

Pipeline Flow for Multiplication Operations

Pipeline Flow for Load/Store Operations

Cache Organization - One Level Memory System Four-way set associative with sizeconfigurable from 4 to 64KBCache is Harvard implementationCache replacement policies arePseudo-Random or Round Robin,which is controlled by the RR bit inCP15 register c1MicroTLB determines if cache linesare write-back or write-throughContain both secure andnon-secure data in cache lines

Program Flow Prediction Processor handles branches first time execution when no history is availablefor dynamic prediction for the prefetch unitInteger Core(IC) Prefetch Unit(PU) Uses static branch prediction and return stackUses dynamic branch predictionWhen a branch is resolved, the PU receives information from the IC andeither allocates space in the Branch Target Address Cache (BTAC) orupdates an entry.Branches are resolved at or before the third execution stage

Dynamic Branch Prediction Uses a Branch Target Address Cache (BTAC) as the first line of branchprediction that hold virtual target addresses.Prediction history of a branch is stored as a two-bit value in the BTACBTAC is a 128-entry direct-mapped cache structureTwo bit values represent the following four states: Strong predict branch takenWeak predict branch takenStrong predict branch not takenWeak predict branch not taken

Static Branch Prediction Second level of branch prediction in processor is static branch prediction,which is based on the characteristics of the branch instruction.Uses no history informationARM1176JZF-S predicts all forward conditional branches not taken and allbackward branches taken.Added to mitigate the trouble experienced by the miss when first encounteringthe branch by the predictor

Branch Folding Technique where the Branch instruction is removed from the pipeline and isstored in a buffer, which is executed on all dynamic predicted branchesCan improve the Branch CPI to under 1Technique not done on the following: BL and BLX instructions, to avoid losing the link. (Branch with link/exchange instruction set)Predicted branches that lead directly to another branchBranches that are have been cancelled when fetched

GPU Overview Broadcom Videocore IV GPU Tile-based renderer (TBR) that use up to four cores40 nm technologyIntegrated graphics card so shared memoryCapable of Blu-Ray quality of 1080p withH.264 at 40Mb/sGraphics performance is similar to the Xbox 124 GFLOPS of general purposecomputational powerHas texture filtering and DMA infrastructureOpenGL ES 1.1, OpenGL ES 2.0, hardwareaccelerated OpenVG 1.1, Open EGL, andOpenMAX

Model B I/O2 x USB 2.01 x HDMI 1.21 x Ethernet Jack26-pin GPIO1 x micro USB for charging1 x audio line-in1 x audio line-out

Projects and ApplicationsRetro Gameboy with Raspberry Pi. CreatorWarner Skoch started with the shell of an originalGameboy.He managed to fit a model B and, a color LCDscreen, and battery inside the chassis. Since theRaspberry Pi was a Linux computer, an emulatorwas installed.

Projects and Applications Cont.Project magic mirror. Creator Michael Teeuwplaced a LCD screen behind a transparentmirror and incorporated a Raspberry Pi forshowing personalized messages, a clock, andeven the upcoming weather.When the display was off, the project worked asa stand mirror. Triggered by some keywords,the display would wake up and show usefulinformation on the screen.

Sources/References ARM 1176JZF-S Technical Reference m.doc.ddi0301h/ddi0301h arm1176jzfs r0p7 pic /com.arm.doc.ddi0301h/index.htmlRaspberry Pi Specs cationsGPU: V.116484.0.html Pi VideoCore APIsHistory and models: Pi


Raspberry Pi is a credit-card sized single-board computer designed and manufactured by the Raspberry Pi foundation in the United Kingdom. Raspberry Pi has an ARMv6 700 MHz single-core processor, a VideoCore IV GPU and 512MB of RAM. it uses an SD card for its operating system and data storage.File Size: 1015KB