150 likes | 264 Views
Data Stream Managing Unit Final Presentation. Advisor : Vitaly Spector Students : Neomi Makleff Hadas Azulay Lab : High Speed Digital Systems. Introduction.
E N D
Data Stream Managing UnitFinal Presentation Advisor : VitalySpector Students : NeomiMakleffHadasAzulay Lab : High Speed Digital Systems
Introduction • In Part A of our project we established a line of communication between a PC and our Nios II system, at a speed of 100 Mbps, Full duplex. • Now we have established a “smart” line of communication, between multiple Nios II systems and multiple PCs.
Project Aim • We have implemented the “smart” communication between N generators of Nios II systems and M processing units of PCs. • We have implemented the concept mentioned above when N=1, M=2. We have created a network which consists of 2 PCs and a Nios II system, which is able to process packages in T time and are managed by a management unit.
System Switch Our implementation is built for a system with M PCs and N Nios II systems Ethernet
Development Environment - Hardware • PC • Altera PCI EXPRESS DEV KIT – STRATIX II GX (Rafael requirements) • Switch • Interface : Ethernet
Development Environment -Software • PC : Windows XP Professional Eclipse • Altera PCI EXPRESS DEV KIT – STRATIX II GX: Nios II IDE Quartus II SOPC Builder
Concept - Centralized management unit Our project includes a management unit which will manage the flow of packages from the systems to the processing units so that the bottleneck phenomena will be lessened.
Our Implementation… • Our project requires us to create a management unit which communicates using LAN. • We have created a generic managing unit that can be used on any platform • We have used the PC as a platform. The advantages to our choice are that it’s low cost, easy to manage and maintain. • We have implemented a system in which the Management Unit sends the packages to the Processing Units contrarily to the Nios II Systems sending the packages directly to the Processing Units.
Implementation of Concept Vector of PCs: 10.0.0.1|10.0.0.2 PC2 PC1 PC, Free Processing Unit 2 Management Unit Processing Unit 1 PC, Free Nios II System 1 The Processing Units send a connection request to the Managing Unit using port 10000. The request will include an ID (“PC”) and status (“free”). The managing unit identifies the IP of the PC which has opened a socket and adds it to a vector of free PCs. All communication to the managing unit is done through port 10000
Implementation of Concept PackagesToExecute: NiosPackage1 PC2 PC1 Processing Unit 2 Managing Unit Processing Unit 1 NS,hello,1 Nios II System 1 The Nios II system connects to the Managing Unit using port 10,000 with the following message: “NS,hello,1”. “NS” is to identify that a Nios is trying to connect, “hello” is the package to process, “1” is the ID of the package. The Managing Unit receives the request and enters the package in to a PackagesToExecute queue. All queues and vectors are FIFO.
Implementation of Concept Vector of PCs: 10.0.0.1|10.0.0.2 PC2 PC1 NiosPackage1 Processing Unit 2 Managing Unit Processing Unit 1 “PC,Busy” Nios II System 1 The Managing unit will now check whether there is a free PC and if so send it the package to process. The PC will be removed from the vector of FreePCs and upon receiving the package, the PC sends the managing unit “PC,Busy”. A NiosPackage has a PackInfo and ID
Implementation of Concept PC2 PC1 Processing Unit 2 Managing Unit Processing Unit 1 Processing Package #ID NS,hello,2 Nios II System 1 The Management Unit receives the “PC, Busy” message from the PC who is processing and sends the Nios II System that a PC is processing package #ID. The Nios II system will then send a new package.
Implementation of Concept Vector of PCs: 10.0.0.2 PackagesToExecute: NiosPackage2 PC2 PC1 Processing Unit 2 Managing Unit Processing Unit 1 NiosPackage2 NS,hello,2 Nios II System 1 Upon receiving another package, the Managing Unit once again checks the Free PC Vector and “sees” that there is another PC available and sends it the package. When a PC is free again, it sends “PC, free” and the Managing Unit adds the IP of the PC back to the FreePC vector. The process continues until the Nios II System finishes sending packages.
Program • Management Unit • Initializes the server socket and waits to accept requests • If receives “PC, free” then adds the IP of PC to vector of FreePC’s and checks if there is a package to process for PC • If receives Nios package then adds package to package queue and sees if there is a free PC to process package • If receives “PC, busy”, sends message to Nios that package is being processed • Processing Unit • Initializes connection with Management Unit • While (true): Sends message “free” • Waits to receive package • Processes package and sends message “busy” • Finishes processing and sends “free” • Generator • Initializes the hardware and IP • Initializes connection with Management Unit • While (true), sends packages and receives message that the package # ID is being processed
Conclusions • We have succeeded in creating a network of communication between the Nios II based system and PC using Ethernet and LAN. • We have succeeded in creating a management unit which can manage packages that arrive from the Nios II System and send them to be processed accordingly. • We have succeeded in writing programs that are generic and will be able to support N Nios II Systems and M PCs (as well as N Nios II Systems sending j packages at once).