Compaq Enterprise Technical Symposium 2001 OpenVMS on the Itanium TM Processor Family Clair Grant...

22
Compaq Enterprise Technical Symposium 2001 OpenVMS OpenVMS on the on the Itanium Itanium TM TM Processor Processor Family Family Clair Grant OpenVMS Engineering

Transcript of Compaq Enterprise Technical Symposium 2001 OpenVMS on the Itanium TM Processor Family Clair Grant...

Compaq Enterprise Technical Symposium 2001

OpenVMSOpenVMSon theon the

ItaniumItaniumTM TM Processor FamilyProcessor Family

OpenVMSOpenVMSon theon the

ItaniumItaniumTM TM Processor FamilyProcessor Family

Clair Grant

OpenVMS Engineering

Clair Grant

OpenVMS Engineering

2

The big challengesThe big challengesThe big challengesThe big challenges

No Alpha™ SRM Console No Alpha™ PALcode Different primitives in the CPU Compilers* Calling Standard (Intel-based) * Object Format (ELF) * Debug Symbol Tables (DWARF) *

* - to be covered in Session 1690 at 2:30

3

Selected topics of interestSelected topics of interestSelected topics of interestSelected topics of interest

Console Functions PALcode IPL / ASTs / Software Interrupts Memory Management Synchronization Techniques Context Switching

4

Console functionsConsole functionsConsole functionsConsole functions

Booting Special Run Time Services Power Management

5

Console: Booting on the EFI ConsoleConsole: Booting on the EFI ConsoleConsole: Booting on the EFI ConsoleConsole: Booting on the EFI Console

Intel Console: – Processor Abstraction Layer (PAL)

– System Abstraction Layer (SAL)

– Extensible Firmware Interface (EFI) Reads a FAT32 file partition to get OS loader We will overlay that partition on an ODS-2 disk There will be a new OS loader

6

Console: Special Run Time ServicesConsole: Special Run Time ServicesConsole: Special Run Time ServicesConsole: Special Run Time Services

Console Terminal I/O– OpenVMS will do it

Partitioning– Need “ownership of devices” info– Need “switch of ownership” capabilities– Soft partitions (Galaxy) will be very challenging

Crash Dump– Driver– File system knowledge– CPU Management

7

Console: Power ManagementConsole: Power ManagementConsole: Power ManagementConsole: Power Management

Advanced Configuration and Power Interface (ACPI) provides

– configuration data

– interface to control device availability Current OpenVMS RAS support

– ACPI provides a lot but not all we need

– Some additions to OpenVMS

– Some additions in an EFI application

8

It’s all in the softwareIt’s all in the softwareIt’s all in the softwareIt’s all in the software

OpenVMS*

Console

Application

IA-64

OpenVMS

Console

Application

VAX*HW

SWOpenVMS

Console

Application

Alpha

PALcode*

9

Privileged Architecture Library (PALcode)Privileged Architecture Library (PALcode)Privileged Architecture Library (PALcode)Privileged Architecture Library (PALcode)

PALcode execution environment– Complete control of machine state– Interrupts disabled– I-stream mapping disabled

10

PALcode FunctionsPALcode FunctionsPALcode FunctionsPALcode Functions

Instructions– Complex sequencing and atomic operation– VAX interlocked instructions– Privileged instructions

Translation buffer management Interrupt and exception dispatching Synchronization primitives

11

CALL_PAL ExamplesCALL_PAL ExamplesCALL_PAL ExamplesCALL_PAL Examples

CHMK * REI * SWPCTX CSERVE MFPR / MTPR * Atomic Queue Instructions *

* = VAX instruction

12

Remove from head of queue, interlockedRemove from head of queue, interlockedRemove from head of queue, interlockedRemove from head of queue, interlocked

VAX instruction REMQHI Alpha CALL_PAL REMQHIL IA-64 instruction EPC + MF + OpenVMS code

13

IPL / ASTs / Software InterruptsIPL / ASTs / Software InterruptsIPL / ASTs / Software InterruptsIPL / ASTs / Software Interrupts

0 - 31 IPLs (but we only define 13 of them… (2,3,4,5,6,7,8,9,10,11,15,21,22,31)

– Map 16-31 directly onto a 16-bit interrupt register

– Use another register for software levels 0-15 SETIPL / REI Alpha™ AST Summary Register Alpha™ Software Interrupt Summary Register

14

Memory managementMemory managementMemory managementMemory management

Page Size Page Protection Virtual Address Space PTE Format

15

Page sizePage sizePage sizePage size

Page size will be 8KB initially GH factors (huge pages) will be handled by the

VMS TLB miss handler Same GH factors as on Alpha 3 full levels of page tables

16

Page protectionPage protectionPage protectionPage protection

IA-64 access rights and privilege levels can do all common VAX and Alpha page protections except

– User Read, Exec Write (UREW) - considering using User Read, Super Write (URSW)

– User Read, Super Write (URSW) and Super Read, Exec Write (SREW) won't allow execute access. (Privileged code must change to write code, then set page read only.)

OpenVMS will allow ‘no execute’ pages.

17

Virtual address spaceVirtual address spaceVirtual address spaceVirtual address space

address space will be 8TB in size initially

32-bit System Page Table (SPT) window will still be created in S1 space for 32-bit device driver code

Each IA-64 region will have its own page table space

P0, P1, S0, S1 will be 32-bit; P2 and S2 will be 64-bit

6

7

5

4

3

2

1

0

S0, S1, S2

P0, P1, P2

18

PTE FormatPTE FormatPTE FormatPTE Format

Since OpenVMS will implement the TLB miss handler it can retain its current PTE formats.

The Address Space Match (ASM) bit will not be set for system space. ASM will be a function of the virtual address, not a PTE bit. All addresses in IA-64 region 7 will essentially have ASM set.

Other than protection and ASM, all PTE bits will be the same as on Alpha

19

Synchronization techniquesSynchronization techniquesSynchronization techniquesSynchronization techniques

Requirement: to read/write a shared location in a single atomic operation

Example OpenVMS Uses:– Spinlock– MUTEX– Semaphore– Queue instructions

Alpha: CALL_PAL, LDL/STC and MB IA-64: FETCHADDx, CMPXCHGx, XCHGx, EPC, and MF

20

Context switchingContext switchingContext switchingContext switching

Probably a little worse:– More registers to save

– More context to save on full interruption

Probably a little better:– No “interruption” for software interrupt

– Fewer full interruptions

21

Portable OpenVMSPortable OpenVMSPortable OpenVMSPortable OpenVMS

1978 VAX 1992 Alpha™ 2003 IA-64 20?? ?