Apple's motherboard design for the 7x00/8x00 and 9x00 series of PowerMac Computers includes the hammerhead memory controller. This controller has the advantage of being able to drive memory in an interleaved fashion, creating virtually a 128-bit wide memory bus for accessing RAM.
You can actually measure the effect of interleaved memory. In order to verify that interleaving is on under Linux/PPC, I have written a small kernel-loadable module that creates a /proc filesystem entry that displays the current memory configuration. The source and a precompiled binary is here (compiled with egcs-1.1 on a kernel 2.1.102 -- it should work with any 2.1.x kernel).
Update 20030126: There is a new release, now supporting 2.4 kernels and autodetecting memory size and machine type (thanks Andreas!). You can find it here. Thanks to Eddie Bindt, it also now supports the Apple Network Server nachines (ANS).
Here's what I get on my 7600:
[[email protected] ~]# insmod ./hammerhead.o [[email protected] ~]# cat /proc/hammerhead Machine detected = PowerMac 7500 Model Type = 16 Total available Memory = 112 MB in slot config: Motherboard Row-> not implemented A1/B1 (row 0) -> 0/ 0 --- A1/B1 (row 1) -> 0/ 0 --- A2/B2 (row 0) -> 8/ 8 Interleaved A2/B2 (row 1) -> 8/ 8 Interleaved A3/B3 (row 0) -> 32/ 32 Interleaved A3/B3 (row 1) -> 0/ 0 --- A4/B4 (row 0) -> 8/ 8 Interleaved A4/B4 (row 1) -> 0/ 0 ---
Some source code of the module (specifically the configuration check routine and the display routine) is from Apple. You can find the complete package on their Developer Support FTP site, under the tools hierarchy.
Please use this module under your own reponsibility. It doesn't break my system; but it might break yours! You have been warned ;-).
Enjoy, and have fun!