Presentation is loading. Please wait.

Presentation is loading. Please wait.

DSPGateway Architecture in Detail

Similar presentations


Presentation on theme: "DSPGateway Architecture in Detail"— Presentation transcript:

1 DSPGateway Architecture in Detail
Yoshiya Hirase Nokia Research Center Nokia Japan Co. Ltd. © Nokia V1-Filename.ppt / yyyy-mm-dd / Initials

2 Agenda DSP Gateway Features Demonstration Using Nokia 770
© Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

3 DSP Gateway Features Open Source Software Simple interface for DSP
Integrated in Nokia 770 Internet Tablet Simple interface for DSP Efficient inter-processor communication (ARM <-> DSP) Block data transfer via shared memory DSP Task management Dynamic Loader Fault-tolerant mechanism Power management Simple interface for DSP conventional Linux device files Efficient inter-processor communication (ARM <-> DSP) Minimum copy count for maximum throughput Memory management IPBUF: Inter-processor buffer mechanism (“Global”, “Private”, “System”) mmap function Multi-task environment for DSP applications Fault-tolerant mechanism Power management © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

4 History 2003/6: Released the DSP Gateway version 1.0 for OMAP1510 at SourceForge 2004/8: Supported OMAP1610/5912 2004/9: Merged into the Linux OMAP tree 2005/2H: Nokia 770 released with DSP Gateway The latest DSP Gateway ver 3.3 supports OMAP 15XX (including 5910) and 16XX (including 1710 and 5912). © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

5 DSP Interface: Device Files
DSP task devices interface to DSP task DSP control device miscellaneous DSP control (e.g. DSP configuration) DSP memory device DSP memory access DSP task watch device for dynamic loader DSP error detection device error info delivery © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

6 Inter-Processor Communication
Communications via OMAP mailbox mechanism OMAP ARM DSP Mailbox registers (16bit + 16bit) interrupt (16bit + 16bit) interrupt internal memory IPBUF IPBUF: Inter-communication buffer mechanism memory IPBUF © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

7 Inter-Processor Communication: IPBUF
Global IPBUF: Used to transfer block data to/from DSP task Prepared by the system and managed with alloc & free functions Fixed block size, restricted block count Private IPBUF: A task can define an exclusive buffer, with arbitrary size System IPBUF: Used to transfer extra data between systems of ARM and DSP ARM DSP 1 task A task A (alloc) (free) 1 2 3 4 Global IPBUF Global IPBUF ARM DSP task B Private IPBUF task B task B Private IPBUF ARM DSP System IPBUF system system System IPBUF © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

8 Inter-Processor Communication:
Mailbox commands © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

9 Memory Mapping DSP internal memory External memory DARAM, SARAM SDRAM
Visible for ARM and DSP © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

10 Task Management: Dynamic Loader
© Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

11 Task Management: DSP Application Life Cycle
DSP Gateway ARM DSP process 1 Linux application Device driver DSP kernel DSP application DSP task dynamically created open() open() activate DSP task complete open() return write() write() input data / control command task running write() return output data read() read() read() return DSP task dynamically deleted Example -dynamic task- close() close() deactivate DSP task complete close() return © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

12 MP3 Pseudo program (ARM side)
int fd_mp3file, fd_dsp; DATA buf[BUFSZ]; int Decode_MP3(void) { // Open MP3 decoder device fd_dsp = open(“/dev/dsptask/mp3dec”, O_RDWR); // Initialize MP3 decoder ioctl(fd, MP3_DECODE_INIT); // Decode MP3 audio file while (ReadMp3File(fd_mp3file, buf, BUFSZ) != EOF) { // Send encoded data to MP3 decoder in DSP write(fd_dsp, buf, BUFSZ); } // Close MP3 decoder device close(fd_dsp); Issue TCTL command to DSP Issue BKSND command to DSP © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

13 MP3 Pseudo program (DSP side)
Uns rcv_tctl(struct dsptask *task, Uns ctlcmd, Uns *ret, Uns arg) { switch (ctlcmd) { case MP3_DECODE_INIT: InitIMDCT(); InitFilters(); break; ... } Uns rcv_bksnd(struct dsptask *task, Uns bid, Uns cnt) /* Decode received MP3 data */ Dequantize(); ReduceAlias(); IMDCT(); /* Send decoded PCM data to the Audio Device Driver */ Handle MP3_DECODE_INIT of TCTL command Handle BKSND command © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

14 Nokia 770 Internet Tablet Features
Display High-resolution (800x480) touch screen with up to 65,536 colors Memory Engine: DDR RAM 64MB Memory: Flash 128MB (>64MB for user) Memory card: 64MB RS-MMC (Reduced Size - MultiMediaCard) Supported file formats Audio: MP3, Real Audio, AAC, WAV, AMR Image: JPEG, GIF, BMP, TIFF, PNG, Animated GIF format, SVG-tiny, ICO Video: MPEG1, MPEG4, Real Video, H.263, 3GP (RED items are decoded on DSP, BLUE items are routed through DSP) Connectivity WLAN: b/g Bluetooth specification: 1.2 USB device mode for PC connectivity RS-MMC 3.5 mm stereo audio out © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

15 Multimedia Software Architecture in Nokia 770
Linux DSP/BIOS Multimedia Player GStreamer Plugin #1 (Codec) Plugin #2 Plugin #3 Codec #2 Codec #3 DSP Gateway ARM DSP © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

16 Future Work OMAP2420 support (including IVA support)
Driver Abstraction, and expansion for generic AMC (Asymmetric Multi-Core) processors © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

17 Demo: Play Media Files using DSP Gateway
System log message Device status Play sound or movie © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

18 References: Project page: Articles:
Articles: 森 英悟, 小林 俊裕, 高橋 清隆. “オープン・ソース・ソフトウェアDSPGatewayを用いたLinuxで使うOMAP DSP部のソフトウェア開発環境.” Interface: CQ Publishing, May 2004, © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

19 Thank you © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

20 Appendix: File manager Image
© Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

21 Appendix: Audio Player Image
© Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

22 Appendix: BKSND command in log
© Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

23 Appendix: TDEL command in log
© Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

24 Appendix: Task Status Transition
© Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

25 Appendix: Log message while playing MP3
© Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo

26 Appendix: Performance Evaluation Example
Memory mapping improves data transfer well Data send latency (to DSP) by 44%-68% Data receive latency (from DSP) by 27-55% MPU bksnd := MPU sends a data blocks to DSP MPUbkreq_DSPbksnd := MPU sends a block request to DSP -> DSP receives it & then sends the block back -> MPU receives the data block from DSP Memory write/read := MPU writes/reads data on the mapped memory © Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo


Download ppt "DSPGateway Architecture in Detail"

Similar presentations


Ads by Google