# US 10,310,759 B2 · Use efficiency of platform memory resources through firmware managed I/O translation table paging

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,310,759 B2
- Document ID: US10310759B2
- Status: Granted
- Kind: B2
- Application number: 15/218,495
- Filed: 2016-07-25
- Published: 2017-07-27
- Granted: 2019-06-04
- Earliest claimed: 2016-01-27
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Travis Pizel; Naveen Rathi
- Web page: https://patentgrep.com/patent/US10310759B2

## CPC

- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/0673: {Single storage device}
- G06F 3/068: {Hybrid storage device}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 11/301: {where the computing system is a virtual computing platform, e.g. logically partitioned systems (virtual machines G06F9/45533; logical partitioning of resources G06F9/5077)}
- G06F 12/1081: for peripheral access to main memory, e.g. direct memory access [DMA]
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45591: {Monitoring or debugging support}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are disclosed herein for paging I/O translation table entries. A host bridge of system hardware receives a request to fetch a first segment of an I/O translation table associated with one of a plurality of logical partitions executing in a computing system. The host bridge identifies a control register associated with the first segment. Upon determining that the first segment is paged out to the storage volume, a second segment is paged out from a location in memory to the storage volume. The first segment is paged in to the location.

## Claims

### Claim 1

A method comprising:
receiving a request to fetch a first segment of an I/O translation table associated with one of a plurality of logical partitions executing in a computing system;
identifying a control register and a base address register associated with the first segment, wherein the base address register includes an address of the first segment; and
upon determining that one or more bits within the control register indicate that the first segment is paged out to a storage volume:
paging out a second segment from a location in memory to the storage volume; and
paging the first segment in to the location.

### Claim 2 (depends on 1)

The method of claim 1, wherein the control register includes a time base and an indication of whether the first segment is paged out to a storage volume.

### Claim 3 (depends on 2)

The method of claim 2, further comprising, upon determining that the first segment is paged in:
updating the time base; and
fetching the first segment.

### Claim 4 (depends on 2)

The method of claim 2, wherein the indication of whether the first segment is paged out to the storage volume is a bit in the control register that is set when the first segment is paged in.

### Claim 5 (depends on 1)

The method of claim 1, wherein the storage volume is maintained by a hypervisor executing in the computing system.

### Claim 6 (depends on 1)

The method of claim 1, further comprising, prior to paging out the second segment:
generating a fault interrupt directed to a hypervisor executing in the computing system; and
stalling an I/O operation associated with the request to fetch the first segment of the I/O translation table.

### Claim 7 (depends on 6)

The method of claim 6, wherein the fault interrupt is satisfied after paging the first segment in to the location.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
resuming the I/O operation after the fault interrupt is satisfied.

### Claim 9

A computer program product, comprising:
a computer-readable storage medium storing instructions, which, when executed on a processor, perform an operation comprising:
receiving a request to fetch a first segment of an I/O translation table associated with one of a plurality of logical partitions executing in a computing system;
identifying a control register and a base address register associated with the first segment, wherein the base address register includes an address of the first segment; and
upon determining that one or more bits within the control register indicate that the first segment is paged out to a storage volume;
paging out a second segment from a location in memory to the storage volume; and
paging the first segment in to the location.

### Claim 10 (depends on 9)

The computer program product of claim 9, wherein the control register includes a time base and an indication of whether the first segment is paged out to a storage volume.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein the operation further comprises, upon determining that the first segment is paged in:
updating the time base; and
fetching the first segment.

### Claim 12 (depends on 10)

The computer program product of claim 10, wherein the indication of whether the first segment is paged out to the storage volume is a bit in the control register that is set when the first segment is paged in.

### Claim 13 (depends on 9)

The computer program product of claim 9, wherein the storage volume is maintained by a hypervisor executing in the computing system.

### Claim 14 (depends on 9)

The computer program product of claim 9,
wherein the operation further comprises, prior to paging out the second segment:
generating a fault interrupt directed to a hypervisor executing in the computing system; and
stalling an I/O operation associated with the request to fetch the first segment of the I/O translation table.

### Claim 15

A system, comprising:
a processor; and
a memory storing code, which, when executed on the processor, performs an operation, comprising:
receiving a request to fetch a first segment of an I/O translation table associated with one of a plurality of logical partitions executing in a computing system;
identifying a control register and a base address register associated with the first segment, wherein the base address register includes an address of the first segment; and
upon determining that one or more bits within the control register indicate that the first segment is paged out to a storage volume:
paging out a second segment from a location in memory to the storage volume; and
paging the first segment in to the location.

### Claim 16 (depends on 15)

The system of claim 15, wherein the control register includes an indication of whether the first segment is paged out to the storage volume, comprising a bit in the control register that is set when the first segment is paged in.

### Claim 17 (depends on 16)

The system of claim 16, wherein the operation further comprises, upon determining that the first segment is paged in:
updating a time base included in the control register; and
fetching the first segment.

### Claim 18 (depends on 15)

The system of claim 15, wherein the operation further comprises, prior to paging out the second segment:
generating a fault interrupt directed to a hypervisor executing in the computing system; and
stalling an I/O operation associated with the request to fetch the first segment of the I/O translation table.

### Claim 19 (depends on 18)

The system of claim 18, wherein the fault interrupt is satisfied after paging the first segment in to the location.

### Claim 20 (depends on 19)

The system of claim 19, wherein the operation further comprises:
resuming the I/O operation after the fault interrupt is satisfied.
