13
COTS Moves to Multicore: COTS Moves to Multicore: Software Considerations to Ease the Transition To Multi-core Chris Ault, Senior Product Manager – Wind River

Cots moves to multicore: Wind River

Embed Size (px)

DESCRIPTION

Chris Ault is a Senior Product Manager with Wind River Systems focusing on virtualization solutions. Prior to joining Wind River, Chris has worked in various roles from software engineering, engineering management, technical sales, and product management. Chris holds Electronics, Computer Science, and Economics degrees and resides in Ottawa, Canada.

Citation preview

Page 1: Cots moves to multicore: Wind River

COTS Moves to Multicore: COTS Moves to Multicore: Software Considerations to Ease the Transition To Multi-coreChris Ault, Senior Product Manager – Wind River

Page 2: Cots moves to multicore: Wind River

Evolution to Multi-core

| © 2010 Wind River. All Rights Reserved.2

Page 3: Cots moves to multicore: Wind River

Migrating from Single-Core to Multi-core

� Performance:– There may be increases

– There may be decreases• Data dependencies

• Race conditions

� Programming Model– Revisit your synchronization assumptions

– There is shared hardware in there!

� Algorithms: need to be multi-core-aware

| © 2010 Wind River. All Rights Reserved.3

Page 4: Cots moves to multicore: Wind River

Migrating from Single-Core to Multi-core

� Shared hardware on the board

� OS privilege levels: multiple instances of the kernel, one per core

| © 2010 Wind River. All Rights Reserved.4

Page 5: Cots moves to multicore: Wind River

Multi-core: Shared Hardware Resources

� All cores share access to– I/O devices

– Memory

– Timers/clocks

– Interrupt controller

| © 2010 Wind River. All Rights Reserved.5

Core Core Core Core

IDE Ethernet MemoryTimer Serial

Interrupt Controller

Page 6: Cots moves to multicore: Wind River

Privilege Modes: Single-Core

Operating systems work in privilege modes:� The OS kernel itself can do anything with the hardware

� Device drivers are more restricted

� User applications/components are least privileged

| © 2010 Wind River. All Rights Reserved.6

Intel privilege rings source: Wikipedia

Ring 3

Ring 2

Ring 1

Ring 0

Kernel

Device Drivers

Device Drivers

Applications

Least Privileged

Most Privileged

Example based on Intel privilege rings, other processors have similar concepts

AM

P

Page 7: Cots moves to multicore: Wind River

Privilege Modes and Multi-core

� Cores in privilege mode can control the entire hardware and mask interrupts

� More control may be required in a multi-core setting

� Can seriously impacts robustness

| © 2010 Wind River. All Rights Reserved.7

Ring 3Ring 2Ring 1

Ring 0

Kernel

Device Drivers

Device Drivers

Applications

Ring 3Ring 2Ring 1

Ring 0

Kernel

Device Drivers

Device Drivers

Applications

Ring 3Ring 2Ring 1

Ring 0

Kernel

Device Drivers

Device Drivers

Applications

Ring 3Ring 2Ring 1

Ring 0

Kernel

Device Drivers

Device Drivers

Applications

Core Core Core Core

SM

P

Page 8: Cots moves to multicore: Wind River

SMP Operating System

� Multiple instances of tasks running at the same priority

� Lower priority tasks running concurrently with higher priority tasks

� Lower priority tasks may mask interrupts and starve higher priority tasks

Review Your Assumptions

higher priority tasks

| © 2010 Wind River. All Rights Reserved.8

Page 9: Cots moves to multicore: Wind River

Algorithms, Data Parallelism

� Traditional Single-core systems:– Single instance of processing task operates on complete data

set

– Does not utilize all cpu cores

| © 2010 Wind River. All Rights Reserved.9

Core

Core

Core

Core

DataProcessing

Data Set

Idle

cor

es

Page 10: Cots moves to multicore: Wind River

Data Parallelism

� Multiple instances of data processing, operating on smaller subsets of data

� Multi-core-aware algorithms are necessary to realize increases in processing speed

– Re-architect & re-write code

| © 2010 Wind River. All Rights Reserved.10

Core

Core

Core

Core

Data Processing

Data Subsets

Data Processing

Data Processing

Data Processing

Page 11: Cots moves to multicore: Wind River

Complex Challenges When Migrating To Multi-core

� Shared hardware on the board– I/O devices, memory, interrupt controller

� Non-parallel code needs to be re-written, re-testedtested

� OS privilege levels: multiple instances of the kernel, one per core

| © 2010 Wind River. All Rights Reserved.11

Page 12: Cots moves to multicore: Wind River

It’s Not All That Gloomy ….

With Embedded Virtualization …..

� Virtualize accesses to shared hardware

– Shared access is controlled outside of your app

– Interrupt controller, memory regions, devices

� Retain execution behavior of existing apps

– Minimize retesting/rewriting

� Add new functionality on remaining cores

| © 2010 Wind River. All Rights Reserved.12

Apps

OS

Core 1

Apps

Core 2

OS

Hypervisor

Apps Apps

Page 13: Cots moves to multicore: Wind River