Transcript ES vs GP

COM609 Topics in Embedded Systems

Lecture 1. Embedded Systems vs General Purpose Systems

Prof. Taeweon Suh Computer Science Education Korea University

Embedded Systems

• Embedded systems are virtually everywhere in your life  Embedded systems cover a wide range of electronics gadgets such as iPhone, Android phone, GPS, Refrigerator, Washer, TV..

2

Korea Univ

Embedded Systems

• • Embedded System is

a special purpose computer system

designed to perform one or a few dedicated functions - Wikipedia Embedded System market is super competitive 3

Korea Univ

Original iPhone (iPhone 2G)

iPhone Generations

iPhone 3G iPhone 3GS iPhone 4 June 2007 June 2008 June 2009 June 2010 iPhone 4S iPhone 5 Oct. 2011

4 http://en.wikipedia.org/wiki/History_of_the_iPhone

Sep. 2012 Korea Univ

Smartphone War

http://www.sleetherz.com/2011/10/smartphone-war-in-fatal-three-way-iphone-4s vs-droid-razr-vs-galaxy-nexus/ 5

Korea Univ

Embedded Systems

• Even though embedded systems cover a wide range of special-purpose systems, there are common characteristics  

Low cost

• Should be cheap to be competitive   Memory is typically very small compared to a general purpose computer system Lightweight processors are used in embedded systems

Low power

• Should consume low power especially in case of portable devices • Low-power processors are used in embedded systems 6

Korea Univ

Embedded Systems (Cont)

 

High performance

• Should meet the computing requirements of applications   Users want to watch video on portable devices • Audio should be in sync with video Gaming gadgets like playstation should provide high performance

Real-time property

• Job should be done within a time limit  Aerospace applications, Car control systems, Medical gadgets are critical in terms of time constraint – Otherwise, it could lead to catastrophe such as loss of life • Will talk more about this 7

Korea Univ

Embedded Systems (Cont)

It is challenging to satisfy the characteristics

 You may not be able to achieve high performance while utilizing cheap components and maintaining low power consumption  So, you got to do your best in a given circumstance to be competitive in the market 8

Korea Univ

HW/SW Stack of Embedded Systems

Identical to the general computer systems

Application Software OS / Device Drivers Hardware

9

Korea Univ

Components of Embedded Systems

Hardware

 It is mainly composed of processor (1 or more), memory, I/O devices including network devices, timers, sensors etc.

10

Korea Univ

iPhone 4 Teardown

http://www.ifixit.com/Teardown/iPhone-4-Teardown/3130/1 http://news.cnet.com/8301-13924_3-20006904-64.html GSM (Global System for Mobile communications): 2G, 3G, 4G ..

11 UMTS (Universal Mobile Telecommunications Systems): one of 3G technologies being developed into 4G

Korea Univ

512MB Mobile DDR

iPhone 4 Teardown

GSM and more Audio Codec (Cirrus Logic) Samsung flash memory (32GB): K9PFG08 A4 Processor (ARM Cortex A8) designed by Apple manufactured by Samsung

GSM (Global System for Mobile communications): 3G 12

Korea Univ

iPhone 4 Teardown

Accelerometer

detects when the user has rotated the device from portrait to landscape, then automatically changes the contents of the display accordingly •

Proximity sensor

away detects when you lift iPhone to your ear and immediately turns off the display to save power and prevent inadvertent touches until iPhone is moved •

Ambient light sensor

automatically adjusts the display’s brightness to the appropriate level for the current ambient light, enhancing the user experience and saving power at the same time 13

Korea Univ

iPhone 5 Teardown

Accelerometer Touchscreen controller

A6 application processor, based off the ARMv7 ISA

1GB Elpida LP (Low Power) DDR2 integrated according to Chipworks LTE modem 16GB NAND Flash from Hynix Wi-Fi module 3-axis gyroscope

http://www.ifixit.com/Teardown/iPhone+5+Teardown/10525/2 14

Korea Univ

Galaxy S3 Teardown

Samsung 16GB eMMC (MultiMediCard) + 64MB NAND Flash Intel Wireless Processor Exynos 4412: Quad-core A9 with 1GB DDR2

http://www.ifixit.com/Teardown/Samsung-Galaxy-S-III-Teardown/ 15 http://www.samsung.com/

Korea Univ

Exynos 4412 Block Diagram

PoP: Package-on-Package 16

Korea Univ

Galaxy Note Teardown

17 •

Flip-chip DRAM on App. Processor

