IP Library Granted Patent US 8,635,430
Granted Patent B2
US 8,635,430 · App. 12/821,170 · Granted Jan 21, 2014

Translation of input/output addresses to memory addresses

Inventors: David Craddock (New Paltz, NY); Thomas A. Gregg (Highland, NY); Dan F. Greiner (San Jose, CA); Eric N. Lais (Tillson, NY)
Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,635,430
App. No.
12/821,170
Granted
Jan 21, 2014
Kind
B2
Abstract

An address provided in a request issued by an adapter is converted to an address directly usable in accessing system memory. The address includes a plurality of bits, in which the plurality of bits includes a first portion of bits and a second portion of bits. The second portion of bits is used to index into one or more levels of address translation tables to perform the conversion, while the first portion of bits are ignored for the conversion. The first portion of bits are used to validate the address.

Claims (31)

1. A computer program product for translating addresses in a computing environment, the computer program product comprising:

a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

obtaining an address from an adapter to be translated, the address comprising a plurality of bits, the plurality of bits comprising a first portion of bits and a second portion of bits;

receiving an address range value that indicates a range of permitted addresses;

validating the address using at least the first portion of bits and the received address range; and

converting the address to a memory address usable in accessing memory of the computing environment, the converting ignoring the first portion of bits and using the second portion of bits to obtain address information from one or more levels of address translation tables to perform the converting.

2. The computer program product of claim 1 , wherein the first portion of bits comprises high order bits of the address and the second portion of bits comprises low order bits of the address, the low order bits determined based on a size of an assigned address space that includes the memory address.

3. The computer program product of claim 1 , wherein a number of levels of address translation tables is based on at least one of a size of an assigned address space that includes the memory address, a size of one or more address translation tables to be used in the converting, and a size of the unit of memory accessed by the memory address.

4. The computer program product of claim 1 , wherein the converting comprises selecting an address translation table to be used to convert the address, the selecting using a pointer in a device table entry used in the converting.

5. The computer program product of claim 4 , wherein the method further comprises locating the device table entry, the locating using at least one of a requestor identifier of the adapter issuing a request that includes the address to be translated or a portion of the address.

6. The computer program product of claim 4 , wherein the method further comprises determining a format of the selected address translation table, the determining using a format field of the device table entry.

7. The computer program product of claim 4 , wherein the address range is defined by at least one of a base field and a limit field of the device table entry to validate the address.

8. The computer program product of claim 7 , wherein the validating the address comprises:

permitting execution based on determining that the at least the first portion of bits are within a range of corresponding bits of the address range, wherein the corresponding bits of the address range are not all 0's.

9. The computer program product of claim 1 , wherein the adapter comprises a function, the function comprising a Peripheral Component Interconnect function.

10. A computer system for translating addresses in a computing environment, the computer system comprising:

a memory; and

a processor in communications with the memory, wherein the computer system is configured to perform a method, said method comprising:

obtaining an address from an adapter to be translated, the address comprising a plurality of bits, the plurality of bits comprising a first portion of bits and a second portion of bits;

receiving an address range value that indicates a range of permitted addresses;

validating the address using at least the first portion of bits and the received address range; and

converting the address to a memory address usable in accessing memory of the computing environment, the converting ignoring the first portion of bits and using the second portion of bits to obtain address information from one or more levels of address translation tables to perform the converting.

11. The computer system of claim 10 , wherein the first portion of bits comprises high order bits of the address and the second portion of bits comprises low order bits of the address, the low order bits determined based on a size of an assigned address space that includes the memory address.

12. The computer system of claim 10 , wherein a number of levels of address translation tables is based on at least one of a size of an assigned address space that includes the memory address, a size of one or more address translation tables to be used in the converting, and a size of the unit of memory accessed by the memory address.

13. The computer system of claim 10 , wherein the converting comprises selecting an address translation table to be used to convert the address, the selecting using a pointer in a device table entry used in the converting.

14. The computer system of claim 13 , wherein the method further comprises locating the device table entry, the locating using at least one of a requestor identifier of the adapter issuing a request that includes the address to be translated or a portion of the address.

15. The computer system of claim 13 , wherein the method further comprises determining a format of the selected address translation table, the determining using a format field of the device table entry.

16. The computer system of claim 13 , wherein the address range is defined by at least one of a base field and a limit field of the device table entry to validate the address.

17. The computer system of claim 16 , wherein the validating the address comprises:

permitting execution based on determining that the at least the first portion of bits are within a range of corresponding bits of the address range, wherein the corresponding bits of the address range are not all 0's.

18. The computer system of claim 10 , wherein the adapter comprises a function, the function comprising a Peripheral Component Interconnect function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2010
From: CRADDOCK, DAVID; GREGG, THOMAS A.; GREINER, DAN F.; LAIS, ERIC N.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024579/0727 →
Continuity (1)
Related Publication 20110320758A1 · Dec 29, 2011