Method for efficient translation of memory addresses in computer systems
First Claim
1. A computer implemented method for performing memory address translations in a computer system, said method comprising the steps of:
- a) reserving a target memory region (TMR) in a target address space, said TMR having a target base address;
b) reserving a source memory region (SMR) in a source address space, said SMR having a source base address;
c) generating a descriptor including information for resolving said target base address of said TMR; and
d) representing said TMR with said SMR in said source address space, said source base address being selected based on said descriptor such that said target base address can be computed from said source base address without using a lookup table.
15 Assignments
0 Petitions
Accused Products
Abstract
A method and system for efficient translation of memory addresses in computer systems. The present invention enables address translations between different address spaces to be performed without using the table lookup step typically required in the prior art. Thus, the present invention provides significant improvements in both time and space efficiency over prior art implementations of address translation. In modern computer systems where direct memory access (DMA) operations are used extensively, especially in the emerging field of operating system (OS) bypass technology, the performance improvements afforded by the present invention are particularly critical to the realization of an efficient and high performance system. A method and system for efficiently translating memory addresses in computer systems and the address representation used are described herein.
-
Citations
33 Claims
-
1. A computer implemented method for performing memory address translations in a computer system, said method comprising the steps of:
-
a) reserving a target memory region (TMR) in a target address space, said TMR having a target base address;
b) reserving a source memory region (SMR) in a source address space, said SMR having a source base address;
c) generating a descriptor including information for resolving said target base address of said TMR; and
d) representing said TMR with said SMR in said source address space, said source base address being selected based on said descriptor such that said target base address can be computed from said source base address without using a lookup table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
e) receiving a request to access said target address while operating in a context of said source address space; and
f) servicing said request to access said target address without using a lookup table.
-
-
6. The computer implemented method as recited in claim 5 wherein said step h) comprises the steps of:
-
f1) identifying said target address as residing outside of said source address space; and
f2) resolving said target address of said target address space using said source address of said source address space.
-
-
7. The computer implemented method as recited in claim 1 wherein said source memory region does not intersect other virtual memory regions of said source address space.
-
8. The computer implemented method as recited in claim 1 wherein said source address space is a 64-bit address space.
-
9. The computer implemented method as recited in claim 1 wherein no program code and no program data resides in memory locations of said source address space beyond said source base address.
-
10. The computer implemented method as recited in claim 1 wherein said target memory region comprises a plurality of target memory regions and said source memory region comprises a plurality of source memory regions, such that each of said plurality of target memory regions is represented by a unique one of said plurality of source memory regions.
-
11. The computer implemented method as recited in claim 1 wherein said source address space and said target address space reside in different host computers.
-
12. A computer system comprising:
-
a processor;
an address/data bus coupled to said processor;
a computer readable memory coupled to communicate with said processor, said processor for performing a method for performing memory address translations in said computer system, said method comprising the steps of;
a) reserving a target memory region (TMR) in a target address space, said TMR having a target base address;
b) reserving a source memory region (SMR) in a source address space, said SMR having a source base address;
c) generating a descriptor including information for resolving said target base address of said TMR; and
d) representing said TMR with said SMR in said source address space, said source base address being selected based on said descriptor such that said target base address can be computed from said source base address without using a lookup table. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
e) receiving a request to access said target address while operating in a context of said source address space; and
f) servicing said request to access said target address without using a lookup table.
-
-
17. The computer system as recited in claim 16 wherein said step h) comprises the steps of:
-
f1) identifying said target address as residing outside of said source address space; and
f2) resolving said target address of said target address space using said source address of said source address space.
-
-
18. The computer system as recited in claim 12 wherein said source memory region does not intersect other virtual memory regions of said source address space.
-
19. The computer system as recited in claim 12 wherein said source address space is a 64-bit address space.
-
20. The computer system as recited in claim 12 wherein no program code and no program data resides in memory locations of said source address space beyond said source base address.
-
21. The computer system as recited in claim 12 wherein said target memory region comprises a plurality of target memory regions and said source memory region comprises a plurality of source memory regions, such that each of said plurality of target memory regions is represented by a unique one of said plurality of source memory regions.
-
22. The computer system as recited in claim 12 wherein said source address space and said target address space reside in different host computers.
-
23. A computer-usable medium having computer-readable program code embodied therein for causing a computer system to perform the steps of:
-
a) reserving a target memory region (TMR) in a target address space, said TMR having a target base address;
b) reserving a source memory region (SMR) in a source address space, said SMR having a source base address;
c) generating a descriptor including information for resolving said target base address of said TMR; and
d) representing said TMR with said SMR in said source address space, said source base address being selected based on said descriptor such that said target base address can be computed from said source base address without using a lookup table. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
e) receiving a request to access said target address while operating in a context of said source address space; and
f) servicing said request to access said target address without using a lookup table.
-
-
28. The computer-usable medium as recited in claim 27 wherein said step h) comprises the steps of:
-
f1) identifying said target address as residing outside of said source address space; and
f2) resolving said target address of said target address space using said source address of said source address space.
-
-
29. The computer-usable medium as recited in claim 23 wherein said source memory region does not intersect other virtual memory regions of said source address space.
-
30. The computer-usable medium as recited in claim 23 wherein said source address space is a 64-bit address space.
-
31. The computer-usable medium as recited in claim 23 wherein no program code and no program data resides in memory locations of said source address space beyond said source base address.
-
32. The computer-usable medium as recited in claim 23 wherein said target memory region comprises a plurality of target memory regions and said source memory region comprises a plurality of source memory regions, such that each of said plurality of target memory regions is represented by a unique one of said plurality of source memory regions.
-
33. The computer-usable medium as recited in claim 23 wherein said source address space and said target address space reside in different host computers.
Specification