[comp.sys.mac.misc] mac IIsi slowdown

wambacq@esat.kuleuven.ac.be (01/31/91)

Hi everyone,

some people on the net already reported the slowdown of the IIsi when using
colors instead of black and white. I think there is a very logical explanation
for this. The fact is that the video circuitry uses part of the IIsi's normal
memory for storing the image that is read out to the monitor. Whenever the
video circuitry accesses the memory, the CPU has to wait when it wants to access
the same memory bank. Now, when you use 8 bits video (color or greyscale, no
difference), instead of 1 bit video (black and white), the amount of reserved
memory for the video is much larger and the accesses are more frequent.
I did some tests with different depths (1, 2, 4 and 8 bits), and there is a
gradual slowdown when going from 1 to 2 and to 4 bits. The difference between
using 4 and 8 bits is larger.

There are however tricks to circumvent this slowdown. Therefore you have to know
that in the IIsi, memory is divided in two banks : bank A contains 1Mbyte and is
soldered on the motherboard, bank B consists of the SIMMs and varies in size (in
most cases 4Mbytes). There runs a bus between the CPU and bank B, but this bus
is not brought directly to bank A. There is a buffer between, which makes that
the CPU can access bank B at the same time that the video circuitry accesses
bank A. There would be no slowdown when the CPU would only use bank B. I did the
following test: I installed a RAM disk of 1 Meg, which sets asides a portion of
the memory. This turns out to be mainly bank A memory. Speed tests then show no
slowdown, no matter the number of bits, and this because bank A is not used by
the CPU as long as the RAM disk is not accessed. Disk access is however still
slowed down, but I think this is because I have no exact control over the use of
bank A and most probably some parts of it are still used by the system.

Now, this brings me to my question: would it not be possible to have an
init that makes part of the memory (in this case bank A) unavailable to the
CPU, by juggling with the tables that the MMU maintains? Of course, the
drawback would be that less memory is available to applications, but this is
in many cases not problematic. Is there maybe something like this already?

I also have another question: Apple's IIsi developer's note mentions that the
IIsi is designed to provide future support for network booting. Using the
control panel, one would set a flag in the ADB microcontroller that causes the
system to start up over a communications network such as Ethernet or LocalTalk.
Has anyone more information on this topic? Can this feature be used now
with DEC's PathWorks for the MAC?

Thanks,
Patrick Wambacq
Katholieke Universiteit Leuven
ESAT-MI2
Kard. Mercierlaan 94
3001 Heverlee
Belgium
wambacq@esat.kuleuven.ac.be

bruner@sp15.csrd.uiuc.edu (John Bruner) (02/01/91)

In article <1991Jan31.123728.4540@esat.kuleuven.ac.be> Patrick Wambacq
describes the bus structure of the IIsi and some experiments he
performed to increase the processor speed.  I confess that I have not
seen any hard technical information about the hardware of the IIsi.

Can the video circuitry access bank B?  If I understand Patrick's
description correctly, it sounds like it can't.  Isn't bank A located
at the bottom of physical memory (addresses 0..$FFFFF)?  If so,
doesn't that put the frame buffer right in the middle of the
application heap?

If the processor runs fastest out of bank B, then it seems to me that
in virtual mode (using the MMU) the bank A memory should be dedicated
as much as possible to the video buffer, the disc cache, and other
memory objects whose access time is less critical to system
performance.  In that case, running with the MMU would be faster than
running without it.  Perhaps this will be another feature of System 7?
--
John Bruner	Center for Supercomputing R&D, University of Illinois
	bruner@csrd.uiuc.edu		(217) 244-4476	

cruff@ncar.ucar.edu (Craig Ruff) (02/02/91)

In article <BRUNER.91Feb1091621@sp15.csrd.uiuc.edu> bruner@sp15.csrd.uiuc.edu (John Bruner) writes:
>In article <1991Jan31.123728.4540@esat.kuleuven.ac.be> Patrick Wambacq
>describes the bus structure of the IIsi and some experiments he
>performed to increase the processor speed.  I confess that I have not
>seen any hard technical information about the hardware of the IIsi.

According to the IIsi developer notes and my poking around the MMU page
tables, this is what takes place:

	Bank A memory resides from 0 to 64 Mb (physical).  The video part
	starts at 0 physical and goes until the end of the screen is reached
	(in what ever screen depth you are in at the moment).  Bank A
	memory is buffered from the CPU and Bank B.

	Bank B memory starts at 64 Mb (physical).

	The MMU is programed to place all of Bank B starting at 0
	(virtual).  The portion of Bank A that is used for the
	screen is placed to look like a NuBus slot ($E, I think).
	The remainder of Bank A is appended to the end of Bank B
	in the virtual space.

The effects of this is that anything that is placed into high memory
will end up in Bank A first.

BTW, figuring out how to access physical memory (where the page tables
reside) from the virtual space without screwing up the running program
was an interesting exercise.  The answer is left for the student to
discover.

-- 
Craig Ruff      	NCAR			cruff@ncar.ucar.edu
(303) 497-1211  	P.O. Box 3000
			Boulder, CO  80307

dagraham@vax1.tcd.ie (02/04/91)

In article <1991Jan31.123728.4540@esat.kuleuven.ac.be>, wambacq@esat.kuleuven.ac.be writes:
> some people on the net already reported the slowdown of the IIsi when using
> colors instead of black and white. I think there is a very logical explanation

I also had *mega* slowdown problems; windows taking 5 minutes to draw, and
stuff like that. It all seems to be related to the Personal LaserWriter NT on
our AppleTalk network; when >1 person tries to print at once, one of the print
jobs get done, and the others machines slow down very, very dramatically! At
the same time, the LaserWriter know nothing about this; it's status light is
steady, and somebody else can jump in and print while the other IIsi's are
trying to print. 

If it's any help, we have 4 IIsi's, 2 IIcx's, 1 IIci, 1 IIfx, Personal
LaserWriter NT, Shiva NetModem v.32 on our single zone. All Macs are running
6.0.7 International, except the IIci, which has 7.0b1.

Thanks for any help,

David Graham

Glanmire Electronics Ltd:
AppleLink: DUB.GE.RES
* My opinions are nothing to do with my employer *

And JF Comp Sci at Trinity College, Dublin:
dagraham@vax1.tcd.ie