Date : Sun, 23 May 2004 23:08:00 +0100
From : Richard Gellman <splodge@...>
Subject: Re: Tube / Master Coprocessor question
The tube is an asynchronous dual CPU interface. Whats actually happening
is two CPUs running as two independnt systems, with a chip inbetween
(The TUBE, found typically in the second processor box) that has a bus
interface for both CPUs. The two sides then pass data across the tube
using a set of 4 registers. Most of these are one-byte registers, but
there is a 24-byte FIFO register for VDU sequence transfers, and a
2-byte FIFO for Disk/Network I/O.
So to answer your question, yes you can run code of both CPUs at once,
you just need to ensure you transfer whatever data is needed across the
TUBE. Note that contrary to the expected behavior, the data is not
signalled by interrupts. Almost ALL data transfers are done by polling
status bits. Each data register on the TUBE has a status register which
has a "data ready" bit.
Fortunately, the OS has functions to implement all this for you, and I
believe even calls your code when data is ready for you to receive.
To get the data into the I/O processor, you'll probably need to load it
in and send the data back to the other CPU. You can then use OS
functions to instruct the IO processor to run specific code.
-- Richard
Chris Smith wrote:
>Hi,
>
>Not sure if this is possible...
>
>Firstly, I own a Master Turbo. It got a stay of execution from the wife
>:-)
>
>Is it possible to run "application code" on both processors at once?
>Preferably interrupt driven on the IO processor (via 1MHz bus). I wish
>to implement a simple protocol handler which is called from the language
>processor.
>
>The basic idea is to implement a "hardware accelerated TCP/IP stack"
>using a large and powerful Atmel controller wired to the 1MHz bus and
>shove the data up and down it as required at application level similar
>to the already present streams concept in MOS. Smoking crack I know ;-)
>
>Cheers all,
>
>- Chris.
>
>
>
>