load balancing switch

47
LOAD BALANCING SWITCH By: Oleg Schtofenmaher Maxim Fudim Supervisor: Walter Isaschar Final presentation for project Winter 2007 ( Part A) 1

Upload: violetta-michel

Post on 02-Jan-2016

33 views

Category:

Documents


1 download

DESCRIPTION

Final presentation for project. By: Oleg Schtofenmaher Maxim Fudim Supervisor: Walter Isaschar. Winter 2007 ( Part A). LOAD BALANCING SWITCH. General overview. Software solutions for real-time are too slow Power dissipation limits work frequencies Greater computing power needed - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: LOAD BALANCING SWITCH

1

LOAD BALANCING SWITCH

By: Oleg Schtofenmaher

Maxim FudimSupervisor: Walter Isaschar

Final presentation for project

Winter 2007 ( Part A)

Page 2: LOAD BALANCING SWITCH

2

General overview

Software solutions for real-time are too slow

Power dissipation limits work frequencies

Greater computing power neededH/W accelerators can improve S/W

processesMulti-core, multi-threaded systems

are the future

Page 3: LOAD BALANCING SWITCH

3

Multiprocessor environment for parallel processing of vectors data stream

Maximal ThroughputConfigurable hardwareStatistics reportExpandable design

Project Goals

Page 4: LOAD BALANCING SWITCH

4

System specifications

1M pulse/sec data streamVectors of 8 ÷ 1024 pulses1K ÷ 125K vectors/secVariable number of processorsSystem span over multiple FPGAs

Page 5: LOAD BALANCING SWITCH

5

Problem

How to manage Data stream? How to manage multiple parallel units? How to achieve full and effective

utilization of resources?

Page 6: LOAD BALANCING SWITCH

6

Solution

Load Balancing SwitchConverting shared resources to

“personal” work space.FCFS for input, RR for routing/outputSmart management of systemMonitoring for each unit’s load

Page 7: LOAD BALANCING SWITCH

7

System Block diagram

Input vectorsLoad Balancing

Switch

(LBS)

Output reports

Statistics reports NIOS

VPU

S/W or H/W

generator

S/W or H/W

consumer

DDR2 Bank A

Data and Control

Stratix II FPGAPROCStar II

DDR2 Bank B

NIOS VPU

PCI

Page 8: LOAD BALANCING SWITCH

Organization of VPU’s(Vector Processing Units)

NIOS VPUs joined into the clustersConstant number of ClustersVarious number of NIOS VPU’s in

clusterVariable configuration of NIOS Different Priority for different

clusters

Page 9: LOAD BALANCING SWITCH

9

System Top Diagram

Input vectors

Load Balancing

Switch

(LBS)

Output reports

DDR2 Bank A

Stratix II FPGAPROCStar II

DDR2 Bank B

Gidel’s FIFO

control IP

Data flow

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

NIOScluster

Page 10: LOAD BALANCING SWITCH

10

LBS Top Level ViewP

CI

Main Controller

unit

Stratix II FPGA

Output Writer

Cluster ArbiterNIOS II Syste

m

Input Reader

Cluster ArbiterNIOS II Syste

m

Control

Control

FIFO Input Port

FIFOOutput

Port

Control

Cluster ArbiterNIOS II Syste

mMuxed output data bus

Input data bus

Controland Status

Statistics

Reporter

Page 11: LOAD BALANCING SWITCH

11

System Interfaces

Software to Hardware Interface:

Input and Output MultiFIFO PCI data bus

MultiFIFO status2x32-bit general read purpose

registers2x32-bit general write purpose

registers8-bit information registerSoftware reset signal

Page 12: LOAD BALANCING SWITCH

12

Input System Interface

LBS Input Interface:64 bit data bus from Input MultiFIFORead request and ack. SignalsMultiFIFO status flagsSW/HW input signals

Page 13: LOAD BALANCING SWITCH

13

Output System Interface

LBS Output interface:64 bit data bus to Output MultiFIFOWrite request and ack. SignalsMultiFIFO status flagsSW/HW input signals

Page 14: LOAD BALANCING SWITCH

14

Data Packet Format

Header Data 1 to N of 32-bit

Words

Tail

……

Unused

Nios Numb

er

Data Length N

Vector ID/Command Type

8-bit 32-bit16-bitVersion 4-bit

