dsp_K data sheet

for AD-2106x SHARC

15 October, 2000

Copyright Notice
This document is part of the dsp_K source distribution and a licensed DSP_K DESCRIPTION document. The figures in this data sheet are obtained on an AD-21065L "SHARC" DSP simulator, with an external clock at 30Mhz, doubled to 60MHz internal core. While effort has been made to be accurate, the figures are approximations only. The dsp_K API software is fully described in a companion technical note.

version

The figures refer to the snapshot we call kernel version 0.6. The kernel BSP is fully described in the programer guide.

Runtime measures

The times given here are measurements taken from test programs and are representative of real kernel overhead. The columns show figures for program data residing both on-chip and off-chip data with zero external memory wait states. The code is compiled with debugging enabled and with no optimisation.
 
measure kernel functions clock cycles (time) internal clock cycles (time) external (0 wait states)
context switch (new task) _DSP_K_SWITCH 180(3uS) programmatic
300(5uS) unravel interrupt
240(4uS) average
270(4uS) average
context switch (same task) _DSP_K_SWITCH 35(<1uS) 40(<1uS)
task schedule  DSP_K_TASK_SCHEDULE
priority scheduler
75(1uS) 85(1uS)
task pend MONOLITH_TASK_PEND 25(<1uS) 30(<1uS)
task ready MONOLITH_TASK_READY 30(<1uS) 35(<1uS)
semaphore give (non-block) MONOLITH_SEMA_GIVE 75(1uS) 80(1uS)
semaphore take (non-block) MONOLITH_SEMA_TAKE 60(1uS) 65(1uS)
message send (unblock) MONOLITH_MSG_SEND 230(4uS) 250(4uS)
message receive (block) MONOLITH_MSG_RECEIVE 140(2uS) 155(2uS)
channel output (blocking) PROCESS_OUT 80(1uS) 90(<2uS)
channel input (non-blocking) PROCESS_IN 100(<2uS) 110(<2uS)
interrupt latency (into ISR) fast wrapper 55(<1uS) 60(1uS)
interrupt exit (ISR to code) fast wrapper 20(<1uS) 25(<1uS)
driver open MONOLITH_DRVR_OPEN 40(<1uS) 45(<1uS)
driver read MONOLITH_DRVR_READ 50(<1uS) 55(<1uS)
driver write MONOLITH_DRVR_WRITE 50(<1uS) 55(<1uS)
driver close MONOLITH_DRVR_CLOSE 40(<1uS) 45(<1uS)

Build measures

The table below shows the build sizes (code and data) as indicated.
 
Tasks ITCs Drivers Pcode Data
4 5 1 0xc77 0xd8
The sizes shown don't include task stacks, which have to be user allocated. The kernel relies on C library support which has to be present to support user tasks, and this needs a further 0x20e program words and 0x2ac data words. The exact figures for an application can be found by producing a memory map output from the VDSP linker options.


Copyright (C) 2000 Julian Rose, Sussex, U.K. This page is maintained by jhrose@dial.pipex.com.