configurable, reconfigurable, and run-time reconfigurable computing

34
Configurable, reconfigurable, and run-time reconfigurable computing

Upload: zihna

Post on 17-Jan-2016

106 views

Category:

Documents


1 download

DESCRIPTION

Configurable, reconfigurable, and run-time reconfigurable computing. Outline. Introduction Configurable Reconfigurable Run-time reconfigurable Motivating example Tools Software compilers for configurable/reconfigurable systems Multiprocessor complications. Introduction. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Configurable, reconfigurable, and run-time reconfigurable computing

Configurable, reconfigurable, and run-

time reconfigurable computing

Page 2: Configurable, reconfigurable, and run-time reconfigurable computing

Outline

1. Introduction– Configurable– Reconfigurable– Run-time reconfigurable

2. Motivating example

3. Tools

4. Software compilers for configurable/reconfigurable systems

5. Multiprocessor complications

Modular Design of Configurable Multiprocessor Systems

Page 3: Configurable, reconfigurable, and run-time reconfigurable computing

Introduction

Modular Design of Configurable Multiprocessor Systems

http://en.wikipedia.org/wiki/Knapsack_problem

Which boxes should be chosen to maximize the amount of money while still keeping the overall weight under 15 kg? A multi dimensional problem could consider the density or dimensions of the boxes, the latter a typical packing problem.

(The solution in this case is to choose all of the boxes besides the green one.)

Example of a one-dimensional (constraint) knapsack problem:

Page 4: Configurable, reconfigurable, and run-time reconfigurable computing

Configuration

• Configurable solution:

1. Investigate the best set of boxes to take

2. Take them

3. No more thinking about boxes

• REconfigurable solution:

1. Investigate the best set of boxes to take

2. Take them for a long time

3. Stop what I’m doing and change everything in my backpack

• RUN TIME reconfigurable solution:

1. While walking, take the boxes I need and switch for the boxes I don’t need right now. This cost me some time to reconfigure the items in my backpack while walking.

Modular Design of Configurable Multiprocessor Systems

Page 5: Configurable, reconfigurable, and run-time reconfigurable computing

Typical system design flowPower? Area?

Speed?

How can I quickly explore the design architecture and validate it early?

Which CPU?

Which device?Functionality?

Cost?

What are the partition trade off’s & how do I

verify them?

HW

SW

Spec

Project Specification

HDLsHW

ready

C/ C++

Page 6: Configurable, reconfigurable, and run-time reconfigurable computing

Codesign environment

Software-compiled system design flowPower? Area?

Speed?

Which CPU?

Which device?Functionality?

Cost?

What are the partition trade off’s & how do I

verify them?

Project Specification

Design & VerifySpecify & Verify

DS

M

Spec

HW

Compile & Verify

SystemC, Handel-C

C/ C++SWP

AL

DS

M

DS

M

DS

M

DS

M

How can I quickly explore the design architecture and validate it early?

Page 7: Configurable, reconfigurable, and run-time reconfigurable computing

What is the essential design question?

• MAIN QUESTION: How do we make practical systems (large) and meet time-to-market window (small)?

• ANSWER: Comprehensive co-design tools

Modular Design of Configurable Multiprocessor Systems

Page 8: Configurable, reconfigurable, and run-time reconfigurable computing

Motivating Example

Page 9: Configurable, reconfigurable, and run-time reconfigurable computing

Motivating Example

• Congratulations! You are making a cellular phone.• There are many design constraints:

– Finite chip area– Finite power consumption– Finite memory (registers, cache, RAM, disk)– Real-time requirements for tasks

• There are many features:– Camera– Phonebook– Encryption/decryption– DSP– …

Modular Design of Configurable Multiprocessor Systems

Page 10: Configurable, reconfigurable, and run-time reconfigurable computing

How do we do co-design for this project?

• We must make software and hardware for our beloved phone.• Which software segments should be implemented in hardware?• Do we add one more processor and bus connection, or dedicate

that area to a custom instruction?• We are OPTIMIZING• This is decision problem is also known as the “Knapsack

problem” and sometime the “assignment algorithm”, and computers can solve this faster than humans, given a complete and formal problem specification.

Modular Design of Configurable Multiprocessor Systems

Page 11: Configurable, reconfigurable, and run-time reconfigurable computing

Tools

Page 12: Configurable, reconfigurable, and run-time reconfigurable computing

Real Configurable System Tools

• System level co-design fromspecification to direct implementation

– Profiling– Partitioning & trade-off analysis– Co-verification & co-simulation– Higher-level language (HLL) synthesis

direct to EDIF or RTL

• Software-compiled system design– Best time-to-market– Fastest simulation times … VERY FAST– HW/ SW partitioning solution– Seamless HW & SW verification– Reduces cost, risk & time of design– Best QoR & Quality of Design

Celoxica

Page 13: Configurable, reconfigurable, and run-time reconfigurable computing

Real Configurable System Tools

Modular Design of Configurable Multiprocessor Systems

Dimond 2004

Page 14: Configurable, reconfigurable, and run-time reconfigurable computing

Real Configurable System Tools

Modular Design of Configurable Multiprocessor Systems

CoWare Processor Designer

Page 15: Configurable, reconfigurable, and run-time reconfigurable computing

Real Configurable System Tools

Modular Design of Configurable Multiprocessor Systems

Tensilica

Page 16: Configurable, reconfigurable, and run-time reconfigurable computing

