[comp.sys.next] Can DSP's multitask?

barry@pico.math.ucla.edu (Barry Merriman) (06/05/91)

Lately I've gotten into having lots of sonic stuff on
my NeXT, and noticed that (no surprise) the DSP can only 
do one thing at a time.

With the advent of products that make heavy use of the DSP
(like MIX Inc's forthcoming digital modem/fax/answering machine
all done in the DSP), it seems that the DSP will often be
occupied when some other process needs it. Is it possible for 
DSP's to do some sort of multitasking (I guess this would be
up to the operating system).

What I can see in the future, for a single user, is this:
simultaneously, one could be

(1) listening to music through the DSP
(2) generating system beeps, voice alerts, etc through the DSP
(3) number crunching on the DSP (FFT, raytracing, linear algebra)
(4) have a modem emulator running on the DSP
(5) be sending/recieving a fax on the DSP
(6) have a digital answering machine using the DSP

So it seems like the ability to handle around 6 concurrent
processes on the DSP would be desirable (of course, a slightly
faster DSP may be needed to really do this).

Hopefully NeXT will have the first OS that includes multitasking
for coprocessors; Is this possible for the DSP?

--
Barry Merriman
UCLA Dept. of Math
UCLA Inst. for Fusion and Plasma Research
barry@math.ucla.edu (Internet)   barry@arnold.math.ucla.edu (NeXTMail)

jbn35564@uxa.cso.uiuc.edu (J.B. Nicholson) (06/05/91)

In <1991Jun4.211914.623@math.ucla.edu> barry@pico.math.ucla.edu (Barry Merriman) writes:

>Lately I've gotten into having lots of sonic stuff on
>my NeXT, and noticed that (no surprise) the DSP can only 
>do one thing at a time.

Does this situation of only being able to do one thing at a time improve with
more DSP ram?  I don't know why I'm thinking this, just wondering what NeXT
is selling additional DSP ram for, I suppose.

According to the NeXT Edu. discount for University of Illinois, 96KB of DSP
memory expansion (part #N7013) is $137.00 plus shipping and UI processing
fees.

But I also agree, that I could easily see myself doing multiple things with
the DSP simultaneously (listening to music and processing beeps from terminal
window(s) I have running, in my case).

>Barry Merriman
>UCLA Dept. of Math
>UCLA Inst. for Fusion and Plasma Research
>barry@math.ucla.edu (Internet)   barry@arnold.math.ucla.edu (NeXTMail)

Jeff
--
jeffo@uiuc.edu

eps@toaster.SFSU.EDU (Eric P. Scott) (06/05/91)

Gee, and all this time I thought that's what the Ariel
QuintProcessor board for for...

1/2 :-)

					-=EPS=-

izumi@mindseye.berkeley.edu (Izumi Ohzawa) (06/05/91)

In article <1991Jun4.211914.623@math.ucla.edu>
 barry@pico.math.ucla.edu (Barry Merriman) writes:
>
>With the advent of products that make heavy use of the DSP
>(like MIX Inc's forthcoming digital modem/fax/answering machine
>all done in the DSP), it seems that the DSP will often be
>occupied when some other process needs it. Is it possible for 
>DSP's to do some sort of multitasking (I guess this would be
>up to the operating system).

I am not hopeful on the multitasking idea.
But I know what we need.

A multi-function board with 
  a DSP 56001 +  sockets for one more 56001 and DSP RAM.
  one or two parallel printer ports
  two more serial ports
  may be a phone interface + codec with route to one of 56001.

All this for $500-700?  Is this possible?
Ariel has a board with 5 x 56001, but at $5000+, it's out
of the price range of most users.

I don't foresee any need for 5 of DSP chips, but would like
an inexpensive addition of another now, and possibility of
expansion for the 3-rd DSP.

Parallel ports can make alternatives for NeXT Laser printer
a practical reality.
Izumi Ohzawa             [ $@Bg_78^=;(J ]
USMail: University of California, 360 Minor Hall, Berkeley, CA 94720
Telephone: (415) 642-6440             Fax:  (415) 642-3323
Internet: izumi@violet.berkeley.edu   NeXTmail: izumi@pinoko.berkeley.edu 

jiro@shaman.com (Jiro Nakamura) (06/05/91)

   One problem is that many people use the DSP for real time signal 
processing. Once you make it multitasking, you lose that. Maybe what
we need are two (2) DSP's on the motherboard. One 56001 for the WM
grunge work (sounds, etc), this one multitasks. Then another one
for dedicated real time work. 
   Of course, NeXT's should come standard with the QuintProcessor. :-)
Has anyone seen what they can do? Amazing.... They can really blow
your socks off when you have a good controlling program.


   - Jiro Nakamura
     jiro@shaman.com
-- 
Jiro Nakamura				jiro@shaman.com
The Shaman Group			(607) 256-5125 VOICE
"Bring your dead, dying shamans here!"	(607) 277-1440 FAX/Data

eht@cs.cmu.edu (Eric Thayer) (06/06/91)

It's a very big task to get all these contending real-time tasks to work  
together in concert in a robust way.  I'm a little skeptical that it can be  
done with the current hardware.  Look how difficult it is for the music kit to  
play a song with other competing tasks on the main processor. The 1/2 :-) about  
the QuintProcessor board in EPS's post I can agree with here.

