The 940 adds modes of operation to support multiple users. The operating mode of previous models is renamed
normal mode. A new
monitor mode limits access to input/output and certain privileged instructions. A
user mode is used to run users' application programs. A set of memory map registers is used to map virtual addresses to physical. There are eight memory map registers, each mapping 2K words, to provide an address space of 16K. The instruction format for normal mode is the same as for the 930. Addressing differs between user mode and monitor mode. SDS 940 user mode instruction format: +-+-+-+------+-+---+---------+ |U|X|P|Opcode|I|Blk| Address | +-+-+-+------+-+---+---------+ bit 0 1 2 3 3 9 1 1 2 0 3 3 Bit 0 is ignored in user mode unless bit position 2 (P) indicates that this is a programmed operator. In this case a '1'b in bit position 0 indicates that this is a "system POP", or "SYSPOP", instead of a standard programmed operator. In user mode bit positions 10–12 "constitute a virtual memory block number", that is specify a memory map register, and bits 13–23 "specify a location within the virtual memory block." The contents of the memory map register are prepended to instruction bits 13–23 to form the effective address.
Memory map The 940 accesses memory through a memory map to provide
virtual memory. The map formats differ slightly between a
user memory map and a
monitor memory map. For programs running in user mode, the high-order three bits of the address field of an instruction serve as an index to an array of eight registers (R0–R7). Each register contains a 5-bit value (Rn) which is prepended to the low-order 11 bits of the instruction address field to form the 16-bit physical address. This divides virtual memory logically into eight
blocks of 2048 words each. The registers allow access to 16K words at any one time out of a possible 32K words of physical memory. A sixth bit (Pn) in each register indicates a read-only block of storage. Rn=0 and Pn=1 indicates an unassigned block, and any reference causes a
trap. The map registers can only be set in monitor mode. The memory map for monitor mode is similar. There are no P bits; the R0–R5 equivalents, called M0–M5, contain the read-only values 0–5, providing direct access to physical addresses 0–8K-1 (00000–177778). For addresses in the range 8K–12K-1 (20000–277778) memory extension register EM2 is used to form the physical address as it is in normal mode. For addresses 12K–16K-1 (30000–377778) the contents of memory map registers M6 and M7 are used to form the address. The monitor can use either the monitor memory map or the user memory map, determined by the value of bit 0 of the instruction. This allows the monitor access to the user's address space.
System programmed operators In user mode, programmed operators function the same as normal mode, accessing the user's virtual locations 100-1778. The 940 also includes a facility to execute
System Programmed operators (SYSPOPS), used to call monitor services. When a SYSPOP is encountered in user mode (instruction bits 0 and 2 are '1'b), the computer first enters monitor mode and then accesses the vector of instructions at ''the monitor's'' (physical) 100-1778. ==SDS 945==