ES vs GP

advertisement
COM609 Topics in Embedded Systems
Lecture 1. Embedded Systems vs GeneralPurpose 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 specialpurpose computer system
designed to perform one or a few
dedicated functions - Wikipedia
• Embedded System market is super
competitive
3
Korea Univ
iPhone Generations
Original iPhone
(iPhone 2G)
June 2007
iPhone 3G
June 2008
iPhone 3GS
iPhone 4
June 2009
June 2010
iPhone 5
iPhone 4S
Sep. 2012
Oct. 2011
http://apple.wikia.com/wiki/IPhone_3G
4
http://en.wikipedia.org/wiki/History_of_the_iPhone
Korea Univ
Smartphone War
http://www.sleetherz.com/2011/10/smartphone-war-in-fatal-three-way-iphone-4svs-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
Audio Codec (Cirrus Logic)
Samsung flash memory
(32GB): K9PFG08
GSM and
more
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 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
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
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
17
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 software
 Run on top of operating system
 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
Hard real-time
systems
 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
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 is resumed
Task 3 gets semaphore
Task 3 is resumed
Time
Task 3 releases the semaphore
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
Time
Task 3 releases the semaphore
24
Korea Univ
Operating Systems for Embedded Systems
•
RTOSs




•
Palm OS & Symbian OS(source: Wikipedia)


•
pSOS
VxWorks
VRTX (Versatile Real-Time Executive)
uC/OS-II
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 such as busybox, and
replace the glibc C standard library with a more compact alternative such as
dietlibc, uClibc, or Newlib.
26
Korea Univ
Embedded System Design Flow
ASIC/SoC design
Planning & Architect
(modeling &
simulation)
System prototype
board
Hardware Design
with CAD tools
Hardware debugging &
Software development
 ASIC: Application-Specific Integrated Circuit
 SoC: System-on-Chip
27
ASIC/SoC chip
Final product
Korea Univ
A General-Purpose Computer System
(till 2008)
CPU
Main
Memory
(DDR2)
FSB
(Front-Side Bus)
North
Bridge
Graphics
card
Peripheral
devices
DMI
(Direct Media I/F)
Hard disk
USB
South
Bridge
PCIe card
But, don’t forget the big picture!
28
Korea Univ
Past, Present and More…
•
•
Core 2 Duo – based Systems
Core i7 (Ivy Bridge) – based
Systems
CPU
FSB
(Front-Side Bus)
Main
Memory
(DDR2)
North
Bridge
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
 SMBus: System Management Bus
Korea Univ
x86 History (as of 2008)
30
Korea Univ
x86 History (Cont.)
4-bit
32-bit (i586)
8-bit
16-bit
32-bit (i686)
32-bit (i386)
64-bit (x86_64)
2009
2011
1st Gen. Core i7 2nd Gen. Core i7
(Sandy Bridge
(Nehalem)
2012
3rd Gen. Core i7
(Ivy Bridge)
31
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
• x86-64: 64-bit processor
* IA: Intel Architecture
• 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)
•
PCIe (PCI Express)
 Computer bus connecting all the peripheral devices to the computer
motherboard
 Replaced PCI in 2004
 Point-to-point connection
PCI express slots
PCI slot
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 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
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
Main
Memory
(1MB)
100h
20100h
20000h = 2000h << 4
2000h
0x0
44
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
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
15
Segment Selector
3
Index
2
T
I
10
R
P
L
TI = 1
TI = 0
GDT
LDT
Segment
Descriptor
Segment
Descriptor
Visible to software
Hardware
Inside the CPU
(Registers)
Segment
Descriptor
Invisible to software
31
0 19
Base
0
Limit
Access
info
•TI: Table Indicator •RPL: Requested Privilege Level
49
Main
memory
Segment
Descriptor
Segment
Descriptor
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
Main
Memory
(DDR)
FSB
(Front-Side Bus)
Still in South Bridge
North
Bridge
82C59A
(Master)
DMI
(Direct Media I/F)
South
Bridge
82C59A
(Slave)
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
INTR
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
CPU (8086)
INTR
INTR
INTA
INTA
52
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
CPU
CPU
FSB
(Front-Side Bus)
Main
Memory
(DDR2)
Main
Memory
(DDR3)
Quickpath (Intel) or
Hypertransport (AMD)
North
Bridge
North
Bridge
DMI
(Direct Media I/F)
Core i7– based Systems
South
Bridge
DMI
(Direct Media I/F)
South
Bridge
Keep in mind that CPU and computer systems are evolving at a fast pace
55
Korea Univ
Download