An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation...

32
An Approach to Model Based Code Generation for a Specialized Soft Microprocessor Elena Rozova 1 , Bernd Däne 2 1 Software Architectures and Product Lines Group 2 Computer Architecture and Embedded Systems Group Technische Universität Ilmenau, Germany AutSys-2015

Transcript of An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation...

Page 1: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Elena Rozova1, Bernd Däne2

1Software Architectures and Product Lines Group2Computer Architecture and Embedded Systems Group

Technische Universität Ilmenau, Germany

AutSys-2015

Page 2: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

2

• Introduction

• Concept of case study

• Overview of the soft microprocessor

• Design flow and detail solutions

• Results

• Conclusion and further work

Topics

Supported by Deutsche Forschungsgemeinschaft (DFG)and by Thüringer Aufbaubank (TAB and EFRE).

Page 3: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

3

Introduction

Use of FPGAs (Field Programmable Gate Arrays)in Embedded Systems:

Advantages in performance and flexibility

Algorithms can be implemented directly or with soft microprocessors

Use of FPGAs (Field Programmable Gate Arrays)in Embedded Systems:

Advantages in performance and flexibility

Algorithms can be implemented directly or with

Challenge: Design processes

Page 4: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

4

Concept of Case Study

Embedding project: Soft microprocessor LiSARD1

Real-time signal processing (controllers, filters)

Double precision floating point operation

Case study investigates graphical design processusing the LabVIEW tool

Goal: Model based code generation and optimization

1 LabVIEW integrated Softcore Architecture for Reconfigurable Devices

Page 5: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Overview of the Soft Microprocessor

5

Application specific processor architecture Configurable instruction set Omitting unneeded features

Simple pipeline: No dependency logic

Multi-core, shared memory

Page 6: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Pipeline Architecture

6

ProgramMemory

ReadInterface

ProgramMemory

ReadInterface

InstructionFetch

InstructionDecode

OperandFetch Execute Write Back

InstructionDecoder

InstructionDecoder

DataMemory

ReadInterface

DataMemory

ReadInterface

Source2Source1

ExecuteModeWriteBackOperationTarget

ALUALU

MU

XM

UX

DataMemory

WriteInterface

DataMemory

WriteInterface

InputRegisters

InputRegisters

OutputRegistersOutput

Registers

Page 7: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Code Generation and Optimization

7

Fully pipelined operators Exploit micro parallelism by instruction scheduling

Static approach Full timing defined at compile time

Optimization strategies crucial for performance

Explained with simple example program

Page 8: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Example Program

8

in 1 ? x1in 2 ? x2in 3 ? x3in 4 ? x4mul x1 k1 t1mul x2 k2 t2add x1 x2 t3sub x3 x4 t4

11116655

Total, not optimized:

26 clock cycles

Page 9: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

9

Source 1 Source 2

Pre-oper. 1 Pre-oper. 2 Instruction Destinat.

Program memory

00 01 02 03 04 05 06 07 08 09 0A 0B

05

06

07

08

09

00

01

02

03

04

Data memory

t2

t3

t4

k1

k2

x1

x2

x3

x4

t1

Time

Example Pipeline Optimization

Page 10: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

10

00 01 02 03 04 05 06 07 08 09 0A 0B

05

06

07

08

09

00

01

02

03

04

IN1 - - -

IN 00

t2

t3

t4

k1

k2

x1

x2

x3

x4

t1

Source 1 Source 2

Pre-oper. 1 Pre-oper. 2 InstructionDestinat.

Program memory Data memory

in 1 ? x1 1 clock cycle

Example Pipeline Optimization

Page 11: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

11

IN1 - - -

IN 00

00 01 02 03 04 05 06 07 08 09 0A 0B

05

06

07

08

09

00

01

02

03

04

IN2 - - -

IN 01

t2

t3

t4

k1

k2

x1

x2

x3

x4

t1

