US20020129212A1 - Virtualized NVRAM access methods to provide NVRAM chrp regions for logical partitions through hypervisor system calls - Google Patents

Virtualized NVRAM access methods to provide NVRAM chrp regions for logical partitions through hypervisor system calls Download PDF

Info

Publication number
US20020129212A1
US20020129212A1 US09/798,292 US79829201A US2002129212A1 US 20020129212 A1 US20020129212 A1 US 20020129212A1 US 79829201 A US79829201 A US 79829201A US 2002129212 A1 US2002129212 A1 US 2002129212A1
Authority
US
United States
Prior art keywords
access
recited
shared device
virtual address
requesting device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/798,292
Other versions
US6567897B2 (en
Inventor
Van Lee
Kanisha Patel
David Willoughby
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US09/798,292 priority Critical patent/US6567897B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PATEL, KANISHA, WILLOUGHBY, DAVID R., LEE, VAN HOA
Publication of US20020129212A1 publication Critical patent/US20020129212A1/en
Application granted granted Critical
Publication of US6567897B2 publication Critical patent/US6567897B2/en
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism

Definitions

  • the present invention relates generally to an improved data processing system and, more particularly, to an improved logically partitioned data processing system. Still more particularly, the present invention relates to an improved non-volatile random access memory access for logically partitioned data processing systems.
  • a logical partitioning (LPAR) functionality within a data processing system allows multiple copies of a single operating system (OS) or multiple heterogeneous operating systems to be simultaneously run on a single data processing system platform.
  • a partition, within which an operating system image runs, is assigned a non-overlapping sub-set of the platform's resources.
  • These platform allocable resources include one or more architecturally distinct processors with their interrupt management area, regions of system memory, and I/O adapter bus slots.
  • the partition's resources are represented by the platform's firmware to the OS image.
  • Each distinct OS or image of an OS running within the platform are protected from each other such that software errors on one logical partition cannot affect the correct operation of any of the other partitions. This is provided by allocating a disjoint set of platform resources to be directly managed by each OS image and by providing mechanisms for ensuring that the various images cannot control any resources that have not been allocated to it. Furthermore, software errors in the control of an OS's allocated resources are prevented from affecting the resources of any other image. Thus, each image of the OS (or each different OS) directly controls a distinct set of allocable resources within the platform.
  • a firmware portion of the data processing system receives a request from a requesting device, such as a processor assigned to one of a plurality of partitions within the data processing system, to access (i.e., read from or write to) a portion of the shared device, such as an NVRAM.
  • the request includes a virtual address corresponding to the portion of the shared device for which access is desired. If the virtual address is within a range of addresses for which the requesting device is authorized to access, the firmware provides access to the requested portion of the shared device to the requesting device. If the virtual address is not within a range of addresses for which the requesting device is authorized to access, the firmware denies the request.
  • FIG. 1 depicts a block diagram of a data processing system in which the present invention may be implemented
  • FIG. 2 depicts a block diagram of an exemplary logically partitioned platform in which the present invention may be implemented.
  • FIG. 3 depicts a flowchart illustrating an exemplary method for enforcing logical partitioning within a non-volatile random access memory in accordance with the present invention.
  • Data processing system 100 may be a symmetric multiprocessor (SMP) system including a plurality of processors 101 , 102 , 103 , and 104 connected to system bus 106 .
  • SMP symmetric multiprocessor
  • data processing system 100 may be an IBM RS/6000, a product of International Business Machines Corporation in Armonk, N.Y., implemented as a server within a network.
  • a single processor system may be employed.
  • memory controller/cache 108 Also connected to system bus 106 is memory controller/cache 108 , which provides an interface to a plurality of local memories 160 - 163 .
  • I/O bus bridge 110 is connected to system bus 106 and provides an interface to I/O bus 112 . Memory controller/cache 108 and I/O bus bridge 110 may be integrated as depicted.
  • Data processing system 100 is a logically partitioned data processing system.
  • data processing system 100 may have multiple heterogeneous operating systems (or multiple instances of a single operating system) running simultaneously. Each of these multiple operating systems may have any number of software programs executing within in it.
  • Data processing system 100 is logically partitioned such that different I/O adapters 120 - 121 , 128 - 129 , 136 , and 148 - 149 may be assigned to different logical partitions.
  • NVRAM 192 may be partitioned such that each partition may access and utilize only certain portions of NVRAM 192 .
  • processor 101 , memory 160 , and I/O adapters 120 , 128 , and 129 may be assigned to logical partition P 1 ; processors 102 - 103 , memory 161 , and I/O adapters 121 and 136 may be assigned to partition P 2 ; and processor 104 , memories 162 - 163 , and I/O adapters 148 - 149 may be assigned to logical partition P 3 .
  • Each operating system executing within data processing system 100 is assigned to a different logical partition. Thus, each operating system executing within data processing system 100 may access only those I/O units that are within its logical partition. Thus, for example, one instance of the Advanced Interactive Executive (AIX) operating system may be executing within partition P 1 , a second instance (image) of the AIX operating system may be executing within partition P 2 , and a Windows 2000 operating system may be operating within logical partition P 1 .
  • AIX Advanced Interactive Executive
  • a Windows 2000 operating system may be operating within logical partition P 1 .
  • Windows 2000 is a product and trademark of Microsoft Corporation of Redmond, Wash.
  • Peripheral component interconnect (PCI) Host bridge 114 connected to I/O bus 112 provides an interface to PCI local bus 115 .
  • a number of Input/Output adapters 120 - 121 may be connected to PCI bus 115 .
  • Typical PCI bus implementations will support between four and eight I/O adapters (i.e. expansion slots for add-in connectors).
  • Each I/O Adapter 120 - 121 provides an interface between data processing system 100 and input/output devices such as, for example, other network computers, which are clients to data processing system 100 .
  • An additional PCI host bridge 122 provide an interface for an additional PCI bus 123 .
  • PCI bus 123 is connected to a plurality of PCI I/O adapters 128 - 129 by a PCI bus 126 - 127 .
  • additional I/O devices such as, for example, modems or network adapters may be supported through each of PCI I/O adapters 128 - 129 . In this manner, data processing system 100 allows connections to multiple network computers.
  • a memory mapped graphics adapter 148 may be connected to I/O bus 112 through PCI Host Bridge 140 and EADS 142 (PCI-PCI bridge) via PCI buses 141 and 144 as depicted. Also, a hard disk 150 may also be connected to I/O bus 112 through PCI Host Bridge 140 and EADS 142 via PCI buses 141 and 145 as depicted.
  • a PCI host bridge 130 provides an interface for a PCI bus 131 to connect to I/O bus 112 .
  • PCI bus 131 connects PCI host bridge 130 to the service processor mailbox interface and ISA bus access pass-through logic 194 and EADS 132 .
  • the ISA bus access pass-through logic 194 forwards PCI accesses destined to the PCI/ISA bridge 193 .
  • the NV-RAM storage is connected to the ISA bus 196 .
  • the Service processor 135 is coupled to the service processor mailbox interface 194 through its local PCI bus 195 .
  • Service processor 135 is also connected to processors 101 - 104 via a plurality of JTAG/I 2 C buses 134 .
  • JTAG/I 2 C buses 134 are a combination of JTAG/scan busses (see IEEE 1149.1) and Phillips I 2 C busses. However, alternatively, JTAG/I 2 C buses 134 may be replaced by only Phillips I 2 C busses or only JTAG/scan busses. All SP-ATTN signals of the host processors 101 , 102 , 103 , and 104 are connected together to an interrupt input signal of the service processor.
  • the service processor 135 has its own local memory 191 , and has access to the hardware op-panel 190 .
  • service processor 135 uses the JTAG/scan buses 134 to interrogate the system (Host) processors 101 - 104 , memory controller 108 , and I/O bridge 110 .
  • service processor 135 has an inventory and topology understanding of data processing system 100 .
  • Service processor 135 also executes Built-In-Self-Tests (BISTs), Basic Assurance Tests (BATs), and memory tests on all elements found by interrogating the system processors 101 - 104 , memory controller 108 , and I/O bridge 110 . Any error information for failures detected during the BISTs, BATs, and memory tests are gathered and reported by service processor 135 .
  • BISTs Built-In-Self-Tests
  • BATs Basic Assurance Tests
  • data processing system 100 is allowed to proceed to load executable code into local (Host) memories 160 - 163 .
  • Service processor 135 then releases the Host processors 101 - 104 for execution of the code loaded into Host memory 160 - 163 . While the Host processors 101 - 104 are executing code from respective operating systems within the data processing system 100 , service processor 135 enters a mode of monitoring and reporting errors.
  • the type of items monitored by service processor include, for example, the cooling fan speed and operation, thermal sensors, power supply regulators, and recoverable and non-recoverable errors reported by processors 101 - 104 , memories 160 - 163 , and bus-bridge controller 110 .
  • Service processor 135 is responsible for saving and reporting error information related to all the monitored items in data processing system 100 .
  • Service processor 135 also takes action based on the type of errors and defined thresholds. For example, service processor 135 may take note of excessive recoverable errors on a processor's cache memory and decide that this is predictive of a hard failure. Based on this determination, service processor 135 may mark that resource for deconfiguration during the current running session and future Initial Program Loads (IPLs). IPLs are also sometimes referred to as a “boot” or “bootstrap”.
  • IPLs are also sometimes referred to as a “boot” or “bootstrap”.
  • FIG. 1 may vary.
  • other peripheral devices such as optical disk drives and the like, also may be used in addition to or in place of the hardware depicted.
  • the depicted example is not meant to imply architectural limitations with respect to the present invention.
  • FIG. 2 a block diagram of an exemplary logically partitioned platform is depicted in which the present invention may be implemented.
  • the hardware in logically partitioned platform 200 may be implemented as, for example, server 100 in FIG. 1.
  • Logically partitioned platform 200 includes partitioned hardware 230 , Open Firmware (OF) 210 , and operating systems 202 - 208 .
  • OF 210 is sometimes referred to as a hypervisor in some International Business Machine implementations.
  • Operating systems 202 - 208 may be multiple copies of a single operating system or multiple heterogeneous operating systems simultaneously run on platform 200 .
  • Partitioned hardware 230 includes a plurality of processors 232 - 238 , a plurality of system memory units 240 - 246 , a plurality of input/output (I/O) adapters 248 - 262 , and a storage unit 270 .
  • processors 242 - 248 , memory units 240 - 246 , and I/O adapters 248 - 262 may be assigned to one of multiple partitions within logically partitioned platform 200 , each of which corresponds to one of operating systems 202 - 208 .
  • OF 210 performs a number of functions and services for operating system images 202 - 208 to create and enforce the partitioning of logically partitioned platform 200 .
  • Firmware is “software” stored in a memory chip that holds its content without electrical power, such as, for example, read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), and non-volatile random access memory (non-volatile RAM).
  • OF 210 is a firmware implemented virtual machine identical to the underlying hardware. Thus, OF 210 allows the simultaneous execution of independent OS images 202 - 208 by virtualizing all the hardware resources of logically partitioned platform 200 . OF 210 may attach I/O devices through I/O adapters 248 - 262 to single virtual machines in an exclusive mode for use by one of OS images 202 - 208 .
  • CHRP Common Hardware Reference Platform
  • the CHRP architecture requires the system platform to provide a portiton of NVRAM storage for the OS running on the system.
  • the OS's NVRAM storage is said to be the CHRP NVRAM region. Since there is no hardware protection to detect unwanted accesses from one partition to another partition's NVRAM CHRP region, all accesses are performed through OF 210 system calls. OF 210 therefore provides a virtualized NVRAM CHRP region for all partitions. However, a partition with service authority may gain access to other NVRAM regions in addition to its own NVRAM CHRP region.
  • a normal partition has a virtualized NVRAM address range from zero to (chrp_size ⁇ 1) with the CHRP region of chrp size bytes.
  • the service authorized partition will have a virtualized NVRAM address range from zero to (chrp_size+auth_size ⁇ 1) where chrp_size is CHRP region size in bytes and auth_size is Service Authority region size in bytes.
  • Any partition can issue NVRAM read/write accesses in its virtual address range. Accessing violating protection is enforced by OF 210 and any partition request for access to a virtual range outside the range allocated to the partition will be rejected by OF 210 . For good accesses, the virtual NVRAM addresses are converted into real NVRAM addresses to read or write from or to the NVRAM 298 .
  • OF 210 maintains a chip_base_address of each partition's CHRP region in NVRAM partition table 211 .
  • OF 210 uses the partition ID of the calling processor 234 - 238 to select the proper chrp_base_address of the partition's CHRP region. Therefore, for a normal partition, the actual physical NVRAM address (real_nvram_address) is given by the following equation:
  • the NVRAM CHRP region and the service authority region may not be physically contiguous regions within NVRAM 298 . If the virtual_nvram_address is greater than zero but less than the service_autho_partition_size, then the real_nvram_address is equal to the service_autho_base_address plus the virtual_nvram_address.
  • the service_autho_partition_size is less than or equal to the virtual_nvram_address and if the virtual_nvram_address is less than the chrp_size plus the service_autho_partition_size then the real_nvram_address is equal to (virtual_nvram_address ⁇ service_autho_partition_size+partition_chrp_base_address).
  • the service authority region is mapped before the partition's CHRP region. This allows the CHRP region to grow as needed.
  • FIG. 3 a flowchart illustrating an exemplary method for enforcing logical partitioning within a non-volatile random access memory is depicted in accordance with the present invention.
  • the present method may be implemented by, for example, OF 210 in FIG. 2.
  • the OF receives a request to access the NVRAM from a processor within the data processing system (step 302 ).
  • This request may be a request to read from a section of the NVRAM or a request to write to a section of the NVRAM and includes the virtual address or addresses of the portions of the NVRAM for which the processor desires access.
  • the OF determines the partition Identification (ID) of the calling processor (step 304 ) and whether the requested virtual address or addresses are within the range of virtual addresses assigned to the partition to which the requesting processor belongs (step 306 ). If the virtual addresses are not within the range of virtual addresses assigned to the partition to which the processor belongs, then access to the requested portions of the NVRAM is denied (step 308 ). If, however, the requested virtual address or addresses are within the range of virtual addresses assigned to the partition to which the requesting processor belongs, then the virtual address or addresses is converted into a NVRAM physical address (step 310 ). The OF then performs the requested action (step 312 ) of either reading from or writing to the requested portions of the NVRAM.
  • ID partition Identification

