raspberry pi- arm11 architecture v2 -...
TRANSCRIPT
Kevin MeehanStephen Moskal
Computer Architecture‐Winter 2012Dr. Shaaban
ContentsRaspberry Pi FoundationRaspberry Pi overview & specsARM11 overviewARM11 cache, pipeline, branch predictionARM11 vs. ARM9 ARM11 futureProgramming the Raspberry Pi Raspberry Pi uses and project ideasRaspberry Pi vs. Arduino
Raspberry Pi FoundationUK registered educational charityPromote the study of computer scienceCheap, low‐power, programmable computersEducation, developing nationsOne Laptop per Child, Arduino
Raspberry Piultra‐low‐cost ($25‐$35)credit‐card sized Linux computer10/100 Ethernet, HDMI, SD‐card, USBGPIO to control external devicesUART, I2C interface
SpecificationsBroadcom BCM2835 System on a chip (SoC) [1]
ARM1176JZF‐S processor700 MHz with overclock capability to 1 GHz
VideoCore IV GPU [2]Supports 1080p H.264 decoding and encoding
256 MB (model A) or 512 MB (model B) SDRAM [3]26 available low‐level peripherals
GPIO, UART, I2C, I2S, +3.3V, +5V, GND Price: $35
ARM11‐ OverviewBased on the ARMv6 instruction set architecture. [4]
32‐bit ARM ISA16‐bit Thumb ISA
Used in embedded systems with low amounts of memory, not used in the RPi.
16 General‐purpose registers R0‐R15, 15 general purpose “mode‐specific” registers, 7 status registers [5]Designed to run various operating systems (Unix/Linux, Android) on many different devices (iPhone (Gen 3), Nintendo 3DS, etc.)
ARM11 Cache OrganizationFour‐way set associative cache of configurable size. [4]
Virtually indexed and physically taggedSizes in the range of 4 to 64KB
Processor level‐one memory has separate instruction and data caches
Data cache misses are non‐blocking [5]L1 cache’s write buffer handles all RAW hazardsL2 cache is off chip
Eight Stage PipelineFe1‐ Address is issued to memory, data returns from memory. [4]Fe2‐ Branch preditionDe‐ Instruction DecodeIss‐ Register read and instruction issueSh‐ Shifter stageALU‐Main integer operation calculationSat‐ Enable saturation of integer resultsWbex‐Write back
ARM1176JZF‐S Pipeline Stages
Typical Multiply Pipeline
Branch Prediction [6]Static Predictor‐ First time run
Forward conditional branches are assumed to be takenBackward conditionals are assumed to be not taken
Dynamic Predictor‐Branch prediction cache as 128 entries based on the branch instruction address.States: Strongly not taken, weakly not taken, strongly taken, weakly taken.
A return stack predicts unconditional subroutine return instructions.
ARM11 vs. ARM9Cache is physically addressed in ARM11[7]
ARM9 had cache aliasing and context switching issues.Redesigned pipeline
8 stages for ARM11 vs. 5 for ARM9ARM11 has out‐of‐order completionNo dynamic branch prediction in ARM9 (always assumed not taken)ARM11 has Load/Store and ALU paralellism
ARM11 64‐bit data paths vs. 32‐bit ARM9
ARM11 FutureVery little.The reason that the Raspberry Pi is extremely cheap is because the ARM11 is outdated.It’s successor, the ARM Cortex A8 is a dual‐issue superscalar design, achieving double the IPC. [8]
The A8 is seen in the iPhone 4The A8 is been also seceded by the Cortex A15 and can be seen in the Nvidia Tegra 4 [9]
Programming Raspberry Pi Raspbian, Arch Linux ARM, Debian, AndroidChrome OS, RISC OS, FedoraPython, C, Perl, Java (must compile for ARMv6)Education ManualScratch ‐ visual programming environmentRaspberry Pi App store [10]
Raspberry Pi usesUniversity of Southampton supercomputer [11]Programming introduction for childrenSenior Design projects
Raspberry Pi vs. ArduinoMicroprocessorComputer sciencemultimediaFull Linux environmentPython, C, Perl, Java
MicrocontrollerElectronicsSignal processingReal time applicationsC or C++
References[1] "BCM2835 Media Processor; Broadcom". http://www.broadcom.com/products/BCM2835 1 September 2011. Retrieved 13 February 2013.[2] Brose, Moses (30 January 2012). "Broadcom BCM2835 SoC has the most powerful mobile GPU in the world?". Grand MAX. Retrieved 13 February 2013.[3] "Model B now ships with 512MB of RAM". http://www.raspberrypi.org/archives/2180. Retrieved 13 Febuary 2013. Retreived 13 February 2013[4] “Arm11 Processors” http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0360e/I1002919.htmlRetrieved 13 Febuary 2013[5] Davey, Oliveri (Spring 2009) “The ARM11 Architecture” Retrieved 12 February 2013[6] Sloss, Symes, Wright “ARM System Developer's Guide: Designing and Optimizing System Software” page 661, Retreived 13 February 2013[7] "The ARM11 Microarchitecture", ARM Ltd, 2002, Retreived 13 February 2013[8] “Cortex‐A8 Processors”http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.subset.cortexa.a8/index.html ARM Ltd Retreived 13 February [9] “NVIDIA Announces "Project Denver" to Build Custom CPU Cores Based on ARM Architecture, Targeting Personal Computers to Supercomputers”http://pressroom.nvidia.com/easyir/customrel.do?easyirid=A0D622CE9F579F09&version=live&releasejsp=release_157&xhtml=true&prid=705184 , Retrieved 13 Feburary 2013[10]] Brodkin, Jon. "ArsTechnica." Ars Technica. N.p., 17 Dec. 2012. Web. 18 Feb. 2013. <http://arstechnica.com/information‐technology/2012/12/raspberry‐pi‐now‐has‐an‐app‐store‐and‐yes‐it‐has‐games/>.[11] "University of Southampton." Southampton Engineers a Raspberry Pi Supercomputer. Retreived 18 Feb. 2013. <http://www.southampton.ac.uk/mediacentre/features/raspberry_pi_supercomputer.shtml>.