Source 1 Source 2

Pre-oper. 1 Pre-oper. 2 Instruction Destinat.

Program memory Data memory

in 2 ? x2 1 clock cycle

Example Pipeline Optimization

Page 12: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

12

IN1 - - -

IN 00

IN2 - - -

IN 01

MUL

00 01 02 03 04 05 06 07 08 09 0A 0B

05

06

07

08

09

00

01

02

03

04

00 08 - -

MUL 04

t2

t3

t4

k1

k2

x1

x2

x3

x4

t1

Source 1 Source 2

Pre-oper. 1 Pre-oper. 2 Instruction Destinat.

Program memory Data memory

mul x1 k1 t1 6 clock cycles

Example Pipeline Optimization

Page 13: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

13

IN1 - - -

IN 00

IN2 - - -

IN 01

00 08 - -

MUL 04

MUL

MUL

00 01 02 03 04 05 06 07 08 09 0A 0B

05

06

07

08

09

00

01

02

03

04

01 09 - -

MUL 05

t2

t3

t4

k1

k2

x1

x2

x3

x4

t1

Source 1 Source 2

Pre-oper. 1 Pre-oper. 2 Instruction Destinat.

Program memory Data memory

mul x2 k2 t2 6 clock cycles

Example Pipeline Optimization

Page 14: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

14

IN1 - - -

IN 00

IN2 - - -

IN 01

00 08 - -

01 09 - -

MUL 04

MUL 05

MUL

MUL

00 01 02 03 04 05 06 07 08 09 0A 0B

05

06

07

08

09

00

01

02

03

04

IN3 - - -

IN 02

x1

x2

x3

x4

t1

t2

t3

t4

k1

k2

Source 1 Source 2

Pre-oper. 1 Pre-oper. 2 Instruction Destinat.

Program memory Data memory

in 3 ? x3 1 clock cycle

Example Pipeline Optimization

Page 15: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

15

IN1 - - -

IN 00

IN2 - - -

IN 01

00 08 - -

01 09 - -

IN3 - - -

IN 02

MUL 04

MUL 05

MUL

MUL

00 01 02 03 04 05 06 07 08 09 0A 0B

05

06

07

08

09

00

01

02

03

04

IN4 - - -

IN 03 t1

x4

x3

x1

x2

t2

t3

t4

k1

k2

Source 1 Source 2

Pre-oper. 1 Pre-oper. 2 Instruction Destinat.

Program memory Data memory

in 4 ? x4 1 clock cycle

Example Pipeline Optimization

Page 16: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

16

IN1 - - -

IN 00

IN2 - - -

IN 01

00 08 - -

01 09 - -

IN3 - - -

IN 02

IN4 - - -

IN 03

00 01 - -

MUL 04

MUL 05

ADD 06

MUL

MUL ADD

00 01 02 03 04 05 06 07 08 09 0A 0B

05

06

07

08

09

00

01

02

03

04 t1

x4

x3

x1

x2

t2

t3

t4

k1

k2

Source 1 Source 2

Pre-oper. 1 Pre-oper. 2 Instruction Destinat.

Program memory Data memory

add x1 x2 t3 5 clock cycles

Example Pipeline Optimization

Page 17: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

17

IN1 - - -

IN 00

IN2 - - -

IN 01

00 08 - -

01 09 - -

IN3 - - -

IN 02

IN4 - - -

IN 03

00 01 - -

02 03 -

MUL 04

MUL 05

ADD 06

07

MUL

MUL ADD

SUB

00 01 02 03 04 05 06 07 08 09 0A 0B

t2 05

t3 06

t4 07

k1 08

k2 09

x1 00

x2 01

02

03

t1 04 ADD

NEG x4

x3

Source 1 Source 2

Pre-oper. 1 Pre-oper. 2 Instruction Destinat.

Program memory Data memory

sub x3 x4 t4 5 clock cycles

