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