BBN Pager

From Computer History Wiki
Revision as of 14:38, 6 January 2024 by Jnc (talk | contribs) (Multi-processor support, associative register re-use algorithm, core status table)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
BBN Pager

The BBN Pager was an add-on device for the KA10 Central Processing Unit to provide virtual memory capability, designed and built by BBN (much as the MIT AI Lab added hardware to their KA10 for the same purpose). DEC had provided only basic memory management capabilities on the KA10 - a pair of base and bounds registers, one for each half of the address space.

It was used to support the TENEX operating system - although one was also added to the KA10 at SAIL, which ran WAITS. Quite a few were built for other organizations which had KA10's, to allow them to run TENEX.

The BBN Pager supported splitting the address space into 512 pages, each 512 words long; 'user' and 'executive' modes on the KA10 had separate page tables. It also provided for multi-processor systems (which were possible on PDP-10's with the 'external' PDP-10 Memory Bus); although multi-processor KI10-based TENEX systems were eventually done, it is not known whether any multi-processor KA10 systems with the BBN Pager were ever produced.

Technical Details

The Pager was a separate unit inserted into the PDP-10 Memory Bus between the CPU and the system's memories. It also required minor changes to the KA10; both to provide signals required for the operation of the Pager (which were carried to the Pager by two separate cables), and also to make changes to the CPU required by the operating system (such as extra, specialized, instructions).

The pager contained a cache of page table translation entries held in 'associative registers'; they were used in a simple 'round robin' scheme, no complex LRU system was used. The basic complement was 16 associative registers, but it would operate with as few as 1, or it could be expanded to up to 54 associative registers.

In addition to a complex multi-level mapping scheme (intended to allow easy sharing of pages between multiple processes), which included a 'copy on write' mechanism, it also had a "core status table", which recorded "a time-stamp of the last reference, and .. an identification of the processes that had referenced the page".

External links