23
Gujarat Technological University Ahmedabad & C-DAC, Pune M.E (Electronics & Communication Engineering) In VLSI & Embedded System Design (sem-1) En No-160930359011

Inter-Process communication using pipe in FPGA based adaptive communication

Embed Size (px)

Citation preview

Page 1: Inter-Process communication using pipe in FPGA based adaptive communication

Gujarat Technological University

Ahmedabad

&

C-DAC, Pune

M.E (Electronics & Communication Engineering)

In

VLSI & Embedded System Design (sem-1)

En No-160930359011

Page 2: Inter-Process communication using pipe in FPGA based adaptive communication

Inter-Process Communication using

Pipes in FPGA-based Adaptive

Computing

Presented by

Mayur Shah

Page 3: Inter-Process communication using pipe in FPGA based adaptive communication

What is Inter Process Communication ?[1]

Exchange of data between two or more separate, independent processes/threads.

Operating systems provide facilities/resources for inter-process communications (IPC), such as message queues, semaphores, and shared memory.

Distributed computing systems make use of these facilities/resources to provide application programming interface (API) which allows IPC to be programmed at a higher level of abstraction. (e.g., send and receive)

Distributed computing requires information to be exchanged among independent processes.

Page 4: Inter-Process communication using pipe in FPGA based adaptive communication

Figure Of Inter Process Communication

Process 1 Process 2

data

sender receiver

Page 5: Inter-Process communication using pipe in FPGA based adaptive communication

IPC Mechanisms

Signals

Pipes

FIFOs

Message Queue

Shared memory

Page 6: Inter-Process communication using pipe in FPGA based adaptive communication

Purposes for IPC

Data Transfer

Sharing Data

Event notification

Resource Sharing and Synchronization

Process Control

Page 7: Inter-Process communication using pipe in FPGA based adaptive communication

What is pipe?

Pipe which allow transfer data between processes in First in-

First-out manner.

A pipe is usually realized in memory.

Pipe operations are memory operations.

Page 8: Inter-Process communication using pipe in FPGA based adaptive communication

Create a Pipeline

Sometimes useful to connect a set of processes in a pipeline.

Process

cProcess

DPipePipe

Process A writes to pipe AB, Process B reads from AB and

writes to BC

Process C reads from BC and writes to CD …..

Page 9: Inter-Process communication using pipe in FPGA based adaptive communication

Field Programmable Gate Array

It is primarily a semiconductor device that can be configured by the user (customer or designer) after the manufacturing process has been completed

The term "field-programmable" means the device is programmed by the customer, not the manufacturer.

Can be programmed using a logic circuit diagram or source code in VHDL or Verilog.

It offers partial re-configuration of a portion of design.

Page 10: Inter-Process communication using pipe in FPGA based adaptive communication

General Figure of FPGA

Logic blocks

to implement combinational

and sequential logic

Interconnect

wires to connect inputs and

outputs to logic blocks

I/O blocks

special logic blocks at periphery

of device for external connections

Page 11: Inter-Process communication using pipe in FPGA based adaptive communication

Adaptive Computing

Adaptive computing refers to the capability of a computing system

to adapt one or more of its properties (e.g. performance) during

runtime.

There are diverse reasons of why it is advantageous for a computing

system to adapt during runtime and there are various enabling

techniques and paradigms that allow a computing system to perform

such an adaptation.

Page 12: Inter-Process communication using pipe in FPGA based adaptive communication

Now We starting our main topic ………….

Inter-Process Communication using Pipes in FPGA-based

Adaptive Computing

Page 13: Inter-Process communication using pipe in FPGA based adaptive communication

Abstract:-

In FPGA-based adaptive computing, Inter-Process Communications

(IPC) are required to exchange information among hardware processes

which time multiplex the resources in a same reconfigurable region.

Page 14: Inter-Process communication using pipe in FPGA based adaptive communication

Adaptive computing based on FPGA Partial Reconfiguration (PR)

technologie tailors various computation algorithmes to ambient

conditions during system run-time. It intelligently manages on-chip

computing resources and improves their utilization efficiency .

In contrast to conventional static configuration of FPGAs, PR

provides the technical support for changing only a particular section

of an FPGA design, while the remaining system is still in operation.

Analogous to software multiprogramming on CPUs, the PR

technology enables multitasking on limited FPGA resources by

dynamically configuring or unloading processing modules according

to computation requirements. In this context, each processing module

is treated as a hardware process for one specific algorithm.

Now Introduction

Page 15: Inter-Process communication using pipe in FPGA based adaptive communication

IPC QUEING MODEL

Static Process Model

Pipes and FIFOs (Also called named pipes. We use pipe as the general name.)

are a basic IPC mechanism provided in all flavors of Unix OSes. They are best

suited to implement producer-consumer interactions among processes.

A pipe is a unidirectional channel: All data written by a process to the pipe is

