RECOMMENDATIONS
Yes, there are recommendations as to where the NuBus cards should be
placed. This has to do with heap fragmentation, not speed.
The following recommendations are valid only for 24-bit mode:
- The Macintosh IIcx should have the cards placed from left to right.
- The Macintosh IIci should have the cards placed from right to left.
- Any Macintosh with six slots should have the cards placed contiguously
from either side.
BACKGROUND
The memory map of any Macintosh running in 24-bit mode is 8MB for RAM, 1MB
for ROM, 6MB for slot space, and 1MB for I/O. This is in order from
bottom to top as follows:
|------------|
| I/O |
|------------|
| slot $E |
| slot $D |
| slot $C |
| slot $B |
| slot $A |
| slot $9 |
|------------|
| ROM |
|------------|
| |
| |
| |
| RAM |
| |
| |
| |
| |
|------------|
There may be more memory than the amount that shows up as the largest
unused block, and thus the amount available for an application to be
loaded into, because the memory is fragmented. Say, for example, you had
a Macintosh IIfx set for 13MB with virtual memory, with a card in slot $C.
Applications were then loaded one after the other that took 7MB of memory
combined. The largest unused block would be 3MB, even though there were
6MB of memory available to use, as only 3MB of it was contiguous. The 1MB
below ROM, as well as the 2MB from slots $D and $E, could be used, but
only as 1MB and 2MB chunks, respectively.
This is the same thing we see when multiple applications are launched, and
then one of the middle applications is quit. The memory that the middle
application used is not added to the largest unused block.
In the example below, three applications, each using 2MB of memory are
loaded. Assume for this example that virtual memory is not on. If you
then quit from application 2, the largest unused block would be 2MB, even
though 4MB is not being used. If you load another application that used
1MB of memory, you would have 2MB as the largest unused block, because the
2MB on top is still available. This is the same issue as with the NuBus
slots and virtual memory. When a card is placed in a NuBus slot, it is
the same as having an application permanently loaded in that space.
|------------|
| I/O |
|------------|
| slot $E |
| slot $D |
| slot $C |
| slot $B |
| slot $A |
| slot $9 |
|------------|
| ROM |
|------------|
| |
| |
|------------|
| |<- application 3 (2MB)
|------------|
| |<- application 2 (2MB)
|------------|
| |<- application 1 (2MB)
|------------|
With that in mind, on a Macintosh IIcx, the NuBus slots used are $9, $A,
and $B. Therefore, if you fill $9 first, which is right next to ROM, you
have 5MB of contiguous slot address space. If you fill $A first, you have
two chunks, one of 1MB of contiguous slot address space, and the other 4MB
of contiguous slot address space, and thus 4MB would be the largest unused
block.
A Macintosh IIci uses slot $B for video RAM. The NuBus slots used are $C,
$D, and $E. If you are using built in video, it doesn't matter which way
you load the cards. If you are not using built in video, using slot $E
first would give you the most contiguous slot address space.
On a Macintosh with six NuBus slots, it does not matter which direction
you fill the slots from, but to get the most contiguous space, they should
be loaded one next to the other.
The ordering of the NuBus cards solely affects heap fragmentation. This
has NO effect on the speed of virtual memory. Once you load the
applications, the speed is the same regardless of where you place the
cards. Heap fragmentation gives you less contiguous memory to load things
in, but it does not affect the system's speed.
Remember, this is true only in 24-bit mode. Once you go to 32-bit
addressing, the whole address map changes, and this is no longer an issue.