load balancing switch
DESCRIPTION
Midterm 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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/1.jpg)
1
LOAD BALANCING SWITCH
By: Oleg Schtofenmaher
Maxim FudimSupervisor: Walter Isaschar
Midterm presentation for project
Winter 2007 ( Part A)
![Page 2: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/3.jpg)
3
Multiprocessor environment for parallel processing of vectors data stream
Maximal ThroughputConfigurable hardwareStatistics reportExpandable design
Project Goals
![Page 4: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/4.jpg)
4
System specifications
1M pulse/sec data streamVectors of 8 ÷ 1024 pulses1K ÷ 125K vectors/secVariable number of acceleratorsTimeout of 100msecSystem span over multiple FPGAs
![Page 5: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/6.jpg)
6
Solution
Load Balancing SwitchConverting shared resources to
“personal” work space.Smart management of systemMonitoring of each unit’s loadEasily expandable
![Page 7: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/7.jpg)
7
System Block diagram
Input vectorsLoad Balancing
Switch
(LBS)
Output 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
![Page 8: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/11.jpg)
11
System Interfaces
Software to Hardware Interface:
Input and Output MultiFIFO PCI data bus
MultiFIFO status flags2x32-bit general read purpose
registers2x32-bit general write purpose
registers8-bit information registerSoftware reset signal
![Page 12: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/14.jpg)
14
Data Packet Format
Header Data 1 to N
Words
Tail
……
Unused
Nios Numb
er
Data Length
Vector ID
8-bit 32-bit16-bitVersion 4-bit
SW/HW Control 1-bit
Type1-bit
Tail : Sync Data or Checksum(in the future)
Header:
![Page 15: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/17.jpg)
17
Twin VPU SystemInput / Output waveform
![Page 18: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/18.jpg)
18
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 19: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/19.jpg)
19
Input Reader Diagram
![Page 20: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/20.jpg)
20
LBS Units DescriptionInput Controller - FSM
![Page 21: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/21.jpg)
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 22: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/22.jpg)
23
Output Writer Diagram
![Page 23: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/23.jpg)
24
LBS Units DescriptionOutput Controller - FSM
![Page 24: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/24.jpg)
26
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 25: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/25.jpg)
27
Main ControllerStatus Decoders
![Page 26: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/26.jpg)
28
Status input and output independent decoders
Dynamic port mappingAlways selecting closest active
neighborSuits “similar NIOSes” designTo be expanded in part B
LBS Units DescriptionMC Status Alghoritm
![Page 27: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/27.jpg)
29
LBS Units DescriptionMC Status Alghoritm
![Page 28: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/28.jpg)
30
Decoding Flow
![Page 29: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/29.jpg)
31
LBS Units DescriptionStatistics Reporter Monitoring system activity 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 30: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/30.jpg)
32
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 31: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/31.jpg)
33
LBS Units DescriptionCluster Structure
![Page 32: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/32.jpg)
34
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 33: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/33.jpg)
35
LBS Units DescriptionCluster Controller
![Page 34: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/34.jpg)
36
Cluster Input FSM
![Page 35: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/35.jpg)
37
Cluster Output FSM
![Page 36: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/36.jpg)
38
SOPC components: Input Vector Output VectorNios IIOn-chip memoryTimer
LBS Units DescriptionExample for NIOS System
![Page 37: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/37.jpg)
39
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 38: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/38.jpg)
40
LBS Units Description Input vector component
![Page 39: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/39.jpg)
41
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 40: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/40.jpg)
42
LBS Units Description Output vector component
![Page 41: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/41.jpg)
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 42: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/42.jpg)
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 of entire system – Done Create Test application for operating with
hardware design – Done
![Page 43: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/43.jpg)
45
System Demonstration
Demonstration
![Page 44: LOAD BALANCING SWITCH](https://reader035.vdocuments.us/reader035/viewer/2022062301/5681334e550346895d9a5536/html5/thumbnails/44.jpg)
46
Tasks for Part B
Increase number of Nios’s in clusters Spread design to several FPGAs Improve algorithm for cluster selection Expand statistic reports Expand SW/HW communication Add error correction/handling