IP Library Granted Patent US 7,350,053
Granted Patent B1
US 7,350,053 · App. 11/034,345 · Granted Mar 25, 2008

Software accessible fast VA to PA translation

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 7,350,053
App. No.
11/034,345
Granted
Mar 25, 2008
Kind
B1
Abstract

A method to communicate data is disclosed which includes communicating a virtual address to a translation lookaside buffer (TLB) and translating the virtual address to a physical address of a computer memory. The method also includes loading the physical address translated by the TLB into a register within a processor and transmitting the data from the physical address to a destination computing device.

Claims (44)

1. A method to communicate data, comprising:

communicating a virtual address of the data to a translation lookaside buffer (TLB), the communicating originating from a processor that includes the TLB;

translating the virtual address to a physical address of a computer memory where the data is located using the TLB;

loading the physical address translated by the TLB into a register within a processor, the loading being controlled by a load instruction that identifies the physical address, as translated by the TLB, back to the processor;

loading a dummy value into the register within the processor if a translation was not received, the dummy value with a particular bit marked to indicate that a translation was not received from the TLB; and

transmitting the data from the physical address to a destination computing device.

2. A method to communicate data as recited in claim 1 , wherein transmitting the data from the physical address to the destination computing device includes,

storing, in response to a store instruction, the physical address into a first memory space within an input/output (I/O) unit,

accessing the physical address to transfer the data from the computer memory to a second memory space in the input/output unit,

transmitting the data from the second memory space of the input/output unit to the destination computing device.

3. A method to communicate data as recited in claim 1 , wherein the destination computing device is a cryptographic engine.

4. A method to communicate data as recited in claim 2 , wherein the first memory space is a descriptor ring and the second memory space is a data storage space for storing data.

5. A method to communicate data as recited in claim 1 , wherein the destination computing device is connected on a network.

6. A method to communicate data as recited in claim 2 , wherein the I/O unit packages the data for data transfer.

7. A method to communicate data as recited in claim 1 , wherein the TLB is an apparatus located within the processor that is configured to translate between the virtual address within a pipeline of the processor and the physical address of the computer memory.

8. A method to communicate data, comprising:

allocating a virtual address corresponding to a computer memory;

translating the virtual address to a physical address of the computer memory through a translation lookaside buffer (TLB), the translating being initiated by a load instruction of a processor of the computer and the physical address being stored in a register of the processor upon translation and receipt back from the TLB;

storing the physical address of the computer memory into a physical address of a memory space within an input/output (I/O) unit, the storing being initiated by a store instruction of the processor;

returning a dummy value to a receiving device, the dummy value with a particular bit marked to indicate that a translation was not received from the TLB;

receiving data from a sending computing apparatus; and

storing the received data to the physical address of the computer memory.

9. A method to communicate data as recited in claim 8 , wherein receiving data from a sending computing apparatus includes receiving the data over a network.

10. A method to communicate data as recited in claim 8 , wherein storing the received data to the physical address of the computer memory includes,

storing the received data within a data storage space in the I/O unit,

transmitting the data from the data storage space of the I/O unit to the physical address of the computer memory.

11. A method to communicate data, comprising:

providing a virtual address for the data;

translating the virtual address to a physical address of a computer memory by use of a translation lookaside buffer (TLB), the translating being initiated by a load instruction of a processor of the computer and the physical address being stored in a register of the processor upon translation and receipt back from the TLB;

returning a dummy value to a receiving device, the dummy value with a particular bit marked to indicate that a translation was not received from the TLB;

loading the physical address translated by the TLB into a register within a processor; and

storing the physical address into an input/output unit for use in data communication, the storing being initiated by a store instruction of the processor.

12. A method to communicate data as recited in claim 11 , wherein storing the physical address into an input/output unit for use in data communication includes,

transmitting the physical address to the input/output unit;

storing the physical address into a descriptor ring in the input/output unit;

loading the data located in the physical address into a data storage space within the input/output unit;

transmitting the data from the data storage space to a destination computing device.

13. A method to communicate data as recited in claim 11 , wherein storing the physical address into an input/output unit for use in data communication includes,

transmitting the physical address to the input/output unit;

storing the physical address into a descriptor ring in the input/output unit;

receiving the data from a computing device;

storing the received data into the physical address.

14. A method to communicate data as recited in claim 11 , wherein the providing the virtual address includes allocating the virtual address.

15. The method to communicate data as recited in claim 11 , wherein the receiving device is a cryptographic engine.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037303/0025 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2005
From: SUGUMAR, RABIN A.; GOLLA, ROBERT T.; JORDAN, PAUL J.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 016163/0744 →