Gstreamer & Syslink
Total Page:16
File Type:pdf, Size:1020Kb
GStreamer & SysLink Víctor Manuel Jáquez Leal 2011-10-22 Sat Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 1 / 1 Outline Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 2 / 1 Parallel computing Serial computing is now dead. Parallel computing is a revolution that is now upon us. Although it started more than 40 years ago. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 3 / 1 Why Parallel computing? To achieve performance guarantee. It generally leads to lower power consumption. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 4 / 1 Parallel computing challenges Programming for serial computing is already dicult. Programming for parallel computing will only exacerbate this diculty. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 5 / 1 Asymmetric Multiprocessing Might be dierent type of processors. Might have private memory. Might run dierent OS. Parallel computing approaches Symmetric Multiprocessing Identical processors. A single shared main memory. A single OS instance. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 6 / 1 Parallel computing approaches Symmetric Multiprocessing Asymmetric Multiprocessing Identical processors. Might be dierent type of A single shared main processors. memory. Might have private memory. A single OS instance. Might run dierent OS. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 6 / 1 Symmetric Multiprocessing SMP It is the most common conguration. It has bandwidth issues. It lacks of fault-tolerant features. The cache coherency mechanism consumes too much power. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 7 / 1 Asymmetric Multiprocessing AMP A problem in one kernel/CPU will not aect the whole system. Applications must use a dierent API. Requires more hardware resource management. Wider kernel memory consumption. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 8 / 1 Another AMP Conguration One master processor. Multiple remote processors. slave processors are treated as devices (under /dev). One shared memory but registering private regions. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 9 / 1 Inter-Processors Communication IPC An IPC mechanism is key for the AMP architecture. Sharing memory regions between processors. Data interchange. Passing messages between processors. Task synchronization. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 10 / 1 Examples of such multi-core SoCs Texas Instruments's OMAP processors Qualcomm's SnapDragon processors Broadcom's SiByte family of processors Freescale's 8641D dual-core PowerPC-based SOC. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 11 / 1 What is SysLink? SysLink is the latest generation AMP/IPC driver developed by Texas Instrument. It provides mechanisms to control and communicate with remote processors. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 12 / 1 Warning!!! Objective This talk will describe the main SysLink components and how we could map those concepts into GStreamer elements. No OpenMAX No extra libraries (syslink-userspace / libmemmgr / etc.) Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 13 / 1 Objective This talk will describe the main SysLink components and how we could map those concepts into GStreamer elements. No OpenMAX No extra libraries (syslink-userspace / libmemmgr / etc.) Warning!!! Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 13 / 1 Project Gitorious repository page https://gitorious.org/vj-pandaboard/syslink/ These slides are also here https://gitorious.org/vjaquez-misc/syslink-talk/ Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 14 / 1 History of TI's AMP/IPC implementations (1/6) OMAP2: Reference implementation. OMAP3: DSP/Bridge OMAP2/OMAP3/DaVinci: DSPLink OMAP4: SysLink OMAP4/OMAP5: rpmsg / remoteproc Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 15 / 1 History of TI's AMP/IPC implementations (2/6) OMAP2: Reference implementation. dsp-gateway by Nokia. Full open source. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 16 / 1 History of TI's AMP/IPC implementations (3/6) OMAP3: DSP/Bridge Full featured implementation. Only supports DSP (C64x+). Linux side into stagering repository. DSP side is restricted. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 17 / 1 History of TI's AMP/IPC implementations (4/6) OMAP2/OMAP3/DaVinci: DSPLink A stripped implementation of DSP/Bridge. It was not submitted to upstream. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 18 / 1 History of TI's AMP/IPC implementations (5/6) OMAP4: SysLink Supports other types of cores (ARM Cortex-M3 and C64x) Handled in downstream (Ubuntu) Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 19 / 1 History of TI's AMP/IPC implementations (6/6) OMAP4/OMAP5: rpmsg / remoteproc Developed completely in upstream. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 20 / 1 Dynamic memory management: . Dynamic loading: . Power Management: . Zero-copy shared memory: . 2D memory buers allocation: . Remote function calls: . Key features of SysLink Messaging: . Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 21 / 1 Dynamic loading: . Power Management: . Zero-copy shared memory: . 2D memory buers allocation: . Remote function calls: . Key features of SysLink Messaging: . Dynamic memory management: . Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 21 / 1 Power Management: . Zero-copy shared memory: . 2D memory buers allocation: . Remote function calls: . Key features of SysLink Messaging: . Dynamic memory management: . Dynamic loading: . Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 21 / 1 Zero-copy shared memory: . 2D memory buers allocation: . Remote function calls: . Key features of SysLink Messaging: . Dynamic memory management: . Dynamic loading: . Power Management: . Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 21 / 1 2D memory buers allocation: . Remote function calls: . Key features of SysLink Messaging: . Dynamic memory management: . Dynamic loading: . Power Management: . Zero-copy shared memory: . Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 21 / 1 Remote function calls: . Key features of SysLink Messaging: . Dynamic memory management: . Dynamic loading: . Power Management: . Zero-copy shared memory: . 2D memory buers allocation: . Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 21 / 1 Key features of SysLink Messaging: . Dynamic memory management: . Dynamic loading: . Power Management: . Zero-copy shared memory: . 2D memory buers allocation: . Remote function calls: . Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 21 / 1 SysLink v2 architecture Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 22 / 1 SharedRegion: Handles shared memory areas. Gate: Protects memory regions from remote processors. MessageQ: Variable length message passing across processors. Notify: Registers callbacks execute when a remote event occur. HeapBuf: Manages xed size buers within the shared memory. HeapMem: Manages variable size buers within the shared memory. SysLink v2 components MultiProc: Identies each available processor. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 23 / 1 Gate: Protects memory regions from remote processors. MessageQ: Variable length message passing across processors. Notify: Registers callbacks execute when a remote event occur. HeapBuf: Manages xed size buers within the shared memory. HeapMem: Manages variable size buers within the shared memory. SysLink v2 components MultiProc: Identies each available processor. SharedRegion: Handles shared memory areas. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 23 / 1 MessageQ: Variable length message passing across processors. Notify: Registers callbacks execute when a remote event occur. HeapBuf: Manages xed size buers within the shared memory. HeapMem: Manages variable size buers within the shared memory. SysLink v2 components MultiProc: Identies each available processor. SharedRegion: Handles shared memory areas. Gate: Protects memory regions from remote processors. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 23 / 1 Notify: Registers callbacks execute when a remote event occur. HeapBuf: Manages xed size buers within the shared memory. HeapMem: Manages variable size buers within the shared memory. SysLink v2 components MultiProc: Identies each available processor. SharedRegion: Handles shared memory areas. Gate: Protects memory regions from remote processors. MessageQ: Variable length message passing across processors. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 23 / 1 HeapBuf: Manages xed size buers within the shared memory. HeapMem: Manages variable size buers within the shared memory. SysLink v2 components MultiProc: Identies each available processor. SharedRegion: Handles shared memory areas. Gate: Protects memory regions from remote processors. MessageQ: Variable length message passing across processors. Notify: Registers callbacks execute when a remote event occur. Víctor Manuel Jáquez Leal () GStreamer & SysLink 2011-10-22 Sat 23 / 1 HeapMem: Manages variable size buers within the shared memory. SysLink v2 components MultiProc: Identies each available processor. SharedRegion: Handles shared memory areas. Gate: Protects memory regions from