Abstract

A method, system, and computer program product for enforcing logical partitioning of a shared device to which multiple partitions within a data processing system have access is provided. In one embodiment, a firmware portion of the data processing system receives a request from a requesting device, such as a processor assigned to one of a plurality of partitions within the data processing system, to access (i.e., read from or write to) a portion of the shared device, such as an NVRAM. The request includes a virtual address corresponding to the portion of the shared device for which access is desired. If the virtual address is within a range of addresses for which the requesting device is authorized to access, the firmware provides access to the requested portion of the shared device to the requesting device. If the virtual address is not within a range of addresses for which the requesting device is authorized to access, the firmware denies the request.

Description

    BACKGROUND OF THE INVENTION
  • 1. Technical Field: [0001]
  • The present invention relates generally to an improved data processing system and, more particularly, to an improved logically partitioned data processing system. Still more particularly, the present invention relates to an improved non-volatile random access memory access for logically partitioned data processing systems. [0002]
  • 2. Description of Related Art: [0003]
  • A logical partitioning (LPAR) functionality within a data processing system (platform) allows multiple copies of a single operating system (OS) or multiple heterogeneous operating systems to be simultaneously run on a single data processing system platform. A partition, within which an operating system image runs, is assigned a non-overlapping sub-set of the platform's resources. These platform allocable resources include one or more architecturally distinct processors with their interrupt management area, regions of system memory, and I/O adapter bus slots. The partition's resources are represented by the platform's firmware to the OS image. [0004]
  • Each distinct OS or image of an OS running within the platform are protected from each other such that software errors on one logical partition cannot affect the correct operation of any of the other partitions. This is provided by allocating a disjoint set of platform resources to be directly managed by each OS image and by providing mechanisms for ensuring that the various images cannot control any resources that have not been allocated to it. Furthermore, software errors in the control of an OS's allocated resources are prevented from affecting the resources of any other image. Thus, each image of the OS (or each different OS) directly controls a distinct set of allocable resources within the platform. [0005]
  • Currently, some resources existing singly within the data processing system are shared by more than one partition. It would be desirable to have a mechanism by which these single resources may be logically partitioned and have the logical partitioning strictly enforced. [0006]
  • SUMMARY OF THE INVENTION
  • The present invention provides a method, system, and computer program product for enforcing logical partitioning of a shared device to which multiple partitions within a data processing system have access. In one embodiment, a firmware portion of the data processing system receives a request from a requesting device, such as a processor assigned to one of a plurality of partitions within the data processing system, to access (i.e., read from or write to) a portion of the shared device, such as an NVRAM. The request includes a virtual address corresponding to the portion of the shared device for which access is desired. If the virtual address is within a range of addresses for which the requesting device is authorized to access, the firmware provides access to the requested portion of the shared device to the requesting device. If the virtual address is not within a range of addresses for which the requesting device is authorized to access, the firmware denies the request. [0007]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein: [0008]
  • FIG. 1 depicts a block diagram of a data processing system in which the present invention may be implemented; [0009]
  • FIG. 2 depicts a block diagram of an exemplary logically partitioned platform in which the present invention may be implemented; and [0010]
  • FIG. 3 depicts a flowchart illustrating an exemplary method for enforcing logical partitioning within a non-volatile random access memory in accordance with the present invention. [0011]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • With reference now to the figures, and in particular with reference to FIG. 1, a block diagram of a data processing system in which the present invention may be implemented is depicted. [0012] Data processing system 100 may be a symmetric multiprocessor (SMP) system including a plurality of processors 101, 102, 103, and 104 connected to system bus 106. For example, data processing system 100 may be an IBM RS/6000, a product of International Business Machines Corporation in Armonk, N.Y., implemented as a server within a network. Alternatively, a single processor system may be employed. Also connected to system bus 106 is memory controller/cache 108, which provides an interface to a plurality of local memories 160-163. I/O bus bridge 110 is connected to system bus 106 and provides an interface to I/O bus 112. Memory controller/cache 108 and I/O bus bridge 110 may be integrated as depicted.
  • [0013] Data processing system 100 is a logically partitioned data processing system. Thus, data processing system 100 may have multiple heterogeneous operating systems (or multiple instances of a single operating system) running simultaneously. Each of these multiple operating systems may have any number of software programs executing within in it. Data processing system 100 is logically partitioned such that different I/O adapters 120-121, 128-129, 136, and 148-149 may be assigned to different logical partitions. Furthermore, NVRAM 192 may be partitioned such that each partition may access and utilize only certain portions of NVRAM 192.
  • Thus, for example, suppose [0014] data processing system 100 is divided into three logical partitions, P1, P2, and P3. Each of I/O adapters 120-121, 128-129, 136, and 148-149, each of processors 101-104, and each of local memories 160-164 is assigned to one of the three partitions. For example, processor 101, memory 160, and I/ O adapters 120, 128, and 129 may be assigned to logical partition P1; processors 102-103, memory 161, and I/ O adapters 121 and 136 may be assigned to partition P2; and processor 104, memories 162-163, and I/O adapters 148-149 may be assigned to logical partition P3.
  • Each operating system executing within [0015] data processing system 100 is assigned to a different logical partition. Thus, each operating system executing within data processing system 100 may access only those I/O units that are within its logical partition. Thus, for example, one instance of the Advanced Interactive Executive (AIX) operating system may be executing within partition P1, a second instance (image) of the AIX operating system may be executing within partition P2, and a Windows 2000 operating system may be operating within logical partition P1. Windows 2000 is a product and trademark of Microsoft Corporation of Redmond, Wash.
  • Peripheral component interconnect (PCI) [0016] Host bridge 114 connected to I/O bus 112 provides an interface to PCI local bus 115. A number of Input/Output adapters 120-121 may be connected to PCI bus 115. Typical PCI bus implementations will support between four and eight I/O adapters (i.e. expansion slots for add-in connectors). Each I/O Adapter 120-121 provides an interface between data processing system 100 and input/output devices such as, for example, other network computers, which are clients to data processing system 100.
  • An additional [0017] PCI host bridge 122 provide an interface for an additional PCI bus 123. PCI bus 123 is connected to a plurality of PCI I/O adapters 128-129 by a PCI bus 126-127. Thus, additional I/O devices, such as, for example, modems or network adapters may be supported through each of PCI I/O adapters 128-129. In this manner, data processing system 100 allows connections to multiple network computers.
  • A memory mapped [0018] graphics adapter 148 may be connected to I/O bus 112 through PCI Host Bridge 140 and EADS 142 (PCI-PCI bridge) via PCI buses 141 and 144 as depicted. Also, a hard disk 150 may also be connected to I/O bus 112 through PCI Host Bridge 140 and EADS 142 via PCI buses 141 and 145 as depicted.
  • A [0019] PCI host bridge 130 provides an interface for a PCI bus 131 to connect to I/O bus 112. PCI bus 131 connects PCI host bridge 130 to the service processor mailbox interface and ISA bus access pass-through logic 194 and EADS 132. The ISA bus access pass-through logic 194 forwards PCI accesses destined to the PCI/ISA bridge 193. The NV-RAM storage is connected to the ISA bus 196. The Service processor 135 is coupled to the service processor mailbox interface 194 through its local PCI bus 195. Service processor 135 is also connected to processors 101-104 via a plurality of JTAG/I2C buses 134. JTAG/I2C buses 134 are a combination of JTAG/scan busses (see IEEE 1149.1) and Phillips I2C busses. However, alternatively, JTAG/I2C buses 134 may be replaced by only Phillips I2C busses or only JTAG/scan busses. All SP-ATTN signals of the host processors 101, 102, 103, and 104 are connected together to an interrupt input signal of the service processor. The service processor 135 has its own local memory 191, and has access to the hardware op-panel 190.
  • When [0020] data processing system 100 is initially powered up, service processor 135 uses the JTAG/scan buses 134 to interrogate the system (Host) processors 101-104, memory controller 108, and I/O bridge 110. At completion of this step, service processor 135 has an inventory and topology understanding of data processing system 100. Service processor 135 also executes Built-In-Self-Tests (BISTs), Basic Assurance Tests (BATs), and memory tests on all elements found by interrogating the system processors 101-104, memory controller 108, and I/O bridge 110. Any error information for failures detected during the BISTs, BATs, and memory tests are gathered and reported by service processor 135.
  • If a meaningful/valid configuration of system resources is still possible after taking out the elements found to be faulty during the BISTS, BATs, and memory tests, then [0021] data processing system 100 is allowed to proceed to load executable code into local (Host) memories 160-163. Service processor 135 then releases the Host processors 101-104 for execution of the code loaded into Host memory 160-163. While the Host processors 101-104 are executing code from respective operating systems within the data processing system 100, service processor 135 enters a mode of monitoring and reporting errors. The type of items monitored by service processor include, for example, the cooling fan speed and operation, thermal sensors, power supply regulators, and recoverable and non-recoverable errors reported by processors 101-104, memories 160-163, and bus-bridge controller 110.
  • [0022] Service processor 135 is responsible for saving and reporting error information related to all the monitored items in data processing system 100. Service processor 135 also takes action based on the type of errors and defined thresholds. For example, service processor 135 may take note of excessive recoverable errors on a processor's cache memory and decide that this is predictive of a hard failure. Based on this determination, service processor 135 may mark that resource for deconfiguration during the current running session and future Initial Program Loads (IPLs). IPLs are also sometimes referred to as a “boot” or “bootstrap”.
  • Those of ordinary skill in the art will appreciate that the hardware depicted in FIG. 1 may vary. For example, other peripheral devices, such as optical disk drives and the like, also may be used in addition to or in place of the hardware depicted. The depicted example is not meant to imply architectural limitations with respect to the present invention. [0023]
  • With reference now to FIG. 2, a block diagram of an exemplary logically partitioned platform is depicted in which the present invention may be implemented. The hardware in logically partitioned [0024] platform 200 may be implemented as, for example, server 100 in FIG. 1. Logically partitioned platform 200 includes partitioned hardware 230, Open Firmware (OF) 210, and operating systems 202-208. OF 210 is sometimes referred to as a hypervisor in some International Business Machine implementations. Operating systems 202-208 may be multiple copies of a single operating system or multiple heterogeneous operating systems simultaneously run on platform 200.
  • [0025] Partitioned hardware 230 includes a plurality of processors 232-238, a plurality of system memory units 240-246, a plurality of input/output (I/O) adapters 248-262, and a storage unit 270. Each of the processors 242-248, memory units 240-246, and I/O adapters 248-262 may be assigned to one of multiple partitions within logically partitioned platform 200, each of which corresponds to one of operating systems 202-208.
  • OF [0026] 210 performs a number of functions and services for operating system images 202-208 to create and enforce the partitioning of logically partitioned platform 200. Firmware is “software” stored in a memory chip that holds its content without electrical power, such as, for example, read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), and non-volatile random access memory (non-volatile RAM).
  • OF [0027] 210 is a firmware implemented virtual machine identical to the underlying hardware. Thus, OF 210 allows the simultaneous execution of independent OS images 202-208 by virtualizing all the hardware resources of logically partitioned platform 200. OF 210 may attach I/O devices through I/O adapters 248-262 to single virtual machines in an exclusive mode for use by one of OS images 202-208.
  • Under logical partitioning, the [0028] common NVRAM 298 system resource is divided into several small Common Hardware Reference Platform (CHRP) regions, one each for each of the partitions. CHRP is a platform system architecture, the goal of which is to support multiple Operating Systems on the same hardware platform. The CHRP architecture requires the system platform to provide a portiton of NVRAM storage for the OS running on the system. The OS's NVRAM storage is said to be the CHRP NVRAM region. Since there is no hardware protection to detect unwanted accesses from one partition to another partition's NVRAM CHRP region, all accesses are performed through OF 210 system calls. OF 210 therefore provides a virtualized NVRAM CHRP region for all partitions. However, a partition with service authority may gain access to other NVRAM regions in addition to its own NVRAM CHRP region.
  • A normal partition has a virtualized NVRAM address range from zero to (chrp_size−1) with the CHRP region of chrp size bytes. The service authorized partition will have a virtualized NVRAM address range from zero to (chrp_size+auth_size−1) where chrp_size is CHRP region size in bytes and auth_size is Service Authority region size in bytes. [0029]
  • Any partition can issue NVRAM read/write accesses in its virtual address range. Accessing violating protection is enforced by OF [0030] 210 and any partition request for access to a virtual range outside the range allocated to the partition will be rejected by OF 210. For good accesses, the virtual NVRAM addresses are converted into real NVRAM addresses to read or write from or to the NVRAM 298.
  • OF [0031] 210 maintains a chip_base_address of each partition's CHRP region in NVRAM partition table 211. OF 210 uses the partition ID of the calling processor 234-238 to select the proper chrp_base_address of the partition's CHRP region. Therefore, for a normal partition, the actual physical NVRAM address (real_nvram_address) is given by the following equation:
  • real_nvram_address=partition_chrp_base_address+virtual_nvram_address
  • With the service_authorized partition, the NVRAM CHRP region and the service authority region may not be physically contiguous regions within [0032] NVRAM 298. If the virtual_nvram_address is greater than zero but less than the service_autho_partition_size, then the real_nvram_address is equal to the service_autho_base_address plus the virtual_nvram_address. Otherwise, if the service_autho_partition_size is less than or equal to the virtual_nvram_address and if the virtual_nvram_address is less than the chrp_size plus the service_autho_partition_size then the real_nvram_address is equal to (virtual_nvram_address−service_autho_partition_size+partition_chrp_base_address). Preferably, the service authority region is mapped before the partition's CHRP region. This allows the CHRP region to grow as needed.
  • With reference now to FIG. 3, a flowchart illustrating an exemplary method for enforcing logical partitioning within a non-volatile random access memory is depicted in accordance with the present invention. [0033]
  • The present method may be implemented by, for example, OF [0034] 210 in FIG. 2. To begin, the OF receives a request to access the NVRAM from a processor within the data processing system (step 302). This request may be a request to read from a section of the NVRAM or a request to write to a section of the NVRAM and includes the virtual address or addresses of the portions of the NVRAM for which the processor desires access.
  • The OF then determines the partition Identification (ID) of the calling processor (step [0035] 304) and whether the requested virtual address or addresses are within the range of virtual addresses assigned to the partition to which the requesting processor belongs (step 306). If the virtual addresses are not within the range of virtual addresses assigned to the partition to which the processor belongs, then access to the requested portions of the NVRAM is denied (step 308). If, however, the requested virtual address or addresses are within the range of virtual addresses assigned to the partition to which the requesting processor belongs, then the virtual address or addresses is converted into a NVRAM physical address (step 310). The OF then performs the requested action (step 312) of either reading from or writing to the requested portions of the NVRAM.
  • The method illustrated herein is given merely by way of example. However, other methods may also be used to enforce the logical partitioning of the NVRAM. Furthermore, the principals of the present invention may be applied to other devices other than NVRAMs for which logical partitioning is desirable but which do not lend themselves to physical partitioning. [0036]
  • It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media such a floppy disc, a hard disk drive, a RAM, and CD-ROMs and transmission-type media such as digital and analog communications links. [0037]
  • The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. [0038]