SW/HW Control 1-bit

Type 1-bit(Data/

Command)

Tail : Sync Data or Checksum(in the future)

Header:

Page 15: LOAD BALANCING SWITCH

15

NIOS Input Interface

Hardware:64-bit input data bus – from LBS10 bit data slices counter – from

LBSWrite request signal – from LBSChip select signal – from LBSNIOS ready signal – from NIOSData ready signal – from LBS

Page 16: LOAD BALANCING SWITCH

16

NIOS Output Interface

Hardware:64 bit output data bus – from NIOS7 bit data slices counter – from LBSRead request signal – from LBSChip select signal – from LBSOutput ready signal – from NIOSOutput taken signal – from LBS

Page 17: LOAD BALANCING SWITCH

17

Twin VPU SystemInput / Output waveform

Page 18: LOAD BALANCING SWITCH

18

System Demonstration

Page 19: LOAD BALANCING SWITCH

19

LBS Units DescriptionInput ReaderReading data from input FIFOWriting data to selected clusterProviding header control bits for

main controllerSynchronization checksVector length counter

Main Controller unit

Output

Writer

Cluster

Arbiter

NIOS II

System

Input Reade

r Cluster

Arbiter

NIOS II

System

FIFO

Input

Port

FIFOOutput

Port

Cluster

Arbiter

NIOS II

SystemMuxed output data

bus

Input data bus

Controland Status

Statistics

Reporter

Page 20: LOAD BALANCING SWITCH

20

Input Reader Diagram

Page 21: LOAD BALANCING SWITCH

21

LBS Units DescriptionInput Controller - FSM

Page 22: LOAD BALANCING SWITCH

22

LBS Units DescriptionOutput WriterReading data from selected

clusterWriting data to output FIFOVector length counter

Main Controller unit

Output

Writer

Cluster

Arbiter

NIOS II

System

Input Reade

r Cluster

Arbiter

NIOS II

System

FIFO

Input

Port

FIFOOutput

Port

Cluster

Arbiter

NIOS II

SystemMuxed output data

bus

Input data bus

Controland Status

StatisticsReporter

Page 23: LOAD BALANCING SWITCH

23

Output Writer Diagram

Page 24: LOAD BALANCING SWITCH

24

LBS Units DescriptionOutput Controller - FSM

Page 25: LOAD BALANCING SWITCH

25

LBS Units DescriptionMain Controller

Enabling input and output unitsSelecting control source (S/W or

H/W)Monitoring clusters’ load via

status busesSelecting clusters for input/output

operationsData validity indication

Main Controller unit

Output

Writer

Cluster

Arbiter

NIOS II

System

Input Reade

r Cluster

Arbiter

NIOS II

System

FIFO

Input

Port

FIFOOutput

Port

Cluster

Arbiter

NIOS II

SystemMuxed output data

bus

Input data bus

Controland Status

StatisticsReporter

Page 26: LOAD BALANCING SWITCH

26

Main ControllerStatus Decoders

Page 27: LOAD BALANCING SWITCH

27

Status input and output independent decoders

Dynamic port mappingAlways selecting next active

neighborSuits “similar NIOSes” designTo be expanded in part B

LBS Units DescriptionMC Status Alghoritm

Page 28: LOAD BALANCING SWITCH

28

LBS Units DescriptionMC Status Alghoritm

0011

1314

013

02

114 015

.

.

.

13|14

.

.

. 013|4

02|15

1 1|0

00|1

114|3015|2

14|13

13|14

.

.

.

11|0

114|3

14|13

13

Status input

Dynamic port

mapping

Compare Active

ports

Next port

Page 29: LOAD BALANCING SWITCH

29

Decoding Flow

Page 30: LOAD BALANCING SWITCH

30

LBS Units DescriptionStatistics Reporter Monitoring system activity Error reporting for software Counting processed vectors Throughput = Vectors served / Time

of service To be expanded in part B

Main Controller unit

Output

Writer

Cluster

Arbiter

NIOS II

System

Input Reade

r Cluster

Arbiter

NIOS II

System

FIFO

Input

Port

FIFOOutput

Port

Cluster

Arbiter

NIOS II

SystemMuxed output data

bus

Input data bus

Controland Status

StatisticsReporter

Page 31: LOAD BALANCING SWITCH

31

Cluster parametric enablingCluster controllerWatchdogNIOS System