K3PE7E700B-XXC1 low power 1GB DDR2 • S5PC210 Exynos 4210 : ARM Cortex A9 (Dual-core) 1.4GHz with Mali-400 MP GPU

Korea Univ

Galaxy Note Teardown

Yamaha Audio Codec Audio Processor LCD Driver STMicroelectronics’ Gyroscope

18

Korea Univ

Components of Embedded Systems

Software -

 

System software

Operating systems • • Many times, a multitasking (multithreaded) OS is required, as embedded applications become complicated   Networking, GUI, Audio, Video CPU is context-switched to process multiple jobs Operating system footprint should be small enough to fit into memory of an embedded system   In the past and even now, real-time operating systems (RTOS) such as VxWorks and uC/OS-II have been used because they are light-weighted in terms of memory requirement Nowadays, heavy-weighted OSs such as iOS, Android, Windows Mobile, and embedded Linux (uClinux) are used, as embedded processors support computing power and advanced capabilities such as MMU (Memory Management Unit) Device drivers for I/O devices 19

Korea Univ

Components of Embedded Systems (Cont)

Software (cont.) -

Application

Run on top of operating system 

software

Execute tasks that users wish to perform • Web surfing, Social Network Service, Audio, Video playback 20

Korea Univ

Real-Time Systems

• Real-time operating system (RTOS): Multitasking operating system for real-time applications   RTOS is valued for how quickly and/or predictably respond to a particular event •

Hard real-time systems

are required to complete a critical task within a guaranteed amount of time •

Soft real-time systems

are less restrictive Implementing real-time system requires a careful design of scheduler • System must have the priority-based scheduling •   Real-time processes must have the highest priority

Priority inheritance (next slide)

Solve the priority inversion problem

Process dispatch latency must be small

Hard real-time systems

21

Korea Univ

Priority Inversion Problem

• Pathfinder mission on Mars in 1997  Used VxWorks, an RTOS kernel, from WindRiver  Software problems caused the total system resets of the Pathfinder spacecraft in mission • Watchdog timer goes off, informing that something has gone dramatically wrong and initiating the system reset 22

Korea Univ

Priority Inversion Problem

• VxWorks provides preemptive priority scheduling of threads  Tasks on the Pathfinder spacecraft were executed as threads with priorities that were assigned in the usual manner reflecting the relative urgency of these tasks.

Task 1 tries to get the semaphore Task 1 preempts Task3 Task 1 gets the semaphore and execute Priority Inversion Task 1 (highest priority) Task 2 (medium priority) Task 2 preempts task 3 Task 3 (lowest priority) Task 3 gets semaphore Task 3 is resumed Task 3 is resumed Task 3 releases the semaphore Time

23

Korea Univ

Priority Inheritance

• A lower priority process could be accessing a critical section (a shared resource) that the higher priority process needs  The process with a lower priority inherits the higher priority until they are done with the resource  When they are finished, its priority reverts to its original value

Task 1 tries to get the semaphore (Priority of Task 3 is raised to Task 1’s) Task 1 preempts Task3 Priority Inversion Task 1 completes Task 1 (highest priority) Task 2 (medium priority) Task 3 (lowest priority) Task 3 gets semaphore Task 3 is resumed with the highest priority Task 3 releases the semaphore

24

Time Korea Univ

Operating Systems for Embedded Systems

• RTOSs   pSOS VxWorks   VRTX (Versatile Real-Time Executive) uC/OS-II • Palm OS & Symbian OS(source: Wikipedia)   Palm OS: Embedded operating system initially developed by U.S. Robotics-owned Palm Computing, Inc. for personal digital assistants (PDAs) in 1996 Symbian OS: Proprietary operating system designed for mobile devices by Symbian Ltd. A descendant of Psion's EPOC and runs exclusively on ARM processors • Android  ( http://www.android.com/ ) Open Handset Alliance Project   Based on modified version of Linux 2.6 kernel Currently supporting ARM, MIPS, and x86 25

Korea Univ

Operating Systems for Embedded Systems

• uClinux (source: Wikipedia) - as of 2009       The use of a Linux operating system in embedded computer systems According to survey conducted by Venture Development Corporation, Linux was used by 18% of embedded engineers Embedded versions of Linux are designed for devices with relatively limited resources , such as cell phones and set-top boxes Due to concerns such as cost and size, embedded devices usually have much less RAM and secondary storage than desktop computers, and are likely to use flash memory instead of a hard drive Since embedded devices are used for specific purposes rather than general purposes, developers optimize their embedded Linux distributions to target specific hardware configurations and usage situations • These optimizations can include reducing the number of device drivers and software applications, and modifying the Linux kernel to be a real-time operating system Instead of a full suite of desktop software applications, embedded Linux systems often use a small set of free software utilities dietlibc, uClibc, or Newlib.

