introduction
play

Introduction 2 A Modern Computer iPhone XS Computer Systems and - PowerPoint PPT Presentation

Computer Systems and Networks ECPE 170 Jeff Shafer University of the Pacific Introduction 2 A Modern Computer iPhone XS Computer Systems and Networks Spring 2019 3 Applications Computer Systems and Networks Spring 2019 4


  1. ì Computer Systems and Networks ECPE 170 – Jeff Shafer – University of the Pacific Introduction

  2. 2 A Modern Computer – iPhone XS Computer Systems and Networks Spring 2019

  3. 3 Applications Computer Systems and Networks Spring 2019

  4. 4 Application – Pokemon Go ì Written in a high level language (Objective C) ì What resources does Pokemon Go need to run? (i.e. what does the executable file need to execute?) Hardware ì ì Processor(s) – Run program, display graphics, … ì Memory – Store programs, store data ì I/O – Touch screen, storage, network, 3-axis gyro, … Software - Operating system ì Computer Systems and Networks Spring 2019

  5. 5 Software - Operating System ì Apple iOS – Used in iPads, iPhones, iPods, Apple TV Variant of Mac OS X operating system used on ì traditional Macs ì What are some jobs of this operating system? Manage hardware ì Manage applications (multitasking) ì ì Written in high-level languages C, C++, Objective C (varies by component) ì Can we run this code directly on the processor? ì Computer Systems and Networks Spring 2019

  6. 6 Software - Compilers / Interpreters These are programs that build other programs! ì Goal: Convert high-level languages into machine code ì that can be directly executed by hardware Examples ì Apple Xcode ì Microsoft Visual ì Studio What’s the difference ì between a compiler and interpreter? Computer Systems and Networks Spring 2019

  7. 7 Hardware https://www.ifixit.com/Teardown/iPhone+XS+and+XS+Max+Teardown/113021 Computer Systems and Networks Spring 2019

  8. 8 Hardware Apple A12 64-bit Processor + 4GB of RAM (layered) Power Management Audio Amplifiers Power Management Battery Charger https://www.ifixit.com/Teardown/iPhone+XS+and+XS+Max+Teardown/113021 Computer Systems and Networks Spring 2019

  9. 9 iPhone XS Processor ì Apple A12 Processor Clock speed – 2.5GHz ì What do these mean? 6 cores ì 4GB RAM ì ì What does a processor do? Executes machine language instructions ì ì Machine language? How does the processor execute the instructions? ì Computer Systems and Networks Spring 2019

  10. 10 Microarchitecture Computer Systems and Networks Spring 2019

  11. 11 How Does It Work? Apple won’t tell us – trade ì secret! Experts can dissolve (with ì acid), burn, or grind off outer protective layers of chip and then peer inside: Need a really good ì microscope! Reverse Engineering in ì the Semiconductor Industry: http://www.scribd.com/doc/53 742174/Reverse-Engineering Computer Systems and Networks Spring 2019

  12. 12 Can see this level of detail with your own eyes… Divided into logic blocks with different functions: Processor • Cache memory • Memory • Controller Video (GPU) • Computer Systems and Networks https://www.anandtech.com/show/13393/techinsights-publishes-apple-a12-die-shot-our-take Spring 2019

  13. 13 SEM Cross-Section of (older) Apple A5 Computer Systems and Networks Spring 2019

  14. 14 Digital Logic Transistor Memory cell Computer Systems and Networks Spring 2019

  15. 15 Transistors ì You can still make assumptions at this level that the transistor is either “on” (1) or “off” (0) ì But below this are analog circuits Computer Systems and Networks Spring 2019

  16. 16 The Computer Level Hierarchy ì Level 6: The User Level – “Pokemon Go” User Level Program execution and user interface level ì High-Level Language ì Level 5: High-Level Language Level – “Objective C” Assembly Programming languages like C++, Java, Python, … ì ì Level 4: Assembly Language Level – “ARM Assembly” Program directly at this level, or … ì Use a compiler/interpreter to process/convert high- ì level code Computer Systems and Networks Spring 2019

  17. 17 The Computer Level Hierarchy ì Level 3: System Software Level - “iOS” User Level Controls active programs and manages system ì High-Level resources Language Assembly language instructions often pass through ì Assembly Level 3 without modification System ì Level 2: Machine Level Instruction Set Architecture (ISA) Level ì Machine Instructions are particular to the architecture of the ì specific machine (i.e. Intel processors, ARM processors, IBM processors…) Computer Systems and Networks Spring 2019

  18. 18 The Computer Level Hierarchy These levels are too hardware-oriented for ECPE 170… User Level ì Level 1: Control Level High-Level Decodes and executes instructions and moves data ì Language through the system Assembly ECPE 173 – Computer Organization & Architecture ì System ì Level 0: Digital Logic Level Digital circuits, gates and wires implement the ì Machine mathematical logic of all other levels Control ECPE 71 – Digital Design ì ECPE 174 – Advanced Digital Design Digital Logic Computer Systems and Networks Spring 2019

  19. 19 Hardware / Software “Stack” Terminal … Firefox LibreOffice Shell User-Space (Bash) (“Applications”) Kernel-Space Operating System (“OS”) Device Drivers Software Hardware … Storage CPU Memory GPU Network Disk, SSD Computer Systems and Networks Spring 2019

  20. 20 ì Course Overview Computer Systems and Networks Spring 2019

  21. 21 Motivating Question ì What do you, as a programmer, need to know about the underlying system (software and hardware) to write more efficient code? Role of the tools ì ì Compiler, assembler, linker, profiler Role of the operating system and its efficient usage ì Assembly programming (using the CPU efficiently) ì Memory hierarchy and its impact on performance ì Computer Systems and Networks Spring 2019

  22. 22 Course Goals Present a complete view of how computer systems are ì constructed From the CPU assembly programming level ì to the user application level Understand the relationship between computer ì software and hardware Lay the foundation for future courses ì Advanced Digital design / VLSI ì Operating systems ì Computer networking ì Application development ì Computer Systems and Networks Spring 2019

  23. 23 C Programming Language C Why not Python, Java, Ruby, ì Perl, PHP, …? High-level languages (especially ì interpreted, managed code…) try to hide the underlying machine from you ECPE 170 wants to reveal the ì underlying machine to you! Industry demand for systems ì programmers Computer Systems and Networks Spring 2019

  24. 24 Linux ì Course will be taught 100% in Linux Did you have to choose Linux for ECPE ì 170? No, not really, but… ì Too many Pacific graduates were ì escaping without a working knowledge! Feedback from co-op employers and ì graduates: “More Linux/Unix skills please!” Computer Systems and Networks Spring 2019

  25. 25 Linux Who here has used a Linux ì desktop/laptop/server before? Who here has used a Linux “device” ì before? I’d be surprised if it isn’t everyone… ì Android runs a Linux kernel ì Amazon Kindle runs a Linux kernel ì TiVO runs a Linux kernel ì Computer Systems and Networks Spring 2019

  26. 26 Discussion ì What is open-source? ì What is an operating system kernel ? Is the kernel everything you need from an OS? ì ì What is Linux? ì What is Ubuntu Linux? (RedHat? Debian? …) à Show family tree of distributions ß ì Computer Systems and Networks Spring 2019

  27. 27 Virtual Machine ì Course will be taught 100% from a virtual machine booting Linux that you install! Couldn’t you just give us remote access ì to a server someplace that is already configured? Yes, but… ì By installing it yourself you will have ì the skills to use it again in the future Computer Systems and Networks Spring 2019

  28. 28 Discussion ì What is a Virtual Machine? ì How is it different from dual booting? ì Which comes first, the virtual machine, or the OS? Answer: It depends! ì Typical desktop install: hosted virtualization ì Typical server install: bare-metal virtualization ì Computer Systems and Networks Spring 2019

  29. 29 Recommended Hosted Virtualization technique for ECPE 170 Computer Systems and Networks Spring 2019

  30. 30 Bare-Metal Virtualization More efficient, but not as easy to install. The virtual machine monitor acts like an operating system itself! Computer Systems and Networks Spring 2019

  31. 31 Version Control ì Course will use version control! Only way to get lab code or turn in ì assignments Did you have to mandate VCS for ECPE 170? ì No, not really, but… ì Too many Pacific graduates were avoiding ì learning this on their own! Feedback from co-op employers and ì graduates: “Only n00bs work without version control!” Used everywhere: Source code of all kinds! ì (C++, Python, Matlab, VHDL/Verilog, …) Computer Systems and Networks Spring 2019

  32. 32 Version Control Who here has used a version control ì system before? What system? ì Where at? ì What purpose? ì Computer Systems and Networks Spring 2019

  33. 33 Questions? ì Questions? ì Concerns? Computer Systems and Networks Spring 2019

  34. 34 ì Course Mechanics Computer Systems and Networks Spring 2019

Recommend


More recommend