Claims (27)

What is claimed is:
1. A method for enforcing logical partitioning of a shared device to which multiple partitions within a data processing system access, the method comprising:
receiving a request from a requesting device to access a portion of the shared device, wherein the request includes a virtual address;
responsive to a determination that the virtual address is included in a range of addresses for which the requesting device is authorized to access, providing access to the requested portion of the shared device to the requesting device.
2. The method as recited in claim 1, further comprising:
responsive to a determination that the virtual address is not included in a range of addresses for which the requesting device may access, denying access to the requested portion of the shared device.
3. The method as recited in claim 1, further comprising:
prior to receiving a request to access a portion of the shared device, assigning each of a plurality of partitions within the data processing system a range of virtual addresses to the shared device wherein each virtual address corresponds to a physical address within the shared device.
4. The method as recited in claim 1, wherein the shared device is a non-volatile random access memory.
5. The method as recited in claim 1, wherein the requesting device is a processor.
6. The method as recited in claim 1, wherein the determination as to whether the virtual address is within a range of addresses for which the requesting device is allowed access comprises determining the partition identification of the requesting device and an address range corresponding to the partition identification.
7. The method as recited in claim 1, further comprising:
converting the virtual address into a physical address; and
performing the requested access.
8. The method as recited in claim 1, wherein the requested access is a read operation.
9. The method as recited in claim 1, wherein the requested access is a write operation.
10. A computer program product in a computer readable media for use in a data processing system for enforcing logical partitioning of a shared device to which multiple partitions within the data processing system access, the computer program product comprising:
first instructions for receiving a request from a requesting device to access a portion of the shared device, wherein the request includes a virtual address;
second instructions, responsive to a determination that the virtual address is included in a range of addresses for which the requesting device is authorized to access, for providing access to the requested portion of the shared device to the requesting device.
11. The computer program product as recited in claim 10, further comprising:
third instructions, responsive to a determination that the virtual address is not included in a range of addresses for which the requesting device may access, for denying access to the requested portion of the shared device.
12. The computer program product as recited in claim 10, further comprising:
third instructions, prior to receiving a request to access a portion of the shared device, for assigning each of a plurality of partitions within the data processing system a range of virtual addresses to the shared device wherein each virtual address corresponds to a physical address within the shared device.
13. The computer program product as recited in claim 10, wherein the shared device is a non-volatile random access memory.
14. The computer program product as recited in claim 10, wherein the requesting device is a processor.
15. The computer program product as recited in claim 10, wherein the determination as to whether the virtual address is within a range of addresses for which the requesting device is allowed access comprises determining the partition identification of the requesting device and an address range corresponding to the partition identification.
16. The computer program product as recited in claim 10, further comprising:
third instructions for converting the virtual address into a physical address; and
fourth instructions for performing the requested access.
17. The computer program product as recited in claim 10, wherein the requested access is a read operation.
18. The computer program product as recited in claim 10, wherein the requested access is a write operation.
19. A system in a computer readable media for use in a data processing system for enforcing logical partitioning of a shared device to which multiple partitions within the data processing system access, the system comprising:
an access receiving unit which receives a request from a requesting device to access a portion of the shared device, wherein the request includes a virtual address;
an address verification unit which, responsive to a determination that the virtual address is included in a range of addresses for which the requesting device is authorized to access, provides access to the requested portion of the shared device to the requesting device.
20. The system as recited in claim 19, further comprising:
a access denial unit which, responsive to a determination that the virtual address is not included in a range of addresses for which the requesting device may access, denies access to the requested portion of the shared device.
21. The system as recited in claim 19, further comprising:
a partitioning assignment unit which, prior to receiving a request to access a portion of the shared device, assigns each of a plurality of partitions within the data processing system a range of virtual addresses to the shared device wherein each virtual address corresponds to a physical address within the shared device.
22. The system as recited in claim 19, wherein the shared device is a non-volatile random access memory.
23. The system as recited in claim 19, wherein the requesting device is a processor.
24. The system as recited in claim 19, wherein the determination as to whether the virtual address is within a range of addresses for which the requesting device is allowed access comprises determining the partition identification of the requesting device and an address range corresponding to the partition identification.
25. The system as recited in claim 19, further comprising:
a conversion unit which converts the virtual address into a physical address; and an access performance unit which performs the requested access.
26. The system as recited in claim 19, wherein the requested access is a read operation.
27. The system as recited in claim 19, wherein the requested access is a write operation.
US09/798,292 2001-03-01 2001-03-01 Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls Expired - Lifetime US6567897B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/798,292 US6567897B2 (en) 2001-03-01 2001-03-01 Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/798,292 US6567897B2 (en) 2001-03-01 2001-03-01 Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls

Publications (2)

Publication Number Publication Date
US20020129212A1 true US20020129212A1 (en) 2002-09-12
US6567897B2 US6567897B2 (en) 2003-05-20

Family

ID=25173022

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/798,292 Expired - Lifetime US6567897B2 (en) 2001-03-01 2001-03-01 Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls

Country Status (1)

Country Link
US (1) US6567897B2 (en)

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199071A1 (en) * 2001-06-21 2002-12-26 Manabu Kitamura Storage system certifying a host computer
US20030138759A1 (en) * 2002-03-05 2003-07-24 Rowley David D. System and method for evaluating a person's information technology skills
US20030182358A1 (en) * 2002-02-26 2003-09-25 Rowley David D. System and method for distance learning
US6941105B1 (en) * 2001-10-24 2005-09-06 Novell, Inc. System and method to reduce the time and complexity of information technology classroom setup
US20060195620A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for virtual resource initialization on a physical adapter that supports virtual resources
US20060195618A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Data processing system, method, and computer program product for creation and initialization of a virtual adapter on a physical adapter that supports virtual adapter level virtualization
US20060195617A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Method and system for native virtualization on a partially trusted adapter using adapter bus, device and function number for identification
US20060195623A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host memory mapped input/output memory address for identification
US20060195626A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for host initialization for an adapter that supports virtualization
US20060195674A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for managing metrics table per virtual port in a logically partitioned data processing system
US20060195848A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method of virtual resource modification on a physical adapter that supports virtual resources
US20060193327A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for providing quality of service in a virtual adapter
US20060195673A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
US20060195619A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for destroying virtual resources in a logically partitioned data processing system
US20060195634A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for modification of virtual adapter resources in a logically partitioned data processing system
US20060195642A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Method, system and program product for differentiating between virtual hosts on bus transactions and associating allowable memory access for an input/output adapter that supports virtualization
US20060195675A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US20060212608A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation System, method, and computer program product for a fully trusted adapter validation of incoming memory mapped I/O operations on a physical adapter that supports virtual adapters or virtual resources
US20060212606A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification
US20060212870A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
US20060209863A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Virtualized fibre channel adapter for a multi-processor data processing system
US20060209724A1 (en) * 2005-02-28 2006-09-21 International Business Machines Corporation Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request
US20060212620A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation System and method for virtual adapter resource allocation
US20060224790A1 (en) * 2005-02-25 2006-10-05 International Business Machines Corporation Method, system, and computer program product for virtual adapter destruction on a physical adapter that supports virtual adapters
US20070005957A1 (en) * 2005-06-30 2007-01-04 Ravi Sahita Agent presence monitor configured to execute in a secure environment
US20070005992A1 (en) * 2005-06-30 2007-01-04 Travis Schluessler Signed manifest for run-time verification of software program identity and integrity
US20070006307A1 (en) * 2005-06-30 2007-01-04 Hahn Scott D Systems, apparatuses and methods for a host software presence check from an isolated partition
US20070011430A1 (en) * 2005-06-30 2007-01-11 Khosravi Hormuzd M Systems and methods for host virtual memory reconstitution
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
US20070136554A1 (en) * 2005-12-12 2007-06-14 Giora Biran Memory operations in a virtualized system
US20070143395A1 (en) * 2005-11-25 2007-06-21 Keitaro Uehara Computer system for sharing i/o device
US20090038017A1 (en) * 2007-08-02 2009-02-05 David Durham Secure vault service for software components within an execution environment
US20090125885A1 (en) * 2007-11-13 2009-05-14 Nagabhushan Gayathri Method and system for whitelisting software components
US20100169666A1 (en) * 2008-12-31 2010-07-01 Prashant Dewan Methods and systems to direclty render an image and correlate corresponding user input in a secuire memory domain
WO2013077867A1 (en) * 2011-11-22 2013-05-30 Intel Corporation Access control for non-volatile random access memory across platform agents
CN103946810A (en) * 2011-09-30 2014-07-23 英特尔公司 Platform storage hierarchy with non-volatile random access memory having configurable partitions
US9378133B2 (en) 2011-09-30 2016-06-28 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
US9430372B2 (en) 2011-09-30 2016-08-30 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
US9529708B2 (en) 2011-09-30 2016-12-27 Intel Corporation Apparatus for configuring partitions within phase change memory of tablet computer with integrated memory controller emulating mass storage to storage driver based on request from software
US10102126B2 (en) 2011-09-30 2018-10-16 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681238B1 (en) * 1998-03-24 2004-01-20 International Business Machines Corporation Method and system for providing a hardware machine function in a protected virtual machine
US6792514B2 (en) * 2001-06-14 2004-09-14 International Business Machines Corporation Method, system and computer program product to stress and test logical partition isolation features
US6775750B2 (en) * 2001-06-29 2004-08-10 Texas Instruments Incorporated System protection map
US7103745B2 (en) * 2002-10-17 2006-09-05 Wind River Systems, Inc. Two-level operating system architecture
US20050027807A1 (en) * 2003-07-30 2005-02-03 Lynda Fengler Systems and methods for facilitating peripheral device firmware installation
JP2005275629A (en) * 2004-03-23 2005-10-06 Nec Corp Multiprocessor system and memory access method
US7136952B2 (en) * 2004-04-28 2006-11-14 International Business Machines Corporation Method for programming firmware hubs using service processors
US7380174B2 (en) * 2004-09-28 2008-05-27 Hewlett-Packard Development Company, L.P. Variable writing through a fixed programming interface
US7325163B2 (en) * 2005-01-04 2008-01-29 International Business Machines Corporation Error monitoring of partitions in a computer system using supervisor partitions
US7412705B2 (en) * 2005-01-04 2008-08-12 International Business Machines Corporation Method for inter partition communication within a logical partitioned data processing system
US20070005930A1 (en) * 2005-06-30 2007-01-04 Khosravi Hormuzd M Systems and methods for host virtual memory reconstitution
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US8407451B2 (en) * 2007-02-06 2013-03-26 International Business Machines Corporation Method and apparatus for enabling resource allocation identification at the instruction level in a processor system
CA2625669A1 (en) * 2007-03-19 2008-09-19 Progressive Gaming International Corporation Method and apparatus for gaming token verification
JP4766498B2 (en) * 2008-12-24 2011-09-07 株式会社ソニー・コンピュータエンタテインメント Method and apparatus for providing user level DMA and memory access management
US8839007B2 (en) 2011-06-17 2014-09-16 Dell Products Lp Shared non-volatile storage for digital power control
US8990520B1 (en) * 2012-03-30 2015-03-24 Emc Corporation Global memory as non-volatile random access memory for guest operating systems
CN110851183B (en) * 2018-08-20 2024-04-12 联想企业解决方案(新加坡)有限公司 Method for fast booting a processor in a multiprocessor architecture

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4930578B1 (en) * 1970-09-30 1974-08-14
US4564903A (en) 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
US4843541A (en) 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
JPH0291747A (en) * 1988-09-29 1990-03-30 Hitachi Ltd Information processor
EP0472861B1 (en) 1990-08-31 1995-09-20 International Business Machines Corporation Method and apparatus for cross-partition control in a partitioned process environment
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
US5287473A (en) * 1990-12-14 1994-02-15 International Business Machines Corporation Non-blocking serialization for removing data from a shared cache
US5396461A (en) * 1992-01-16 1995-03-07 Sharp Kabushiki Kaisha Non-volatile dynamic random access memory device
US5819061A (en) * 1994-07-25 1998-10-06 International Business Machines Corporation Method and apparatus for dynamic storage reconfiguration in a partitioned environment
JP2982702B2 (en) * 1996-08-30 1999-11-29 日本電気株式会社 Disk unit
US6233667B1 (en) * 1999-03-05 2001-05-15 Sun Microsystems, Inc. Method and apparatus for a high-performance embedded memory management unit
US6292874B1 (en) * 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges

