Virtual Memory: Atlas
In early computer systems peripheral transfers took place under direct
program control using input/output instructions which normally
required several milliseconds for their completion. By the time the
Atlas computer was developed, the disparity between processor and
peripheral speeds had become so great (of the order of 1000:1) that it
was essential that peripherals be operated on a time division basis,
with each peripheral interrupting the main program when it required
attention. Since the routines controlling these peripherals were
required to be resident in store concurrently with the main user
program, and since the system was extended to allow several user
programs to co-exist in store, it was no longer feasible either to
optimise programmed transfers between the core and drum stores (so as
to eliminate the drum access time of 6 ms) or even to allow users to
program transfers within a shared physical store when they had no
knowledge of other users' requirements. Consideration of these
problems led to the idea of providing users with a virtual
memory and to the development of a paging system to map virtual
addresses on to the real, physical storage devices. Thus the
integration of the Atlas core-drum combination into an apparently one-level store was a function of the machine itself, rather than a
software facility, as it had been on earlier machines such as Mark 1
and Mercury.