Inter-Process communication using pipe in FPGA based adaptive communication
-
Upload
mayur-shah -
Category
Career
-
view
104 -
download
0
Transcript of Inter-Process communication using pipe in FPGA based adaptive communication
![Page 1: Inter-Process communication using pipe in FPGA based adaptive communication](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/1.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/2.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/3.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/4.jpg)
Figure Of Inter Process Communication
Process 1 Process 2
data
sender receiver
![Page 5: Inter-Process communication using pipe in FPGA based adaptive communication](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/5.jpg)
IPC Mechanisms
Signals
Pipes
FIFOs
Message Queue
Shared memory
![Page 6: Inter-Process communication using pipe in FPGA based adaptive communication](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/6.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/7.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/8.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/9.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/10.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/11.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/12.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/13.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/14.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/15.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/16.jpg)
![Page 17: Inter-Process communication using pipe in FPGA based adaptive communication](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/17.jpg)
(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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/18.jpg)
Re-configurable Process Model
![Page 19: Inter-Process communication using pipe in FPGA based adaptive communication](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/19.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/20.jpg)
• 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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/21.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/22.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022022415/5a6590d97f8b9a9f2f8b45c7/html5/thumbnails/23.jpg)
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