such as busybox, and replace the glibc C standard library with a more compact alternative such as 26

Korea Univ

Embedded System Design Flow

Planning & Architect (modeling & simulation)

ASIC/SoC design

Hardware Design with CAD tools ASIC/SoC chip System prototype board Hardware debugging & Software development Final product

  ASIC: Application-Specific Integrated Circuit SoC: System-on-Chip 27

Korea Univ

A General-Purpose Computer System (till 2008)

Peripheral devices CPU FSB (Front-Side Bus) Graphics card North Bridge DMI (Direct Media I/F) Hard disk USB PCIe card But, don’t forget the big picture!

28

Main Memory (DDR2) South Bridge Korea Univ

Past, Present and More…

Core 2 Duo – based Systems

Core i7 (Ivy Bridge) – based Systems CPU FSB (Front-Side Bus) North Bridge Main Memory (DDR2) DMI (Direct Media I/F) South Bridge Keep in mind that CPU and computer systems are evolving at a fast pace!

29  FDI: Flexible Display Interface  SPI: Serial Peripheral Interface 

x86 History (as of 2008)

30

Korea Univ

x86 History (Cont.)

4-bit 8-bit 16-bit 32-bit (i386) 32-bit (i586) 32-bit (i686) 3 rd 2012 Gen. Core i7 (Ivy Bridge)

31