..eric

madler@nntp-server.caltech.edu (Mark Adler) (06/07/91)

Jiro Nakamura believes:

>>    One problem is that many people use the DSP for real time signal 
>> processing. Once you make it multitasking, you lose that.

There are multitasking kernels for DSP's, including the 56001, that
are designed for real-time applications.  These kernels guarantee
cycles to the tasks, so you just have to calculate how many cycles
each task needs, and whether the tasks you want to do fit in the cycles
available (minus some overhead for the kernel).

However, you need more than 8Kx24 to do this kind of stuff.

Mark Adler
madler@tybalt.caltech.edu

kls30@duts.ccc.amdahl.com (Kent L Shephard) (06/07/91)

In article <1991Jun4.211914.623@math.ucla.edu> barry@pico.math.ucla.edu (Barry Merriman) writes:
>Lately I've gotten into having lots of sonic stuff on
>my NeXT, and noticed that (no surprise) the DSP can only 
>do one thing at a time.
>
>With the advent of products that make heavy use of the DSP
>(like MIX Inc's forthcoming digital modem/fax/answering machine
>all done in the DSP), it seems that the DSP will often be
>occupied when some other process needs it. Is it possible for 
>DSP's to do some sort of multitasking (I guess this would be
>up to the operating system).

The DSP does not run any part of the OS.  It can communicate with the host
processor through a port.  The beauty of the DSP is that you can write
your own code and download it to the DSP.

>
>What I can see in the future, for a single user, is this:
>simultaneously, one could be
>
>(1) listening to music through the DSP

Assuming 44.1 Khz this leaves roughly 11usec to do stuff between samples.

>(2) generating system beeps, voice alerts, etc through the DSP

>(3) number crunching on the DSP (FFT, raytracing, linear algebra)

This is a CPU hog.

>(4) have a modem emulator running on the DSP
>(5) be sending/recieving a fax on the DSP
>(6) have a digital answering machine using the DSP

What you want to do is run 5, count them 5 realtime applications on the
+ 1 more that does not have to be real time.
Well the Quintprocessor will do this.
I doubt that the NeXT will ever do this without several DSPs.

>
>So it seems like the ability to handle around 6 concurrent
>processes on the DSP would be desirable (of course, a slightly
>faster DSP may be needed to really do this).

This is not a feasable feat for 1 DSP.  You are going to need 3 serial
serial ports just to support the telephone stuff.   You are going to need
more than just the small host interface to the '040.

Finally you just are going to need more than 1 DSP to do this.

Also where are you going to store all this DSP code??  The DSP can only
access a very limited memory.  This is not a NeXT architecture problem
but a limitation on the DSP itself.

>
>Hopefully NeXT will have the first OS that includes multitasking
>for coprocessors; Is this possible for the DSP?

Not if you plan to write you own real time code.
You want NeXT to write a multitasking kernal for the DSP?
I don't.    The support they have in the OS is pretty good.  Besides the
DSP is not a full u-processor.  I does what it does very well and that is
not running a full fledged OS.

>
>--
>Barry Merriman
>UCLA Dept. of Math
>UCLA Inst. for Fusion and Plasma Research
>barry@math.ucla.edu (Internet)   barry@arnold.math.ucla.edu (NeXTMail)



--
/*  -The opinions expressed are my own, not my employers.    */
/*      For I can only express my own opinions.              */
/*                                                           */
/*   Kent L. Shephard  : email - kls30@DUTS.ccc.amdahl.com   */

thomas@everexn.com (Thomas Poff) (06/10/91)

>However, you need more than 8Kx24 to do this kind of stuff.
>
>Mark Adler
>madler@tybalt.caltech.edu

Yikes!  This means, I suppose that the Next only has 8k of RAM reserved
for the 56000 up?  Are there any other memory resources that the 56000
has access to (like shared memory, etc.).  The 56000 board I built has
64Kx24bits available for it to use.  I know that 64k is the maximum for
that processor without doing bankswitching.  Last question- could someone
tell me how fast the RAM that's dedicated to the 56000 in the NEXT is?
Perhaps 35ns?

thank you.  thank you.
If you respond, you can e-mail direct or to comp.sys.next, whichever you
prefer.

thomas@everexn.com
-- 
======================================
thomas@everexn.com