Cited By (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816948B2 (en) * 2001-06-21 2004-11-09 Hitachi, Ltd. Storage system certifying a host computer
US20020199071A1 (en) * 2001-06-21 2002-12-26 Manabu Kitamura Storage system certifying a host computer
US6941105B1 (en) * 2001-10-24 2005-09-06 Novell, Inc. System and method to reduce the time and complexity of information technology classroom setup
US20030182358A1 (en) * 2002-02-26 2003-09-25 Rowley David D. System and method for distance learning
US7698360B2 (en) 2002-02-26 2010-04-13 Novell, Inc. System and method for distance learning
US7331791B2 (en) 2002-03-05 2008-02-19 Novell, Inc. System and method for evaluating a person's information technology skills
US20030138759A1 (en) * 2002-03-05 2003-07-24 Rowley David D. System and method for evaluating a person's information technology skills
US7487326B2 (en) 2005-02-25 2009-02-03 International Business Machines Corporation Method for managing metrics table per virtual port in a logically partitioned data processing system
US8028105B2 (en) 2005-02-25 2011-09-27 International Business Machines Corporation System and method for virtual adapter resource allocation matrix that defines the amount of resources of a physical I/O adapter
US20060195626A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for host initialization for an adapter that supports virtualization
US20060195674A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for managing metrics table per virtual port in a logically partitioned data processing system
US20060195848A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method of virtual resource modification on a physical adapter that supports virtual resources
US20060193327A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for providing quality of service in a virtual adapter
US20060195673A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
US20060195619A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for destroying virtual resources in a logically partitioned data processing system
US20060195634A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for modification of virtual adapter resources in a logically partitioned data processing system
US20060195642A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Method, system and program product for differentiating between virtual hosts on bus transactions and associating allowable memory access for an input/output adapter that supports virtualization
US20060195675A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US20060212608A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation System, method, and computer program product for a fully trusted adapter validation of incoming memory mapped I/O operations on a physical adapter that supports virtual adapters or virtual resources
US20060212606A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification
US20060212870A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
US20060209863A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Virtualized fibre channel adapter for a multi-processor data processing system
US8086903B2 (en) 2005-02-25 2011-12-27 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
US20060212620A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation System and method for virtual adapter resource allocation
US20090089611A1 (en) * 2005-02-25 2009-04-02 Richard Louis Arndt Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an i/o adapter that supports virtualization
US20060195623A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host memory mapped input/output memory address for identification
US7966616B2 (en) 2005-02-25 2011-06-21 International Business Machines Corporation Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
US7941577B2 (en) 2005-02-25 2011-05-10 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US7870301B2 (en) 2005-02-25 2011-01-11 International Business Machines Corporation System and method for modification of virtual adapter resources in a logically partitioned data processing system
US20060195620A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for virtual resource initialization on a physical adapter that supports virtual resources
US7685335B2 (en) 2005-02-25 2010-03-23 International Business Machines Corporation Virtualized fibre channel adapter for a multi-processor data processing system
US7685321B2 (en) 2005-02-25 2010-03-23 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification
US7308551B2 (en) 2005-02-25 2007-12-11 International Business Machines Corporation System and method for managing metrics table per virtual port in a logically partitioned data processing system
US7496790B2 (en) 2005-02-25 2009-02-24 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
US20080071960A1 (en) * 2005-02-25 2008-03-20 Arndt Richard L System and method for managing metrics table per virtual port in a logically partitioned data processing system
US7376770B2 (en) 2005-02-25 2008-05-20 International Business Machines Corporation System and method for virtual adapter resource allocation matrix that defines the amount of resources of a physical I/O adapter
US7386637B2 (en) 2005-02-25 2008-06-10 International Business Machines Corporation System, method, and computer program product for a fully trusted adapter validation of incoming memory mapped I/O operations on a physical adapter that supports virtual adapters or virtual resources
US20080163236A1 (en) * 2005-02-25 2008-07-03 Richard Louis Arndt Method, system, and computer program product for virtual adapter destruction on a physical adapter that supports virtual adapters
US7398328B2 (en) 2005-02-25 2008-07-08 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification
US7398337B2 (en) 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US20080168461A1 (en) * 2005-02-25 2008-07-10 Richard Louis Arndt Association of memory access through protection attributes that are associated to an access control level on a pci adapter that supports virtualization
US20080216085A1 (en) * 2005-02-25 2008-09-04 International Business Machines Corporation System and Method for Virtual Adapter Resource Allocation
US20080270735A1 (en) * 2005-02-25 2008-10-30 International Business Machines Corporation Association of Host Translations that are Associated to an Access Control Level on a PCI Bridge that Supports Virtualization
US7464191B2 (en) 2005-02-25 2008-12-09 International Business Machines Corporation System and method for host initialization for an adapter that supports virtualization
US20090007118A1 (en) * 2005-02-25 2009-01-01 International Business Machines Corporation Native Virtualization on a Partially Trusted Adapter Using PCI Host Bus, Device, and Function Number for Identification
US7493425B2 (en) * 2005-02-25 2009-02-17 International Business Machines Corporation Method, system and program product for differentiating between virtual hosts on bus transactions and associating allowable memory access for an input/output adapter that supports virtualization
US7480742B2 (en) 2005-02-25 2009-01-20 International Business Machines Corporation Method for virtual adapter destruction on a physical adapter that supports virtual adapters
US20060195618A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Data processing system, method, and computer program product for creation and initialization of a virtual adapter on a physical adapter that supports virtual adapter level virtualization
US7577764B2 (en) 2005-02-25 2009-08-18 International Business Machines Corporation Method, system, and computer program product for virtual adapter destruction on a physical adapter that supports virtual adapters
US7653801B2 (en) 2005-02-25 2010-01-26 International Business Machines Corporation System and method for managing metrics table per virtual port in a logically partitioned data processing system
US20060195617A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Method and system for native virtualization on a partially trusted adapter using adapter bus, device and function number for identification
US20060224790A1 (en) * 2005-02-25 2006-10-05 International Business Machines Corporation Method, system, and computer program product for virtual adapter destruction on a physical adapter that supports virtual adapters
US20090106475A1 (en) * 2005-02-25 2009-04-23 International Business Machines Corporation System and Method for Managing Metrics Table Per Virtual Port in a Logically Partitioned Data Processing System
US7546386B2 (en) 2005-02-25 2009-06-09 International Business Machines Corporation Method for virtual resource initialization on a physical adapter that supports virtual resources
US7543084B2 (en) 2005-02-25 2009-06-02 International Business Machines Corporation Method for destroying virtual resources in a logically partitioned data processing system
US7475166B2 (en) 2005-02-28 2009-01-06 International Business Machines Corporation Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request
US20090144462A1 (en) * 2005-02-28 2009-06-04 International Business Machines Corporation Method and System for Fully Trusted Adapter Validation of Addresses Referenced in a Virtual Host Transfer Request
US7779182B2 (en) 2005-02-28 2010-08-17 International Business Machines Corporation System for fully trusted adapter validation of addresses referenced in a virtual host transfer request
US20060209724A1 (en) * 2005-02-28 2006-09-21 International Business Machines Corporation Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request
US20110231668A1 (en) * 2005-06-30 2011-09-22 Travis Schluessler Signed Manifest for Run-Time Verification of Software Program Identity and Integrity
US20070005957A1 (en) * 2005-06-30 2007-01-04 Ravi Sahita Agent presence monitor configured to execute in a secure environment
US8601273B2 (en) 2005-06-30 2013-12-03 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US8499151B2 (en) 2005-06-30 2013-07-30 Intel Corporation Secure platform voucher service for software components within an execution environment
US9547772B2 (en) 2005-06-30 2017-01-17 Intel Corporation Secure vault service for software components within an execution environment
US7571298B2 (en) * 2005-06-30 2009-08-04 Intel Corporation Systems and methods for host virtual memory reconstitution
US20070011430A1 (en) * 2005-06-30 2007-01-11 Khosravi Hormuzd M Systems and methods for host virtual memory reconstitution
US7669242B2 (en) 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US20070006307A1 (en) * 2005-06-30 2007-01-04 Hahn Scott D Systems, apparatuses and methods for a host software presence check from an isolated partition
US7953980B2 (en) 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US20070005992A1 (en) * 2005-06-30 2007-01-04 Travis Schluessler Signed manifest for run-time verification of software program identity and integrity
US9361471B2 (en) 2005-06-30 2016-06-07 Intel Corporation Secure vault service for software components within an execution environment
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
US20070143395A1 (en) * 2005-11-25 2007-06-21 Keitaro Uehara Computer system for sharing i/o device
US7890669B2 (en) * 2005-11-25 2011-02-15 Hitachi, Ltd. Computer system for sharing I/O device
US20070136554A1 (en) * 2005-12-12 2007-06-14 Giora Biran Memory operations in a virtualized system
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US20090038017A1 (en) * 2007-08-02 2009-02-05 David Durham Secure vault service for software components within an execution environment
US8099718B2 (en) 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US20090125885A1 (en) * 2007-11-13 2009-05-14 Nagabhushan Gayathri Method and system for whitelisting software components
US8364601B2 (en) 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
US20100169666A1 (en) * 2008-12-31 2010-07-01 Prashant Dewan Methods and systems to direclty render an image and correlate corresponding user input in a secuire memory domain
US9529708B2 (en) 2011-09-30 2016-12-27 Intel Corporation Apparatus for configuring partitions within phase change memory of tablet computer with integrated memory controller emulating mass storage to storage driver based on request from software
EP2761468A4 (en) * 2011-09-30 2015-06-24 Intel Corp Platform storage hierarchy with non-volatile random access memory having configurable partitions
CN103946810A (en) * 2011-09-30 2014-07-23 英特尔公司 Platform storage hierarchy with non-volatile random access memory having configurable partitions
US9378133B2 (en) 2011-09-30 2016-06-28 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
US9430372B2 (en) 2011-09-30 2016-08-30 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
US10001953B2 (en) 2011-09-30 2018-06-19 Intel Corporation System for configuring partitions within non-volatile random access memory (NVRAM) as a replacement for traditional mass storage
US10055353B2 (en) 2011-09-30 2018-08-21 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
US10102126B2 (en) 2011-09-30 2018-10-16 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US11132298B2 (en) 2011-09-30 2021-09-28 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
TWI512492B (en) * 2011-11-22 2015-12-11 Intel Corp Method,apparatus and system of access control for non-volatile random access memory across platform agents
US9298607B2 (en) 2011-11-22 2016-03-29 Intel Corporation Access control for non-volatile random access memory across platform agents
CN103946824A (en) * 2011-11-22 2014-07-23 英特尔公司 Access control for non-volatile random access memory across platform agents
WO2013077867A1 (en) * 2011-11-22 2013-05-30 Intel Corporation Access control for non-volatile random access memory across platform agents

Also Published As

Publication number Publication date
US6567897B2 (en) 2003-05-20

Similar Documents

Publication Publication Date Title
US6567897B2 (en) Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls
US6665759B2 (en) Method and apparatus to implement logical partitioning of PCI I/O slots
US7139940B2 (en) Method and apparatus for reporting global errors on heterogeneous partitioned systems
US6834340B2 (en) Mechanism to safely perform system firmware update in logically partitioned (LPAR) machines
US8782024B2 (en) Managing the sharing of logical resources among separate partitions of a logically partitioned computer system
US7343521B2 (en) Method and apparatus to preserve trace data
US6901537B2 (en) Method and apparatus for preventing the propagation of input/output errors in a logical partitioned data processing system
US7954156B2 (en) Method to enhance platform firmware security for logical partition data processing systems by dynamic restriction of available external interfaces
US7257734B2 (en) Method and apparatus for managing processors in a multi-processor data processing system
US8087076B2 (en) Method and apparatus for preventing loading and execution of rogue operating systems in a logical partitioned data processing system
US20060010355A1 (en) Isolation of input/output adapter error domains
US7117385B2 (en) Method and apparatus for recovery of partitions in a logical partitioned data processing system
US20060010276A1 (en) Isolation of input/output adapter direct memory access addressing domains
US7089411B2 (en) Method and apparatus for providing device information during runtime operation of a data processing system
US20030212883A1 (en) Method and apparatus for dynamically managing input/output slots in a logical partitioned data processing system
US20050076179A1 (en) Cache optimized logical partitioning a symmetric multi-processor data processing system
US7266631B2 (en) Isolation of input/output adapter traffic class/virtual channel and input/output ordering domains
US20060010277A1 (en) Isolation of input/output adapter interrupt domains
US6934888B2 (en) Method and apparatus for enhancing input/output error analysis in hardware sub-systems
US7496729B2 (en) Method and apparatus to eliminate interpartition covert storage channel and partition analysis
US7370240B2 (en) Method and apparatus for preserving trace data in a logical partitioned data processing system
US7275185B2 (en) Method and apparatus for device error log persistence in a logical partitioned data processing system

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEE, VAN HOA;PATEL, KANISHA;WILLOUGHBY, DAVID R.;REEL/FRAME:011616/0622;SIGNING DATES FROM 20010226 TO 20010228

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12