64-bit (x86_64) 2009 1 st Gen. Core i7 (Nehalem) 2 nd 2011 Gen. Core i7 (Sandy Bridge Korea Univ

x86?

• What is x86?

   Generic term referring to processors from Intel, AMD and VIA Derived from the model numbers of the first few generations of processors: • 80

86

, 802

86

, 803

86

, 804

86

x86

Now it generally refers to processors from Intel, AMD, and VIA • x86-16: 16-bit processor • • x86-32 (aka IA32): 32-bit processor * IA: Intel Architecture x86-64: 64-bit processor • Intel takes about 80% of the PC market and AMD takes about 20%  Apple also have been introducing Intel-based Mac from Nov. 2006 * aka: also known as 32

Korea Univ

Chipset

• We call North and South Bridges as Chipset • Chipset has many PCIe devices inside • • North Bridge  Memory controller   PCI express ports to connect Graphics card http://www.intel.com/Assets/PDF/datasheet/316966.pdf

South Bridge  HDD (Hard-disk) controller     USB controller Various peripherals connected • Keyboard, mouse, timer etc PCI express ports http://www.intel.com/Assets/PDF/datasheet/316972.pdf

Note that the landscape is being changed!  For example, memory controller is integrated into CPU 33

Korea Univ

PCI, PCI Express Devices

• PCI (Peripheral Component Interconnect)  Computer bus connecting all the peripheral devices to the computer motherboard • PCIe (PCI Express)  Replaced PCI in 2004  Point-to-point connection

PCI slot PCI express slots PCI express slot x16

http://www.pcisig.com/specifications/pciexpress/ 34

Korea Univ

An Old GP Computer System Example

35

Korea Univ

PCI Express Slots in GP Systems

PCI express slot

36

Korea Univ

GP Computer System in terms of PCIe

North Bridge South Bridge

37

Korea Univ

Software Stack

Applications (MS-office, Google Earth…)

API (Application Program I/F)

Operating System (Linux, Vista, Mac OS …)

BIOS provides common I/Fs

BIOS (AMI, Phoenix Technologies …) Computer Hardware (CPU, Chipset, PCIe cards ...)

38

Korea Univ

How the GP Computer System Works?

• x86-based system starts to execute from the

reset address 0xFFFF_FFF0

 The first instruction is “

jmp xxx

” off from BIOS ROM • BIOS (Basic Input/Output System)    Detect and initialize all the devices (including PCI devices via PCI enumeration) on the system Provide common interfaces to OS Hand over the control to OS • OS   Manage the system resources including main memory • Control and coordinate the use of the hardware among various application programs for the various users Provide APIs for system and application programming 39

Korea Univ

So… What?

How is it different from embedded systems?

  General-purpose computer systems provide

programmability

to end-users • You can do any kinds of programming on your PC  C, C++, C#, Java etc General-purpose systems should provide

compatibility

backward

A new system should be able to run legacy software, which could be in the form of binaries with no source codes written 30 years ago  So, general purpose computer system becomes messy and complicated, still containing all legacy hardware functionalities 40

Korea Univ

x86 Operation Modes

Real Mode (= real address mode)   Programming environment of the 8086 processor 8086 is a 16-bit processor from Intel • Protected Mode   Native state of the 32-bit Intel processor • For example, Windows is running in protected mode if 32-bit Windows is installed on your PC 32-bit mode • IA-32e mode (IA-32 Extended Mode)  There are 2 sub modes • Compatibility mode • 64-bit mode 41

Korea Univ

Registers in 8086

• Registers inside the 8086   16-bit segment registers • CS, DS, SS, ES General-purpose registers • • all 16-bits AX, BX, CX, DX, SP, BP, SI, DI • Registers in x86-32 42

Korea Univ

Real Mode Addressing

• In real mode (8086), general purpose registers are all 16-bit wide • Real model    Segment registers specify the base address of each segment Segment registers • CS: Code Segment -> used to store instructions • DS: Data Segment -> used to store data • • SS: Stack Segment -> stack ES: Extra Segment -> could be used to store more data Addressing method • Segment << 4 + offset = physical address • Example: mov ax, 2000h mov ds, ax  Data segment starts from 20000h (2000h << 4) 43

Korea Univ

Data Segment in Real Mode

• Memory addressing in real mode (8086)

0xFFFFF

mov ax, 2000h mov ds, ax mov al, [100h] offset DS

100h 2000h

44

Main Memory (1MB) 20100h 20000h = 2000h << 4 0x0 Korea Univ

A20M

• 8088/8086 allows only 1MB memory access since they have only 20-bit physical address lines  2 20 = 1MB • Memory is accessed with

segment:offset

same though)  in 8086/8088 (still the What if CS=0xFFFF, IP=0x0020?

• CS << 4 + IP = 0x100010 • But, we have only 20 address lines. So, 8088 ends up accessing 0x00010 ignoring the “1” in A21 • Some (weird?) programmers took advantage of this mechanism 45

Korea Univ

A20M (Cont)

• How about now?

   Your Core 2 Duo has 48-bit physical address lines What happens if there is no protection in the previous case • Processor will access 0x100010, breaking the legacy code So, x86 provides a mechanism called

A20M (A20 Mask)

to make it compatible with the old generations 46

Korea Univ

A20M (Cont)

47

Korea Univ

Another Example

Protected mode addressing (32-bit)

    As application programs become larger, 1MB main memory is too small Intel introduced protected mode to address a larger memory (up to 4GB) But, Intel still wants to use 16-bit segment registers for the backward compatability How to access a 4GB space with a 16-bit register?

48

Korea Univ

Protected Mode Addressing

Segment Selector

Index Visible to software Hardware Inside the CPU (Registers) Invisible to software T I R P L

31 0 19 0 Base Limit Access info • TI: Table Indicator • RPL: Requested Privilege Level 49

TI = 0 GDT TI = 1 LDT

Segment Descriptor Segment Descriptor Segment Descriptor Segment Descriptor Segment Descriptor

Main memory

Segment Descriptor Segment Descriptor Segment Descriptor Segment Descriptor Segment Descriptor

Korea Univ

Segment Descriptor Format

• Software (OS) creates descriptor tables (GDT, LDT) 50

Korea Univ

Address Translation in Protected Mode

51

Korea Univ

One More Example

8259 Interrupt Controller

CPU FSB (Front-Side Bus) DMI (Direct Media I/F) North Bridge Main Memory (DDR) South Bridge Still in South Bridge 82C59A (Master) 82C59A (Slave) IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INTR INTA IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INTR INTA

52

CPU (8086) INTR Korea Univ

Backup Slides

53

Korea Univ

Core i7-based Systems

• Core i7 860 (Lynnfield) – based system • Core i7 920 (Bloomfield) – based system 54

Korea Univ

Present and More…

Core 2 Duo – based Systems

Core i7– based Systems CPU FSB (Front-Side Bus) North Bridge Main Memory (DDR2) DMI (Direct Media I/F) South Bridge Quickpath (Intel) or Hypertransport (AMD) CPU North Bridge DMI (Direct Media I/F) Main Memory (DDR3) South Bridge Keep in mind that CPU and computer systems are evolving at a fast pace

55

Korea Univ