[comp.sys.amiga.tech] State of PD system enhancement

filbo@gorn.santa-cruz.ca.us (Bela Lubkin) (09/18/89)

In article <8909180719.AA29678@postgres.Berkeley.EDU> Matt Dillon writes:
>	Now that I have NET: working w/ my parallel port network (raw
>    throughput of 28KBytes/sec), having a second Amiga has suddenly become
>    useful, much more useful than spending the $$ for an accelerator.
Perhaps; certainly a big round of applause are due you and Doug Walker.
This doesn't solve the memory problem on the 2nd machine; perhaps the VM
routines discussed by -- I forget his name -- in an article titled
something like "Exit with a bang!"?  (Aside: I never saw even a single
reply to that message.  Did everyone assume it was a hoax?  Was it old hat?
I was expecting a flurry of discussion.)

I'm very excited by the great PD/ShareWare work that is being done on
AmigaDOS -- from ARP, AREXX and ConMan to DNET, NET:, the parallel
network driver, and potentially virtual memory, maybe even memory
protection.  And hardware like LUCAS/FRANCES and the ECS hack for the
A1000.  Hopefully Commodore will see fit to license some of the software
parts.  AmigaDOS deserves it; new buyers deserve these features without
having to become experts on what's good and what isn't in PD software.

>	diskperf NET: to my A1000's RAM: drive yields 25 KBytes/sec
>	(4096 byte buffers).  Raw network throughput is 28 KBytes/sec.
Is that the theoretical limit on the parallel port?  I'd expect much
higher throughput.  The serial port can be driven up to 56Kbps or so,
right?  If (and I realize I'm making a big assumption here, but ...)
IF it takes about the same amount of effort to send a BYTE down the
parallel port as a BIT down the serial port, shouldn't the limit be
around 56Kb/sec?

Hmmm.  2:1.  Less of a difference than I'd thought at first.  I'm
probably just talking through my hat; ignore me... ;-}

Bela Lubkin     * *   filbo@gorn.santa-cruz.ca.us   CIS: 73047,1112
     @        * *     ...ucbvax!ucscc!gorn!filbo    ^^^  REALLY slow [months]
R Pentomino     *     Filbo @ Pyrzqxgl (408) 476-4633 & XBBS (408) 476-4945

dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) (09/19/89)

:>	diskperf NET: to my A1000's RAM: drive yields 25 KBytes/sec
:>	(4096 byte buffers).  Raw network throughput is 28 KBytes/sec.
:Is that the theoretical limit on the parallel port?  I'd expect much
:higher throughput.  The serial port can be driven up to 56Kbps or so,
:right?  If (and I realize I'm making a big assumption here, but ...)
:IF it takes about the same amount of effort to send a BYTE down the
:parallel port as a BIT down the serial port, shouldn't the limit be
:around 56Kb/sec?

	I've been talking to Ron Perry, who wrote the basic software
    for a commercial 16 Amiga server using the parallel port.  With
    hardware, he is getting 100KBytes/sec out of it.

	As far as the serial port goes, no, a bit is not the same
    trouble as a byte on the parallel port.  You write bytes to the
    serial port register not bits so the trouble is the same.

	56Kbps = 5.6KBytes/sec (10 bits/byte 8 bits + start + stop)

	The current 28KBytes/sec throughput I'm getting over the
    parallel port is about 35uS/byte.  Most of the time is spent
    hand-shaking between the computers.  With the Amiga you can't
    count cycles like you could on the old C64's and PETs so you
    have to handshake.

:Hmmm.  2:1.  Less of a difference than I'd thought at first.  I'm
:probably just talking through my hat; ignore me... ;-}

	nearer to 5:1.  Theoretically, the maximum transfer rate over
    the parallel port is ~8 to ~10x the maximum transfer rate over a 
    serial port using line loading limits.

	I've heard people running the serial port at 262KBaud 
    (26KBytes/sec).  The only way this can be done that I can think
    of is (1) The machine must have FAST memory so the video doesn't
    interfere, and (2) Interrupts must be disabled during the transfer. 
    That might be good for a hack file transfer but I can't make those
    assumptions for interactive usage.

					-Matt

filbo@gorn.santa-cruz.ca.us (Bela Lubkin) (09/19/89)

In article <8909182019.AA06478@postgres.Berkeley.EDU> Matt Dillon writes:
>	As far as the serial port goes, no, a bit is not the same
>    trouble as a byte on the parallel port.  You write bytes to the
>    serial port register not bits so the trouble is the same.

I meant, in essence, "the same trouble to the hardware".  i.e. if it can
change the state of the serial data line 56K times/sec., it's pretty
reasonable that it'd be able to change ALL the parallel lines 56K/sec.
But you're saying 28K/sec. is a software limit, so hardware capability
isn't even at question.

>	The current 28KBytes/sec throughput I'm getting over the
>    parallel port is about 35uS/byte.  Most of the time is spent
>    hand-shaking between the computers.  With the Amiga you can't
>    count cycles like you could on the old C64's and PETs so you
>    have to handshake.

