Top Banner
Lecture 1. Embedded Systems vs General-Purpose Systems Prof. Taeweon Suh Computer Science Education Korea University COM609 Topics in Embedded Systems
55

Lecture 1. Embedded Systems vs General-Purpose Systems

Jan 01, 2016

Download

Documents

octavia-stevens

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 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture 1. Embedded Systems vs General-Purpose Systems

Lecture 1. Embedded Systems vs General-Purpose Systems

Prof. Taeweon SuhComputer Science Education

Korea University

COM609 Topics in Embedded Systems

Page 2: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Embedded Systems

2

• 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..

Page 3: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Embedded Systems

3

• Embedded System is a special-purpose computer system designed to perform one or a few dedicated functions - Wikipedia

• Embedded System market is super competitive

Page 4: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

iPhone Generations

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

Original iPhone(iPhone 2G)

June 2007

iPhone 3G

June 2008

http://apple.wikia.com/wiki/IPhone_3G

iPhone 3GS

June 2009

iPhone 4

June 2010

Oct. 2011

iPhone 4S

Sep. 2012

iPhone 5

Page 5: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Smartphone War

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

Page 6: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 7: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 8: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 9: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

HW/SW Stack of Embedded Systems

• Identical to the general computer systems

9

OS / Device Drivers

Hardware

Application Software

Page 10: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 11: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

iPhone 4 Teardown

11

http://news.cnet.com/8301-13924_3-20006904-64.html

http://www.ifixit.com/Teardown/iPhone-4-Teardown/3130/1

GSM (Global System for Mobile communications): 2G, 3G, 4G ..UMTS (Universal Mobile Telecommunications Systems): one of 3G technologies being developed into 4G

Page 12: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

iPhone 4 Teardown

12

A4 Processor (ARM Cortex A8) designed by Apple manufactured by Samsung

GSM and more

GSM (Global System for Mobile communications): 3G

Samsung flash memory (32GB): K9PFG08

Audio Codec (Cirrus Logic)

512MB Mobile DDR

Page 13: Lecture 1. Embedded Systems vs General-Purpose Systems

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 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 away

• 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

Page 14: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

iPhone 5 Teardown

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

16GB NAND Flash from Hynix

3-axis gyroscope

Wi-Fi module

A6 application processor, based off the ARMv7 ISA 1GB Elpida LP (Low Power) DDR2 integrated according to Chipworks

Touchscreen controller

Accelerometer

LTE modem

Page 15: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Galaxy S3 Teardown

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

Exynos 4412: Quad-core A9 with 1GB DDR2

Intel Wireless Processor

Samsung 16GB eMMC (MultiMediCard) + 64MB NAND Flash

http://www.samsung.com/

Page 16: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Exynos 4412 Block Diagram

16PoP: Package-on-Package

Page 17: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

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

Galaxy Note Teardown

17

Page 18: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

LCD Driver

Yamaha Audio Codec

Audio Processor

Galaxy Note Teardown

18

STMicroelectronics’ Gyroscope

Page 19: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 20: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Components of Embedded Systems (Cont)

• Software (cont.) - Application software Run on top of operating system Execute tasks that users wish to perform

• Web surfing, Social Network Service, Audio, Video playback

20

Page 21: Lecture 1. Embedded Systems vs General-Purpose Systems

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

21

Hard real-time systems

Page 22: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 23: Lecture 1. Embedded Systems vs General-Purpose Systems

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.

23

Task 3(lowest priority)

Task 2(medium priority)

Task 1(highest priority)

TimeTask 3 gets semaphore

Task 1 preempts Task3

Task 1 tries to get the semaphore

Task 3 is resumed

Task 2 preempts task 3

Task 3 is resumed

Task 3 releases the semaphore

Task 1 gets the semaphore and execute

Priority Inversion

Page 24: Lecture 1. Embedded Systems vs General-Purpose Systems

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

24

Task 3(lowest priority)

Task 2(medium priority)

Task 1(highest priority)

TimeTask 3 gets semaphore

Task 1 preempts Task3

Task 1 tries to get the semaphore(Priority of Task 3 is raised to Task 1’s)

Task 3 is resumed with the highest priority

Task 1 completesPriority Inversion

Task 3 releases the semaphore

Page 25: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 26: Lecture 1. Embedded Systems vs General-Purpose Systems

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 such as busybox, and replace the glibc C standard library with a more compact alternative such as dietlibc, uClibc, or Newlib.

26

Page 27: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Embedded System Design Flow

27

Planning & Architect

(modeling & simulation)

Hardware Design with CAD tools

ASIC/SoC designASIC/SoC

chip

System prototype board

Hardware debugging &

Software development

Final product

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

Page 28: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

A General-Purpose Computer System (till 2008)

28

CPU

