Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
VAX-11/780 A VIRTUAL ADDRESS EXTENSION TO THE DEC PDP-11 FAMILY W.D.STRECKER Motivation -Limited virtual address space Features -extension of virtual address from 16 bits to 32 bits. -with 8 bit byte the basic addressable unit, the extension provides a virtual address space of 4.3GB. One of the main goals of VAX-11 was maximum PDP-11 compatibility. -VAX-11 includes two modes -compatibility mode. -provides basic PDP-11 instruction set less only privileged instructions and floating point instructions. -native mode -native mode data types and formats are identical to PDP-11. As a consequence VAX-11 native mode assembly language programming is similar to PDP-11. -VAX-11/780 uses the same peripheral buses (Unibus and Massbus) and the same peripherals. -The VAX/VMS file system is same as used in RSX-11M/IAS operating systems permitting interchange of files and volumes. -VAX-11 high level language compilers accept the same source languages as equivalent PDP-11 compilers and the execution of compiled programs gives the same result. VAX-11 NATIVE ARCHITECTURE Processor state -VAX-11 is organized around a general register processor state. This organization was favored because access to operands stored in general registers is fast and because only small number of bits in an instruction are used to designate a register. -Registers are used with large set of addressing modes which permit flexible operand addressing methods. -VAX-11 has 16 32 bit general registers which are used for both fixed and floating point operands. (PDP-11 has 8 16 bit general registers and 6 64 bit floating point registers). Merged set of fixed and floating point registers were favored as it simplified programming. Four registers in VAX-11 architecture are assigned special meaning. They are Program counter (R15) – contains address of next byte to be interpreted in instruction stream. Stack pointer(R14) – contains the address of the top of the processor defined stack used for procedure and interrupt linkage. Frame pointer(R13) – The VAX-11 procedure calling convention builds a data structure on stack called stack frame. FP contains the address of this structure. Argument pointer(R12) – The VAX – 11 procedure calling convention uses a data structure called argument list. AP contains the address of this structure. DATA TYPES AND FORMATS -Integer data type -8 bit byte, 16 bit word,32 longword, 32 bit quadword. -Floating data type -32 bit floating(7), 64 bit floating(16). -Variable bit field data type - 0 to 32 bits located arbitrarily with respect to addressable byte boundaries. - Character string data type -0 to 65535 contiguous bytes. Specified by two operands i.e the length and starting address of the string. -Decimal string data type -0 to 31 digits. Specified by two operands i.e length and starting address. -the Primary data type is packed decimal which contains two digits in each byte and byte containing least significant digit has single digit. An instruction consists of one or two byte opcode followed by specifications of operands. An operand specification is one to 10 bytes in length and consists of one or two byte operand specifier followed by specifier extension. Address modes : Register mode -designated register contains the operand. Register deferred mode -designated register contains the address of the operand. Autoincrement mode -contents of the designated register is used as the address of the operand and is incremented by the size of the operand. (PC - immediate mode) Autoincrement deferred mode -contents of the designated register are used as the address of longword in memory which contains the address of the operand. (PC-absolute mode) Displacement mode -displacement is added to the contents of the designated register to form the operand address. (PC- relative mode) Displacement deferred mode -displacement is added to the designated register to form the address of longword containing the operand address. (PC – relative deferred mode) Literal mode -operand specifier itself contains a 6-bit literal which is the operand. Index mode - not really a mode but a prefix operator for any other mode which evaluates the address. -the index mode prefix is cascaded with the operand specifier for that mode to form an aggregate two byte operand specifier. -the base operand specifier is used to evaluate a base address. A copy of the contents of the register designated in the index prefix is multiplied by the size of the operand and added to the base address to give the final operand address. 176 10 MOVW opcode 5 56 12 Displacement 6 270 Byte register mode(R5) Word displacement mode(R6) Displacement MOVW 56(R5), 270(R7) Instruction set o Integer logic and arithmetic -along with conventional arithmetic and logical instructions a number of optimizations are included like clear, test, increment, decrement. Extended multiply and divide and add with carry and subtract with carry were provided to support longword precision integer operations. Floating point instructions -along with conventional several specialized floating point instructions were included like extended modulus instruction which multiplies two floating point operands and stores the integer and fraction parts of the product in separate result operands. Address instructions -move address instruction stores in the result operand the effective address of the source operand. -push address optimizations push on the stack the effective address of the source operand. Field instruction -the extract field instruction extracts 0-32 bit field, sign or zero extended if it is less than 32 bits, and store the result in longword operand. -compare field instructions compare a field against a longword operand. Control instructions -There is a complete set of conditional branches supporting both signed and unsigned interpretation of various data types. These branches test the condition codes and take one byte PC relative branch displacement. -There are three conditional branch instructions -first taking one byte PC relative displacement. -second taking a word PC relative displacement. -third called jump taking a general operand specification. -There are a set of branch instructions which branch on the state of single bit and, depending on the instruction set, clear or leave unchanged that bit. Queue instructions -represented by doubly linked circular list. -instructions are provided to insert an item into a queue or to remove an item from the queue. Character string instructions -general move character instruction takes five operands specifying lengths and starting address of the source and destination strings. -an optimized move character instruction assumes the string length are equal and takes three operands. Packed decimal instructions -A conventional set of arithmetic instructions is provided. -The arithmetic shift and round instruction provides decimal point scaling and rounding. MEMORY MAPPING -The 4.3GB virtual address space is divided into four regions. -The first two regions-the program and control regions comprise the per process virtual address space which is uniquely mapped for each process. -The second two regions-the system region and a region reserved for future use-comprise the system virtual address space which is singly mapped for all processes. -The program region contains user programs and data. -The control region contains operating system data structures specific to the process. -The system region contains procedures which are common to all processes. 1GB 2GB 3GB 4GB PROGRAM REGION CONTROL REGION SYSTEM REGION RESERVED FOR FUTURE EXPANSION VIRTUAL ADDRESS SPACE VIRTUAL ADDRESS 313029 9 8 0 -------------------------------------VIRTUAL PAGE NUMBER-----------------------------------------------------BYTE WITHIN PAGE------- PHYSICAL ADDRESS 31 30 29 9 8 0 ------------------------------------PAGE FRAME NUMBER---------------------------------------------------------BYTE WITHIN PAGE--------- ACCESS CONTROL At a given point in time a process is in any of the four access modes. Kernel -Interrupt and exception handling, scheduling, paging, physical I/O, etc. Executive -Logical I/O as provided by RMS. Supervisor -The command interpreter. User -User procedures and data. Interrupts and Exceptions -VAX-11 provides a 31 priority level interrupt system. -16 levels(16-31) are provided for hardware. -15 levels(1-15) are provided for software. -current interrupt priority level (IPL) is stored in PSL. -interrupts are serviced by routines executing with kernel mode access control. Process context switching -The process context is gathered together in a data structure called a Process Control Block (PCB). -while the process is executing, the process context resides in processor registers. when switching from one process to another the process context from the previously executing process is saved in its PCB in memory and the process context for the process to be executed is loaded from it’s PCB in memory. VAX-11/780 IMPLEMENTATION -The vax-11/780 system is the first implementation of the VAX-11 architecture. When executed in compatibility mode vax-11/780 has a performance comparable to PDP-11/70. -The VAX-11/780 system consists of CPU -CPU implements the native and compatibility mode instructions sets, the memory management, and the interrupt and exception mechanisms. -CPU includes an 8KB byte write through cache or buffer memory (reduces the effective memory access time). -To reduce delays CPU includes a write buffer. The CPU issues write to buffer and the actual memory write takes place in parallel with other CPU activity. -Contains 128 entry address translation buffer which is cache of recent virtual to physical translations. The buffer is divided into two 64 entry sections: one for per process region and other for system region. -Fourth buffer of CPU is 8-byte instruction buffer. It serves for two purposes. First, it decomposes the highly variable instruction format into its basic components and second it also fetches ahead to reduce delays in obtaining instruction components. -There is a writable diagnostic control store (WDCS) which is used for diagnostic purposes, implementation of certain instructions and for future micro code changes. SBI (Synchronous Backplane Interconnect) -The SBI is the primary control and data transfer path in the VAX-11/780 system. -SBI is a synchronous bus with a cycle time of 200 nsec cycle. -The data path width of the SBI is 32 bits. i.e during each 200 nsec cycle either 32 bits of data or a 30 bit physical address is transferred. -Arbitration of SBI is distributed :each interface to the SBI has a specific priority and its own bus request line. when interface wishes to use the bus, it asserts its bus request line. If at the end of 200 nsec cycle there are no interfaces of higher priority requesting the bus, the interface takes control of the bus. Memory subsystem -The memory subsystem consists of one or two memory controllers with up to 1 MB of memory on each. The memory is organized in 64 bit quadwords with an 8-bit ECC which provides single bit error correction and double bit error detection. -The memory controllers have buffers which hold up to four memory requests. These buffers substantially increase the utilization of the SBI and memory by permitting the pipelining of multiple memory requests. I/O subsystem -The I/O subsystem consists of buffered interfaces or adapters between the SBI and the two types of peripheral buses: Unibus and Massbus. -The Unibus is a medium speed multiplexor bus which is used as primary memory as well as peripheral bus . -Unibus has an 18-bit physical address space and supports byte and word transfers. -The Massbus is a high speed block transfer bus used primarily for disks and tapes. VAX-11/780 Thank You