>	I've heard people running the serial port at 262KBaud 
>    (26KBytes/sec).  The only way this can be done that I can think
>    of is (1) The machine must have FAST memory so the video doesn't
>    interfere, and (2) Interrupts must be disabled during the transfer. 
>    That might be good for a hack file transfer but I can't make those
>    assumptions for interactive usage.

What happens if you Forbid() as the block starts, can you get away with
cycle counting?  If the blocks are short enough this should not affect
the rest of the system.  (e.g. suppose this gets it down to 15uS/byte;
at 64 bytes/block that's about 1ms, just barely short enough to not
interfere with 9600bps serial I/O -- hopefully).  You could let the
user set max. block length and whether to use handshaking or cycle
counting.  You could even have a library to allow programs to change that;
and include a user agent that lets the user directly set them with
sliders etc.  The same idea should apply to the serial port: crank it
up to 262Kbps or whatever, and transfer small packets within Forbid().
You >can< get away with these assumptions for interactive usage, if you
never stop the machine for long enough for a user to notice.  1ms is
fine.  The receiver should in general control the transfer, asking for
another block when it is given CPU time.  Transfer rate would vary a lot
according to system load, but that's normal.

Bela Lubkin     * *   filbo@gorn.santa-cruz.ca.us   CIS: 73047,1112
     @        * *     ...ucbvax!ucscc!gorn!filbo    ^^^  REALLY slow [months]
R Pentomino     *     Filbo @ Pyrzqxgl (408) 476-4633 & XBBS (408) 476-4945