Example Pipeline Optimization

Page 18: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

18

IN1 - - -

IN 00

IN2 - - -

IN 01

00 08 - - - -

01 09 - - - -

IN3 - - -

IN 02

IN4 - - -

IN 03

00 01 - - - -

02 03 -

NEG MUL 04

- - - -

MUL 05

- - - - - -

- - - -

ADD 06

- - - -

ADD 07

MUL

MUL ADD

SUB

00 01 02 03 04 05 06 07 08 09 0A 0B

05

06

07

08

09

00

01

02

03

04

t2

t3

t4

k1

k2

x1

x2

x3

x4

t1

Source 1 Source 2

Pre-oper. 1 Pre-oper. 2 Instruction Destinat.

Program memory Data memory

Total: 12 clock cycles → Speedup: 2,1

Example Pipeline Optimization

Page 19: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Multi-Core Configurations

19

Multi-core setups: Multiple copies of memory No communication overhead

For n-core configuration:o 2 · n identical copieso 2 · n² individually addressable blocks

Tested so far:o Quad-core, logical memory space: 4,096 cellso Physical memory consumption: 262,144 bytes

Page 20: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Dual-Core Setup

20

Write

Read 1

Core 1

Read 2

Write

Read 1

Core 2

Read 2

Memory 1a

Memory 1b

Memory 2a

Memory 2b

Memory 3a

Memory 3b

Memory 4a

Memory 4b

Page 21: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Multi-Core Optimization

21

Schedule instructions to cores

Schedule variables to memory locations

Calculate dependencies and lifetimes

Duplicate variables if needed

Page 22: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

General Design Flow

22

Operator Library

Processor Design

Code Design

Code Converter

Configuration

ofcores

Allocatevariables

Detectionof

dependencies

Searchfree

code line

Insertcode line

Check dependencies

Testbench

Configured

ProcessorMemory Init

DataProgram

Model based (currently)

Page 23: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Detail Solutions

23

Give some impression about graphical approach

Small model parts selected Total size:

o ~30 LabVIEW worksheets (Code Converter)o >100 LabVIEW worksheets (full project)

Page 24: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Code Converter Details

24

Page 25: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Code Converter Details

25

Page 26: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Code Converter Details

26

Page 27: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Experimental Results

27

Program Instruct. count Comment

FIR-64 196 Finite Impulse Response filter (64 coeff.)

Kalman-2 350 4x4 Kalman filter, calculated twice

6-Axes 866 Adaptive control algorithm, six channels

Ellipse 364 Ellipse regression for incremental sensors

Ellipse-4 1456 Same as above, four channels

Page 28: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

0,0 1,0 2,0 3,0 4,0 5,0 6,0

FIR-64

Kalman-2

6-Axes

Ellipse

Ellipse-4

non-optimized pipeline-optimized

28

Speedup by Pipeline Optimization

Page 29: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

0,0 1,0 2,0 3,0 4,0 5,0 6,0

FIR-64

Kalman-2

6-Axes

Ellipse

Ellipse-4

non-optimized 1-core 2-core 4-core

0,0 1,0 2,0 3,0 4,0 5,0 6,0

FIR-64

Kalman-2

6-Axes

Ellipse

Ellipse-4

non-optimized

Speedup by Multicore Optimization

29

Page 30: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Conclusion

30

Graphical approach to classical compiler functions

Efficiency demonstrated

Advantages and weaknesses identified

Contributes to model based design processes

Goals for further research outlined

Page 31: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

Further Work

31

Generating source code from models

Model based instruction set synthesis

Combined HW/SW optimization

Integrated configuration management

Page 32: An Approach to Model Based Code Generation for a ... fileAn Approach to Model Based Code Generation for a Specialized Soft Microprocessor 4 Concept of Case Study Embedding project:

An Approach to Model Based Code Generationfor a Specialized Soft Microprocessor

32

Thank you

for

your kind attention