What is Side Ways RAM/ROM and Paged ROM?

[23rd April 2014]

For the moment let's forget about RAM or ROM, but concentrate on the sideways
and paged part of the subject - because it's essentially the same thing.
It's more commonly known as memory paging and involves swapping RAM
or ROM chips into and out of a computers memory map.

A computers memory map is all of the RAM and ROM that a computer can see
in one go and is limited based upon the architecture of its processor. Generally
speaking, the more modern the processor the more RAM and ROM that it can "see"
at once.

Here's a small list of processors and the maximum combination of RAM &
ROM that they can see:

Processor

Maximum memory

Example computer

Rockwell 6502

64KB

BBC Micro, Commodore 64

Intel 8088

64KB

Motorola 68000

16MB

Commodore Amiga, Atari ST

Intel 80486DX2

4GB

486DX2 base PC

AMD Athlon 64 3GHz

4 PB (petabytes, i.e. 4000 terrabytes)

AMD based PC

Ok, so how does this fit with memory paging? Well, what happens if you want
your computer to "see" more memory than its maximum? Well, you can
swap bits of physical memory (RAM or ROM) in and out of the map and many computers
have used this to good effect. These include the BBC Micro and the Intel '386.

Here's a good visual way of looking at this from a BBC Micro perspective:

The BBC model B+ has 64KB of memory space that it can see. Apart from some
I/O addresses at the top of the memory map, this is normally divided up into
32KB of RAM from 0 to &7FFF (the & means a hexadecimal number), 16KB
of paging area and 16KB of ROM (give or take) for a grand total of 64KB.
Now, to see more than 64KB, the OS (operating system) pages 16KB modules of
RAM or ROM into the paging area. When this happens, the processor can access
that memory module. It can then page that module out (losing access to that
module) in favour of another. All of these paging modules are still all powered
and, in the case f RAM memory modules, do not lose information. This (crude!)
diagram may help: