1 / 44

LOAD BALANCING SWITCH

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

Download Presentation

LOAD BALANCING SWITCH

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. General overview • Software solutions for real-time are too slow • Power dissipation limits work frequencies • Greater computing power needed • H/W accelerators can improve S/W processes • Multi-core, multi-threaded systems are the future

  3. Project Goals • Multiprocessor environment for parallel processing of vectors data stream • Maximal Throughput • Configurable hardware • Statistics report • Expandable design

  4. System specifications • 1M pulse/sec data stream • Vectors of 8 ÷ 1024 pulses • 1K ÷ 125K vectors/sec • Variable number of accelerators • Timeout of 100msec • System span over multiple FPGAs

  5. Problem • How to manage Data stream? • How to manage multiple parallel units? • How to achieve full and effective utilization of resources?

  6. Solution • Load Balancing Switch • Converting shared resources to “personal” work space. • Smart management of system • Monitoring of each unit’s load • Easily expandable

  7. System Block diagram S/W or H/W generator DDR2 Bank A Input vectors Load Balancing Switch (LBS) NIOS VPU NIOS VPU S/W or H/W consumer Data and Control DDR2 Bank B Output reports PROCStar II Stratix II FPGA

  8. Organization of VPU’s(Vector Processing Units) • NIOS VPUs joined into the clusters • Constant number of Clusters • Various number of NIOS VPU’s in cluster • Variable configuration of NIOS • Different Priority for different clusters

  9. System Top Diagram NIOScluster NIOScluster NIOScluster NIOScluster DDR2 Bank A Input vectors NIOScluster NIOScluster NIOScluster NIOScluster Load Balancing Switch (LBS) Gidel’s FIFO control IP Data flow NIOScluster NIOScluster NIOScluster NIOScluster DDR2 Bank B Output reports NIOScluster NIOScluster NIOScluster NIOScluster Stratix II FPGA PROCStar II

  10. LBS Top Level View FIFO Input Port Input data bus Cluster Arbiter Cluster Arbiter Cluster Arbiter PCI Input Reader NIOS II System NIOS II System NIOS II System Control Main Controller unit Statistics Reporter Control Control and Status Output Writer Control FIFOOutputPort Muxed output data bus Stratix II FPGA

  11. System Interfaces Software to Hardware Interface: • Input and Output MultiFIFO PCI data bus • MultiFIFO status flags • 2x32-bit general read purpose registers • 2x32-bit general write purpose registers • 8-bit information register • Software reset signal

  12. Input System Interface LBS Input Interface: • 64 bit data bus from Input MultiFIFO • Read request and ack. Signals • MultiFIFO status flags • SW/HW input signals

  13. Output System Interface LBS Output interface: • 64 bit data bus to Output MultiFIFO • Write request and ack. Signals • MultiFIFO status flags • SW/HW input signals

  14. Data Packet Format …… Header Tail Data 1 to N Words Header : SW/HW Control 1-bit Unused Nios Number Data Length Vector ID Type 1-bit Version 4-bit 8-bit 16-bit 32-bit Tail : Sync Data or Checksum(in the future)

  15. NIOS Input Interface Hardware: • 64-bit input data bus – from LBS • 10 bit data slices counter – from LBS • Write request signal – from LBS • Chip select signal – from LBS • NIOS ready signal – from NIOS • Data ready signal – from LBS

  16. NIOS Output Interface Hardware: • 64 bit output data bus – from NIOS • 7 bit data slices counter – from LBS • Read request signal – from LBS • Chip select signal – from LBS • Output ready signal – from NIOS • Output taken signal – from LBS

  17. Twin VPU SystemInput / Output waveform

  18. FIFO Input Port Input data bus LBS Units DescriptionInput Reader Input Reader Main Controller unit Statistics Reporter Control and Status Output Writer FIFOOutputPort Muxed output data bus • Reading data from input FIFO • Writing data to selected cluster • Providing header control bits for main controller • Synchronization checks • Vector length counter Cluster Arbiter Cluster Arbiter Cluster Arbiter NIOS II System NIOS II System NIOS II System

  19. Input Reader Diagram

  20. LBS Units DescriptionInput Controller - FSM

  21. FIFO Input Port Input data bus LBS Units DescriptionOutput Writer Input Reader Main Controller unit Statistics Reporter Control and Status Output Writer FIFOOutputPort Muxed output data bus • Reading data from selected cluster • Writing data to output FIFO • Vector length counter Cluster Arbiter Cluster Arbiter Cluster Arbiter NIOS II System NIOS II System NIOS II System

  22. Output Writer Diagram

  23. LBS Units DescriptionOutput Controller - FSM

  24. FIFO Input Port Input data bus LBS Units DescriptionMain Controller Input Reader Main Controller unit Statistics Reporter Control and Status Output Writer FIFOOutputPort Muxed output data bus • Enabling input and output units • Selecting control source (S/W or H/W) • Monitoring clusters’ load via status buses • Selecting clusters for input/output operations • Data validity indication Cluster Arbiter Cluster Arbiter Cluster Arbiter NIOS II System NIOS II System NIOS II System

  25. Main ControllerStatus Decoders

  26. LBS Units DescriptionMC Status Alghoritm • Status input and output independent decoders • Dynamic port mapping • Always selecting closest active neighbor • Suits “similar NIOSes” design • To be expanded in part B

  27. LBS Units DescriptionMC Status Alghoritm

  28. Decoding Flow

  29. FIFO Input Port Input data bus LBS Units DescriptionStatistics Reporter Input Reader Main Controller unit Statistics Reporter Control and Status Output Writer FIFOOutputPort Muxed output data bus • Monitoring system activity • Counting processed vectors • Throughput = Vectors served / Time of service • To be expanded in part B Cluster Arbiter Cluster Arbiter Cluster Arbiter NIOS II System NIOS II System NIOS II System

  30. FIFO Input Port Input data bus LBS Units DescriptionCluster Entity Input Reader Main Controller unit Statistics Reporter Control and Status Output Writer FIFOOutputPort Muxed output data bus • Cluster parametric enabling • Cluster controller • Watchdog • NIOS System Cluster Arbiter Cluster Arbiter Cluster Arbiter NIOS II System NIOS II System NIOS II System

  31. LBS Units DescriptionCluster Structure

  32. LBS Units DescriptionCluster Controller • Input 4-phase REQ/ACK protocol with NIOS • Nios Ready • Data Ready • Output 4-phase REQ/ACK protocol with NIOS • Output Ready • Output Taken • Smart Status Reporter

  33. LBS Units DescriptionCluster Controller

  34. Cluster Input FSM

  35. Cluster Output FSM

  36. LBS Units DescriptionExample for NIOS System • SOPC components: • Input Vector • Output Vector • Nios II • On-chip memory • Timer

  37. LBS Units DescriptionInput vector • 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

  38. LBS Units DescriptionInput vector component

  39. LBS Units DescriptionOutput vector • 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

  40. LBS Units DescriptionOutput vector component

  41. 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

  42. 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

  43. System Demonstration

  44. 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

More Related