routed by the OS kernel to another process which can thus read it .In FPGA-based

designs, hardware pipes behave in an analogous manner as the software ones in

Oses.

Page 16: Inter-Process communication using pipe in FPGA based adaptive communication
Page 17: Inter-Process communication using pipe in FPGA based adaptive communication

(Figure 1) shows consecutive pipe communications between algorithm

modules. Conventionally all algorithm processors or algorithm steps are

statically placed on the FPGA fabric. They work in parallel to process

their respective input data streams, possibly generate output results, and

pass IPC information to the next computation stage. In this model,

intermediate pipes with buffering capability decouple and coordinate

producers and consumers, if they do not generate and consume data at the

same pace.

Page 18: Inter-Process communication using pipe in FPGA based adaptive communication

Re-configurable Process Model

Page 19: Inter-Process communication using pipe in FPGA based adaptive communication

In adaptive computing scenarios in which multiple algorithm processors or

algorithm steps timeshare the same resources in one PR Region (PRR), pipes can

be used to bridge the communication of two modules activated at different time.

In Figure 2, a reconfigurable design is demonstrated with the same dataflow as

the static algorithm placement shown in Figure 1: Algorithm modules are

sequentially loaded into the PR region for a period of time. They read and

consume data from the previous-stage pipe, and store the generated inter-module

information in the current-stage pipe for next-stage computation. For example

after activated, algorithm A1 reads IPC packets of A0 from pipe0, and

passinformation to A2 via pipe1.

Page 20: Inter-Process communication using pipe in FPGA based adaptive communication

• Pipes can be implemented with

• BRAM on Xilinx Virtex-4 FPGA

• External DDR memory

M. Liu, Z. Lu, W. Kuehn, S. Yang, and A. Jantsch,"A Reconfigurable Design Framework for FPGA Adaptive Computing“, ReConFig’09.

HARDWARE IMPLEMENTATION

Page 21: Inter-Process communication using pipe in FPGA based adaptive communication

DDR_pipe:

The complete system architectureFPGA adaptive computing [1]

• Embedded microprocessor

(scheduler)

• Memory (partial bitstream storage)

• HWICAP for PR

Page 22: Inter-Process communication using pipe in FPGA based adaptive communication

Conclusion

The latency of IPC packets is expected to be reduced with

more intelligent mechanisms, and to be properly coordinated

with throughput requirements in realtime applications.

Page 23: Inter-Process communication using pipe in FPGA based adaptive communication

Reference

.1. ipc using pipe in fpga adtive computinghttps://www.google.com.sg/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwivuNm46tXPAhVMNY8KHU3cBt8QFggiMAE&url=http%3A%2F%2Fpeople.kth.se%2F~mingliu%2Fpublications%2Fisvlsi.pdf&usg=AFQjCNHrXxzujLetB6rt_lVIcY5Be53bVw&sig2=QknRCLRS3W8mus0v3vJLig&bvm=bv.135475266,d.c2I2. ipchttps://www.google.com.sg/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&sqi=2&ved=0ahUKEwi6wp-d69XPAhVELI8KHWhgDaoQFggaMAA&url=http%3A%2F%2Fcs.gmu.edu%2F~yhwang1%2FSWE622%2FSlides%2FIPC.ppt&usg=AFQjCNEmVM6Hulc8KHty_Ws4_d25fp5Hig&sig2=hGeYLuamFJGVZD4D0C0yMA&bvm=bv.135475266,d.c2I3. ipc using pipehttps://www.google.com.sg/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiu79bH69XPAhXDtI8KHQbMB8sQFgggMAE&url=http%3A%2F%2Fwww.cs.fsu.edu%2F~xyuan%2Fcop4610%2Flecture_6_osinterface4.ppt&usg=AFQjCNH9xpXqX1FLfvCPiDcHFz3KnGhEZQ&sig2=PRFlyBr8RnehonF4TCelVA&bvm=bv.135475266,d.c2I

3.2https://www.google.com.sg/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiu79bH69XPAhXDtI8KHQbMB8sQFgggMAE&url=http%3A%2F%2Fwww.cs.fsu.edu%2F~xyuan%2Fcop4610%2Flecture_6_osinterface4.ppt&usg=AFQjCNH9xpXqX1FLfvCPiDcHFz3KnGhEZQ&sig2=PRFlyBr8RnehonF4TCelVA&bvm=bv.135475266,d.c2I4. adptive computinghttps://www.google.com.sg/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&uact=8&ved=0ahUKEwiH8_L959XPAhUBsY8KHeeSAAYQFgg5MAM&url=http%3A%2F%2Fwww.diva-portal.org%2Fsmash%2Fget%2Fdiva2%3A418205%2FFULLTEXT01.pdfAdaptive&usg=AFQjCNFvnAiqgy6XEdUTifSQmdGJdIijtQ&sig2=uriWwwdTeAfmcub9ISpXtg