Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1 © 2005 Nokia V1-Filename.ppt / yyyy-mm-dd / Initials DSPGateway Architecture in Detail Yoshiya Hirase Nokia Research Center Nokia Japan Co. Ltd."— Presentation transcript:

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

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

3 3 © 2005 Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo DSP Gateway Features Open Source Software ‐ 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

4 4 © 2005 Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo History 2003/6: Released the DSP Gateway version 1.0 for OMAP1510 at SourceForge 2004/8: Supported OMAP1610/ /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).

5 5 © 2005 Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo 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

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

7 7 © 2005 Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo 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: ‐ Used to transfer block data to/from DSP task –A task can define an exclusive buffer, with arbitrary size System IPBUF: ‐ Used to transfer extra data between systems of ARM and DSP Global IPBUF Private IPBUF System IPBUF 1234 ARM (alloc) DSP 1 task A ARM DSP task B Private IPBUF task B (free) Global IPBUF task A ARM DSP system System IPBUF

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

9 9 © 2005 Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo Memory Mapping DSP internal memory ‐ DARAM, SARAM External memory ‐ SDRAM

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

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

12 12 © 2005 Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo 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); } MP3 Pseudo program (ARM side) Issue TCTL command to DSP Issue BKSND command to DSP

13 13 © 2005 Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo 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_I NIT of TCTL command Handle BKSND command

14 14 © 2005 Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo 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

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

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

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

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

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

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

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

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

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

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

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

26 26 © 2005 Nokia CELF_Nokia_Japan_v01.ppt / / NRC-Tokyo 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


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

Similar presentations


Ads by Google