Just a quick question. Is it advised against to place a high speed memory device on the opposite side of the PCB with respect to the microcontroller? And if it is ill advised, how is it possible to used the same data/address bus for a few different physical memories? There would be no way to route the inner traces that have been sandwiched in by the other address/data lines.
In theory it is possible. In practice, it sounds better than it really is.
It only really works when the chips are not BGAs. But these days almost all modern CPU's and SDRAMs are in BGA packages. Putting BGA's on opposite sides of the PCB can be problematic because you quickly run out of room for pads and vias. But the benefits of using BGAs (reduced pin inductance, etc.) is very nice for meeting EMI regulations and I tend to choose BGAs over other packages.
So the only time that you can really put the CPU and SDRAM on opposite sides of the PCB is when your CPU and SDRAM are old-ish. Switching to BGAs and modern parts can often save you PCB space over those parts anyway, so you are not really gaining anything by sticking with the old technology and non-BGAs.
Disclaimer: I do know of some exceptions to what I claim above. Sometimes BGAs are just not an option.
Sharing the same address/data busses for several physical memories is not difficult, as is routing the signals. But you do have to pay attention to how your traces are laid out and terminated. You might also have to add layers to the PCB to make room for routing.