mwm@eris.berkeley.edu (Mike (I'll think of something yet) Meyer) (09/19/89)

In article <33.filbo@gorn.santa-cruz.ca.us> filbo@gorn.santa-cruz.ca.us (Bela Lubkin) writes:
<I'm very excited by the great PD/ShareWare work that is being done on
<AmigaDOS -- from ARP, AREXX and ConMan to DNET, NET:, the parallel

Um, AREXX is neither PD nor shareware; it's a real live commercial
product. If you've got a copy you didn't pay for, or have been passing
it out, you've been violating the copyright laws.

	<mike
--
Here's a song about absolutely nothing.			Mike Meyer
It's not about me, not about anyone else,		mwm@berkeley.edu
Not about love, not about being young.			ucbvax!mwm
Not about anything else, either.			mwm@ucbjade.BITNET

filbo@gorn.santa-cruz.ca.us (Bela Lubkin) (09/19/89)

In article <1989Sep19.004336.17535@agate.berkeley.edu> Mike Meyer writes:
>Um, AREXX is neither PD nor shareware; it's a real live commercial
>product. If you've got a copy you didn't pay for, or have been passing
>it out, you've been violating the copyright laws.
Actually, I don't have a copy at all.  It's one of those "must get some
day" items on my list.  Partly I haven't moved on it because I bought
REXX for my PClone long ago and was quite underwhelmed.  But it's a lot
more valuable on a multitasking machine.  Undoubtably, once I install it
I'll wonder how I ever got along without it...

Bela Lubkin     * *   filbo@gorn.santa-cruz.ca.us   CIS: 73047,1112
     @        * *     ...ucbvax!ucscc!gorn!filbo    ^^^  REALLY slow [months]
R Pentomino     *     Filbo @ Pyrzqxgl (408) 476-4633 & XBBS (408) 476-4945

dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) (09/19/89)

:What happens if you Forbid() as the block starts, can you get away with
:cycle counting?  If the blocks are short enough this should not affect
:the rest of the system.  (e.g. suppose this gets it down to 15uS/byte;

	You can't.  Too much effects the 68K and, in fact, there may not
    even be a 68K in there... could be a 68020 or 030 or, well, you get
    the point.
     
	Also things like video (say the guy doesn't have any FAST mem!)
    and, of course, hardware interrupts would cause major problems.
    (You simply don't disable interrupts for that long a period of time!)

				-Matt

daveh@cbmvax.UUCP (Dave Haynie) (09/19/89)

in article <33.filbo@gorn.santa-cruz.ca.us>, filbo@gorn.santa-cruz.ca.us (Bela Lubkin) says:
> X-Claimer: I >am< R Pentomino!

> This doesn't solve the memory problem on the 2nd machine; perhaps the VM
> routines discussed by -- I forget his name -- in an article titled
> something like "Exit with a bang!"?  (Aside: I never saw even a single
> reply to that message.  Did everyone assume it was a hoax?  Was it old hat?
> I was expecting a flurry of discussion.)

There was LOTS of VM discussion around here back around June or so.  I guess
that someone has it working to a degree by now isn't that amazing, at least
if you were tuned into the earlier discussion.  Of course, the idea of some
kind of VM working on an MMU equipped Amiga isn't that big an issue -- I would
guess anyone with a little OS and MMU programming experience could get 
_something_ working in a week or two of after-hours hacking.  The real test is
how some of the extremely sticky issues (start with "I get a page fault while
I'm Disabled()" and take it from there) are handled.

> IF it takes about the same amount of effort to send a BYTE down the
> parallel port as a BIT down the serial port, shouldn't the limit be
> around 56Kb/sec?

There's a fixed hardware limit at work -- how fast can you talk to the I/O
chips.  The parallel port is based on an 8520 CIA chip; it takes roughly
10 7.16MHz clocks to write one byte to this chip.  The serial port is part
of the Paula chip; as long as you're not letting the blitter steal cycles,
it usually takes 4 7.16MHz clocks to write one byte to this chip.  You'll
have to work some kind of handshaking into the parallel transfer as well.
So from the CPU point of view alone, the CIA takes at least 5x as long to 
send a byte as the serial port.  Now, the serial port isn't going to
shift out that byte in one bus cycle, but it also doesn't occupy the CPU while
it's shifting and all.  The serial speed, then, will be bound by the speed
of Paula's shift register and the quality of the transmission line.  The
parallel port speed will be bound by the speed of CPU writes, your handshaking
mechanism, the quality of its transmission line.

> Bela Lubkin     * *   filbo@gorn.santa-cruz.ca.us   CIS: 73047,1112
>      @        * *     ...ucbvax!ucscc!gorn!filbo    ^^^  REALLY slow [months]
> R Pentomino     *     Filbo @ Pyrzqxgl (408) 476-4633 & XBBS (408) 476-4945
-- 
Dave Haynie Commodore-Amiga (Systems Engineering) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
                    Too much of everything is just enough

daveh@cbmvax.UUCP (Dave Haynie) (09/19/89)

in article <34.filbo@gorn.santa-cruz.ca.us>, filbo@gorn.santa-cruz.ca.us (Bela Lubkin) says:
> X-Claimer: I >am< R Pentomino!

> What happens if you Forbid() as the block starts, can you get away with
> cycle counting? 

One big problem is that you never know exactly how long it'll take to write
to the CIA chip.  It's hooked into the system via the 68000's 6800 family
support mechanism.  The CIA runs from a clock that's 6 68000 clocks low,
4 clocks high.  When you access the CIA, the 68000 will synchronize to this 
free running 716kHz clock; depending on where the 68000 cycle is in relation
to the CIA cycle, this can sync-up can vary quite a bit.  So handshaking 
between machines is a requirement.

> Bela Lubkin     * *   filbo@gorn.santa-cruz.ca.us   CIS: 73047,1112
>      @        * *     ...ucbvax!ucscc!gorn!filbo    ^^^  REALLY slow [months]
> R Pentomino     *     Filbo @ Pyrzqxgl (408) 476-4633 & XBBS (408) 476-4945
-- 
Dave Haynie Commodore-Amiga (Systems Engineering) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
                    Too much of everything is just enough

dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) (09/20/89)

:in article <34.filbo@gorn.santa-cruz.ca.us>, filbo@gorn.santa-cruz.ca.us (Bela Lubkin) says:
:> X-Claimer: I >am< R Pentomino!
:
:> What happens if you Forbid() as the block starts, can you get away with
:> cycle counting? 
:
:Dave Haynie Commodore-Amiga Writes: (daveh@cbmvax.commodore.com)
:One big problem is that you never know exactly how long it'll take to write
:to the CIA chip.  It's hooked into the system via the 68000's 6800 family
:support mechanism.  The CIA runs from a clock that's 6 68000 clocks low,
:4 clocks high.  When you access the CIA, the 68000 will synchronize to this 
:free running 716kHz clock; depending on where the 68000 cycle is in relation
:to the CIA cycle, this can sync-up can vary quite a bit.  So handshaking 
:between machines is a requirement.

	Oh, THAT is why the cycles weren't comming out!  I'm getting
    28KBytes/sec out of the thing which is 35uS/byte and I just couldn't
    figure out why it was taking so long!  Now it's obvious, I only
    access the CIA in just about every instruction!

					-Matt

aca@nyit.UUCP (Al Arthur) (09/21/89)

In article <1989Sep19.004336.17535@agate.berkeley.edu> mwm@eris.berkeley.edu (Mike (I'll think of something yet) Meyer) writes:
>Um, AREXX is neither PD nor shareware; it's a real live commercial
>product. If you've got a copy you didn't pay for, or have been passing
>it out, you've been violating the copyright laws.
>	<mike

	Actually, I think there was an "ARexx Demo" version in circulation,
	that didn't have the full functionality of the commercial version.
	If my memory serves me correctly (it's questionable :-) ), the
	demo I had, before I bought ARexx, came from the distribution of
	the WShell, though I think I must have seen it somewhere else.

		- Al -


-- 
Alex Arthur, System Programmer/UUCP Administrator
New York Institute of Technology - Computer Graphics Laboratory
Gerry House, Old Westbury, New York 11568
Phone:(516) 686-7644	UUCP: ...!philabs!nyit!aca