North Bridge

South Bridg

e

Main Memor

y(DDR2)

FSB (Front-Side Bus)

DMI (Direct Media I/F)

Hard disk

USB

PCIe card

Peripheral devices

Graphics card

But, don’t forget the big picture!

Page 29: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Past, Present and More…

29

Keep in mind that CPU and computer systems are evolving at a fast pace!

CPU

North Bridge

South Bridge

Main Memor

y(DDR2)

FSB (Front-Side Bus)

DMI (Direct Media I/F)

• Core 2 Duo – based Systems

• Core i7 (Ivy Bridge) – based Systems

FDI: Flexible Display Interface SPI: Serial Peripheral Interface SMBus: System Management Bus

Page 30: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

x86 History (as of 2008)

30

Page 31: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

x86 History (Cont.)

31

32-bit (i386)

32-bit (i586) 64-bit (x86_64)32-bit (i686)

8-bit 16-bit 4-bit

2009 20111st Gen. Core i7

(Nehalem)

2nd Gen. Core i7(Sandy Bridge

20123rd Gen. Core i7

(Ivy Bridge)

Page 32: Lecture 1. Embedded Systems vs General-Purpose Systems

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: • 8086, 80286, 80386, 80486 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

32* aka: also known as

Page 33: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 34: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

PCI, PCI Express Devices

34

• 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 slotPCI express slots PCI express slot

x16

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

Page 35: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

An Old GP Computer System Example

35

Page 36: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

PCI Express Slots in GP Systems

36

PCI express slot

Page 37: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

GP Computer System in terms of PCIe

37

North Bridge

South Bridge

Page 38: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Software Stack

38

Computer Hardware(CPU, Chipset, PCIe cards ...)

BIOS (AMI, Phoenix Technologies

…)

Operating System(Linux, Vista, Mac OS …)

Applications(MS-office, Google Earth…)

API (Application Program I/F)

BIOS provides common I/Fs

Page 39: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

How the GP Computer System Works?

39

• 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

Page 40: Lecture 1. Embedded Systems vs General-Purpose Systems

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 backward compatibility

• 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

Page 41: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ41

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

Page 42: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 43: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ43

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, 2000hmov ds, ax Data segment starts from 20000h (2000h << 4)

Page 44: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ44

Data Segment in Real Mode

• Memory addressing in real mode (8086)

Main Memory(1MB)

2000hDS

mov ax, 2000hmov ds, axmov al, [100h]

100hoffset

0x0

0xFFFFF

20000h = 2000h << 4

20100h

Page 45: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

A20M

• 8088/8086 allows only 1MB memory access since they have only 20-bit physical address lines 220 = 1MB

• Memory is accessed with segment:offset in 8086/8088 (still the same though) 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

Page 46: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 47: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

A20M (Cont)

47

Page 48: Lecture 1. Embedded Systems vs General-Purpose Systems

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

Page 49: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ49

Protected Mode Addressing

IndexSegment Selector TI

RPL

15 3 2 1 0

GDT LDT

TI = 0 TI = 1

Segment Descriptor

Segment Descriptor

Segment Descriptor

Segment Descriptor

Segment Descriptor

Segment Descriptor

Segment Descriptor

Segment Descriptor

Segment Descriptor

Segment Descriptor

BaseAccess info

31 0 19 0

Limit

HardwareInside the CPU

(Registers)

Mainmemory

Visible to software

Invisible to software

•TI: Table Indicator•RPL: Requested Privilege Level

Page 50: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ50

Segment Descriptor Format

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

Page 51: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ51

Address Translation in Protected Mode

Page 52: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

One More Example

• 8259 Interrupt Controller

52

IR0IR1IR2IR3IR4IR5IR6IR7

INTR

IR0IR1IR2IR3IR4IR5IR6IR7

INTR

INTA

INTA

INTR82C59A(Master)

82C59A(Slave)

CPU (8086)

CPU

North Bridge

South Bridge

Main Memory(DDR)

FSB (Front-Side Bus)

DMI (Direct Media I/F)

Still in South Bridge

Page 53: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Backup Slides

53

Page 54: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Core i7-based Systems

• Core i7 860 (Lynnfield) – based system

54

• Core i7 920 (Bloomfield) – based system

Page 55: Lecture 1. Embedded Systems vs General-Purpose Systems

Korea Univ

Present and More…

55

CPU

North Bridge

South Bridge

Main Memor

y(DDR2)

FSB (Front-Side Bus)

DMI (Direct Media I/F)

CPU

North Bridge

South Bridge

Main Memor

y(DDR3)

Quickpath (Intel) orHypertransport (AMD)

DMI (Direct Media I/F)

• Core 2 Duo – based Systems

• Core i7– based Systems

Keep in mind that CPU and computer systems are evolving at a fast pace