Professional Documents
Culture Documents
7XWRULDO)RU+DUGZDUH26
$SSOLFDWLRQ'HYHORSHUV
Whats In This Session?
l IA-64memory models, system software,
other architecture features relevant to
hardware, OS, and application
developers
IA-64 System Architecture Agenda
l System Architecture Highlights
l Virtual Memory Model
l Interruption Model
l System Software Stack
l Reliability, Availability, Serviceability
l Parallelism & Scalability
l Compatibility
l Summary
IA-64 System Architecture Goals
l Flexible Architecture
address space per process model
Windows NT, Unix, Mach, etc.
Global Address Space model
HP-UX plus future 64-bit OSes
l Performance focused Hardware
l Support shrink-wrap OS compatibility
l Scalable system performance
l IA-32 and PA-RISC Compatibility
IA-64 System Architecture Agenda
l System Architecture Highlights
l Virtual Memory Model
l Interruption Model
l System Software Stack
l Reliability, Availability, Serviceability
l Parallelism & Scalability
l Compatibility
l Summary / Call To Action
IA-64 Virtual Memory Model
l Process Address Space
l System Address Space Management
l Virtual Address Translation
TLB and Page table
l Flexible Object Sharing Model
Aliasing and Global addressing
64-bit Address Space:
Large and Sparse
l Requires increased TLB capacities
Mapped files, globally shared memory
Allow for multiple large on/off-chip TLBs
Provide wide range of page sizes
l Improveutilization and sharing of TLB and
page tables
No TLB flush on context switch
Promote TLB entry sharing
264 Flat
Virtual
Space:
64-bit Address
264 bytes
63 0
Process Address Space
64-bit Address
8 Regions/process
63 0
264 OS Kernel
DLLs
Data/Heap
0 Code/Text
System Address Space
64-bit Address
218 Regions
63 0
264
.
. .
. Pages
. .
0
IA-64 Region Registers
64-bit Address
63 61 60 0
218 Regions
####
#### .
#### .
. Pages
RID
261 bytes
in size
8 Region Registers
Processes and Threads
Process 2
Process 1
Process B T
L
Process A
B
Access Rights
TLB Organization
Instruction
l Separate instruction and
ITC
data TLBs
l Software Manages ITR
TR entries,
Page-table updates Data
64-bit Address
RRx Virtual Page # offset
63 61 60 0
RID
TLB
Physical Address
Protection: Can I See it? Can I Access it?
RRx Virtual Page # offset
TLB
64-bit Address
RRx Virtual Page # offset Virtual Hashed
63 61 60 0 Page Table
RID
(VHPT)
Search
Hash
l Interruption Model
l System Software Stack
l Reliability, Availability, Serviceability
l Parallelism & Scalability
l Compatibility
l Summary / Call To Action
IA-64 Interruption Model
l Parallel instruction execution, . . .
Exception delivery is sequential & precise
All exceptions reported on the excepting instruction
(including numeric exceptions)
Interruption
Current Processor State Registers
IP 0x1010
2 Processor saves
current state to
IIP 0x1010
PSR Processor IPSR interruption registers
. saves state . before interrupt handling
. .
. .
Interruption Handling
IA-64 Interruption Process Instruction X executed
127 in interrupt vector table
Application Code
0x1000
0x1000 INST
INSTAA
0x1010
0x1010 INST
INSTBB 32
0x1020 31
0x1020 INST
INSTCC 31
..
..
BANK0 REG
(OS data)
Interrupt Vector Table (IVT) Code 24 BANK1 REG
(app data)
IP 0x4000
0x4000 INST
INSTXX
0x4010
0x4010 INST
INSTYY 16
0x4020
0x4020 RFI
RFI 15 16
..
..
0
Interruption
Current Processor State Registers
IP 0x4000
IIP 0x1010
PSR IPSR
. .
. .
. .
Interruption Handling
IA-64 Interruption Process Instruction Y executed
in interrupt vector table
Application Code 127
0x1000
0x1000 INST
INSTAA
0x1010
0x1010 INST
INSTBB
0x1020
0x1020 INST
INSTCC 32
..
31
31
..
BANK0 REG
IVT Code (OS data) 24 BANK1 REG
(app data)
0x4000
0x4000 INST
INSTXX
IP 0x4010
0x4010 INST
INSTYY
0x4020
0x4020 RFI
RFI 16
.. 15 16
..
0
Interruption
Current Processor State Registers
IP 0x4010
IIP 0x1010
PSR IPSR
. .
. .
. .
Restoring Pre-
IA-64 Interruption Process Interruption State
Application Code 127
0x1000
0x1000 INST
INSTAA
1 Processor switches
IP 0x1010 back to Bank 1 registers
0x1010 INST
INSTBB
0x1020
0x1020 INST
INSTCC 32 31
..
..
Interruption
Current Processor State Registers 2 Processor restores
IP 0x4020 state from interruption
IIP 0x1010
PSR Processor IPSR registers before
. restores . returning from interrupt
. state .
. .
Resume Normal
IA-64 Interruption Process Instruction Execution:
127
Instruction B executed
Application Code
0x1000
0x1000 INST
INSTAA
IP 0x1010
0x1010 INST
INSTBB 32
0x1020
0x1020 INST
INSTCC 31
..
..
..
BANK1 REG BANK0 REG
(app data) 24 (OS Data)
IVT Code
0x4000
0x4000 INST
INSTXX
0x4010
0x4010 INST
INSTYY
0x4020 15 16
0x4020 RFI
RFI
..
.. 0
Interruption
Current Processor State Registers
IP 0x1010 IIP
PSR IPSR
.
.
.
Interruption Features
l Low interruption latency
Interruption delivery causes single pipeline break
Key state captured in on-chip registers
l State-save controlled by system software
Software makes performance/nesting trade-off
Shared mechanism for IA-64/IA-32 interruptions
l Efficient handler execution
Interruption vector table (IVT) contains code for
interrupt service routine
Operating os_write:
System
Kernel // perform system call
br.ret // demote PL and return
(privileged code)
to user
Bridge
I/O Bus
l Interruption Model
l System Software Stack
l Reliability, Availability, Serviceability
l Parallelism & Scalability
l Compatibility
l Summary / Call To Action
IA-64 System Software Stack: OS Boot
2SHUDWLQJ6\VWHP6RIWZDUH
OS boot
(),
(),
6\VWHP$EVWUDFWLRQ/D\HU6$/
IA-32 BIOS
Access to
platform
resources
3URFHVVRU$EVWUDFWLRQ/D\HU3$/
3URFHVVRUKDUGZDUH
3ODWIRUPKDUGZDUH
OS Running
2SHUDWLQJ6\VWHP6RIWZDUH
(),
(),
Instructions
3URFHVVRU$EVWUDFWLRQ/D\HU3$/
3URFHVVRUKDUGZDUH
External Interrupts
(performance critical)
3ODWIRUPKDUGZDUH
OS Calls To Firmware Services
2SHUDWLQJ6\VWHP6RIWZDUH
Run-Time
Services
(),
(),
6\VWHP$EVWUDFWLRQ/D\HU6$/
IA-32 BIOS
Access to
platform 3URFHVVRU$EVWUDFWLRQ/D\HU3$/
resources
3URFHVVRUKDUGZDUH
3ODWIRUPKDUGZDUH
Machine Check Handling
2SHUDWLQJ6\VWHP6RIWZDUH
Machine Check
Services
(),
(),
6\VWHP$EVWUDFWLRQ/D\HU6$/
IA-32 BIOS
Access to
platform 3URFHVVRU$EVWUDFWLRQ/D\HU3$/
resources
3URFHVVRUKDUGZDUH
3ODWIRUPKDUGZDUH
Architected RAS Features
Reliability
3 levels of error signaling:
Continuable, local, and global
Availability
Fine grained error containment by cooperation
between hardware and firmware
Serviceability
Extensive error logs for error analysis
Common error logs for firmware and OS
l Interruption Model
l System Software Stack
l Reliability, Availability, Serviceability
l Parallelism & Scalability
l Compatibility
l Summary / Call To Action
Parallelism and Scalability
l Excellent Multi-Processing Scalability
High performance relaxed ordering model
Flexible semaphore primitives
Hardware broadcast TLB purge
l OS Resource Scaling & Parallelism
Flexible # of PKRs, TRs, key & RID widths
Parallel update of control register writes
(explicitly serialized)
l Interruption Model
l System Software Stack
l Reliability, Availability, Serviceability
l Parallelism & Scalability
l Compatibility
l Summary / Call To Action
IA-64 System Architecture Summary
Performance:
Innovative architecture provides low overhead for major OS functions
Flexibility:
Accommodates current OS & features for OS extensibility & evolution
Scalability:
IA-64 platforms can run efficiently from UP to very large MP systems
Availablity:
High levels of reliability & availability through enhanced RAS features
Interoperability:
Well defined mechanisms & new firmware model ensures running of
shrink-wrapped OS on variety of platforms
Compatibility:
Provides efficient and transparent IA-32 compatibility at system level
Call to Action
l New detailed specifications available for download
OSVs & IHVs accelerate development of IA-64 system
applications (device drivers, system debug tools, etc...)
New Public IA-64 Docs
l IA-64 Software Developers Manual
Info for system & application software, & development tools for
IA-64
Software optimization techniques
Performance monitoring info for optimization support