Tradeoffs

Modular Design of Configurable Multiprocessor Systems

Tensilica

Page 17: Configurable, reconfigurable, and run-time reconfigurable computing

Tradeoffs

Modular Design of Configurable Multiprocessor Systems

Page 18: Configurable, reconfigurable, and run-time reconfigurable computing

Configurable processors

Modular Design of Configurable Multiprocessor Systems

Page 19: Configurable, reconfigurable, and run-time reconfigurable computing

Configurable processors

Modular Design of Configurable Multiprocessor Systems

From register file to configurable block

Page 20: Configurable, reconfigurable, and run-time reconfigurable computing

Configurable processors

Modular Design of Configurable Multiprocessor Systems

Stall for reconfigurationOr maybestall during execution

Page 21: Configurable, reconfigurable, and run-time reconfigurable computing

Configurable processors

Modular Design of Configurable Multiprocessor Systems

Not realistic

Page 22: Configurable, reconfigurable, and run-time reconfigurable computing

Techniques

• Many techniques for finding what to implement as hardware:– Atasu et al. (DAC 03, CODES 05)– Biswas et al. (DATE 05), Cong et al. (FPGA 04)– Clark et al. (MICRO 03, HOT CHIPS 04)– Goodwin and Petkov (CASES 03)– Sun et al. (ICCAD 03), Yu et al. (CASES 04)– Many more…

• This is an NP-hard problem equivalent to the “largest common sub-graph identification” problem

Modular Design of Configurable Multiprocessor Systems

Page 23: Configurable, reconfigurable, and run-time reconfigurable computing

Software compilers for configurable/reconfigurable

systems

Page 24: Configurable, reconfigurable, and run-time reconfigurable computing

What do we want from our compiler?

• Make it easy to:– Add instructions to my processor model– Check if my model will meet my requirements (simulation/

profiling)– Optimize the generated code for small size and fast speed– Compile code on my PC to run on my phone (retargetable)

• Hide the details of anything I don’t care about:– Break the compiler into frond end, middle part, and a

backend

Modular Design of Configurable Multiprocessor Systems

Page 25: Configurable, reconfigurable, and run-time reconfigurable computing

What toys do we need?

• Compiler (front-middle-backend), debugger, simulator, profiler, assembler, linker, operating system, FPGA

Modular Design of Configurable Multiprocessor Systems

Page 26: Configurable, reconfigurable, and run-time reconfigurable computing

What are some common compilers?

• GCC (Java, Ada, C, C++, has open-MP, popular, optimizing)• LCC (Small code size)• Trimaran• MIMOLA• RECORD• CoSy• LLVM

Modular Design of Configurable Multiprocessor Systems

Page 27: Configurable, reconfigurable, and run-time reconfigurable computing

Multiprocessor complications

Modular Design of Configurable Multiprocessor Systems

Page 28: Configurable, reconfigurable, and run-time reconfigurable computing

Configurable Interconnect Design Flow

Graphical User Interface

GenerateSave

API

UserrequirementsM

SSystem

Generator

System CreatorInterconnection

system

VHDL Docs

Modular Design of Configurable Multiprocessor Systems

Page 29: Configurable, reconfigurable, and run-time reconfigurable computing

WISHBONE Datasheet

• WISHBONE specification requires that each component has a datasheet

Modular Design of Configurable Multiprocessor Systems

Example from WISHBONE B.3

Page 30: Configurable, reconfigurable, and run-time reconfigurable computing

Network Specification

Modular Design of Configurable Multiprocessor Systems

Shared Bus

PE1Add 010

PE2Add 011

Mem AAdd 111

Mem BAdd 001

Shared Bus

PE3Add 010

PE4Add 011

Mem CAdd 111

Mem DAdd 001

1 0 1 0

DataFlow2DataFlow1

PE5

DataFlow1 DataFlow2DataFlow2DataFlow1

LED 13

PE1 Load A, invert on cycle 1PE2 load BPE1 send APE2 add A+BPE2 send A+B to PE5

PE3 Load C, invert on cycle 1PE4 load DPE3 send CPE4 add C+DPE4 send C+D to PE5

PE5 compare A+B & C+D

If A+B < C+D à LEDG0If A+B = C+D à LEDG1If A+B > C+D à LEDG2

Page 31: Configurable, reconfigurable, and run-time reconfigurable computing

Example Interconnect

Modular Design of Configurable Multiprocessor Systems

P3P6P4 P5

M0 M0 M0

P7

M0

P8

M0

Shared Bus Crossbar

M3M2M1M0

S1S0

S0

MEM9

S1

MEM11

S0 S0

MEM10

S1S0

M0 M1

First;Add 1 to M9

Second;Add 1 to M9

Third;Add 1 to M9

Fourth;Add 1 to M9;

Saves number in M11

Checking when data in M11 not equal to Zero;

When data != 0 then adds 1 to it and saves number

in M10

Checking when data in M10 not equal to Zero;

When data != 0 then adds 1 to it and saves number

in M10

1 2

Page 32: Configurable, reconfigurable, and run-time reconfigurable computing

Life looks simple at first

Modular Design of Configurable Multiprocessor Systems

Page 33: Configurable, reconfigurable, and run-time reconfigurable computing

But life is complicated

Modular Design of Configurable Multiprocessor Systems

Page 34: Configurable, reconfigurable, and run-time reconfigurable computing

Questions?

Thank You