LBS Units DescriptionCluster Entity

Main Controller unit

Output

Writer

Cluster

Arbiter

NIOS II

System

Input Reade

r Cluster

Arbiter

NIOS II

System

FIFO

Input

Port

FIFOOutput

Port

Cluster

Arbiter

NIOS II

SystemMuxed output data

bus

Input data bus

Controland Status

StatisticsReporter

Page 32: LOAD BALANCING SWITCH

32

LBS Units DescriptionCluster Structure

Page 33: LOAD BALANCING SWITCH

33

Input 4-phase REQ/ACK protocol with NIOSNios ReadyData Ready

Output 4-phase REQ/ACK protocol with NIOSOutput ReadyOutput Taken

Smart Status Reporter

LBS Units DescriptionCluster Controller

Page 34: LOAD BALANCING SWITCH

34

LBS Units DescriptionCluster Controller

Page 35: LOAD BALANCING SWITCH

35

Cluster Input FSM

Page 36: LOAD BALANCING SWITCH

36

Cluster Output FSM

Page 37: LOAD BALANCING SWITCH

37

SOPC components: Input Vector Output VectorNios IIOn-chip memoryTimer

LBS Units DescriptionExample for NIOS System

Page 38: LOAD BALANCING SWITCH

38

Export signals from LBS 64-bit data Nios/Data Ready Address , Chipselect , Write

request ,Clock , Reset On-chip memory for 1024 32-bit words Avalon slave data port for 32-bit data

to NIOS II Avalon slave data ready port

LBS Units Description Input vector

Page 39: LOAD BALANCING SWITCH

39

LBS Units Description Input vector component

Page 40: LOAD BALANCING SWITCH

40

Avalon slave 32-bit data output port from NIOS II

Avalon slave output ready port On-chip memory for 128 32-bit words Export signals to LBS

64-bit data Output Ready / Taken Address , Chipselect , Read

request ,Clock , Reset

LBS Units Description Output vector

Page 41: LOAD BALANCING SWITCH

41

LBS Units Description Output vector component

Page 42: LOAD BALANCING SWITCH

42

Resource Usage

Unit ALUTs Memory (bits)

Percent (out of system)

Peripheral IPs (MegaFIFO, PLLs, etc.)

~ 1,600 32,768 ~ 20%

User System ~ 6,450 400,640

~ 80%

Single VPU( 5 in system) ~ 1,177 80,128 ~ 15%(73%)

LBS Logic ~ 560 0 ~ 7%

Total usage of chip resources

~ 8,000 433,408

17% ( of chip )

Total available 48,352 2,544,192

Resource usage data for 5 VPU system

VPU resource usage is based on basic NIOS’s with no accelerators and will only increase when accelerators will be introduced.

Page 43: LOAD BALANCING SWITCH

43

Tasks

Study PROCStar Board – Done Study Altera’s Stratix II FPGA – Done Study Quartus and HDL designer– Done Study GIDEL API – Done Learn to use Signal Tap tool – Done Study Altera’s NIOS II – Done Define interface with software group –

Done Develop signal generator for testing –

Done

Page 44: LOAD BALANCING SWITCH

44

Tasks (cont.)

Define interface with accelerator group – Done

Build direct connection with s/w and NIOS II – Done

Expand design for several NIOS’s – Done Define basic algorithm for h/w switching –

Done Implementation and debugging of the

switch – Done Integration with NIOS system – Done SW Test application for operating and

integration with hardware design – Done Integration of LBS with other groups

Page 45: LOAD BALANCING SWITCH

45

Summary

LBS implementation with SW/HW control and statistics

Up 16 NIOS’s connected to the system Fully functional S/W – LBS , LBS – NIOS

interface Successful hardware and software

integration Working design examples for other teams

Page 46: LOAD BALANCING SWITCH

46

Conclusions

Switch concept implemented successfully

Vector transit time is queue and processing only

Two layer abstraction concept = minimize changes

Single level of mastering = minimize resources

64-bit buses = maximize throughput

Page 47: LOAD BALANCING SWITCH

47

Tasks for Part B

Increase number of Nios’s in clusters Improve algorithm for priority cluster

selection Expand statistic reports Expand SW/HW communication Add error correction/handling Add smart vector queue management

(SJT) Spread design to several FPGAs Multiple Stage LBS ???