IP Library › Granted Patent US 7,426,627
Granted Patent B2
US 7,426,627 · App. 11/372,703 · Granted Sep 16, 2008

Selective address translation for a resource such as a hardware device

Assignee: Microsoft 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 7,426,627
App. No.
11/372,703
Granted
Sep 16, 2008
Kind
B2
Abstract

A computing system has a resource for providing resource services, where each resource service is accessed by way of a system address (SA). A device requests the resource services of the resource by way of requests, where each request includes a remote address (RA) corresponding to an SA of the resource. A centralized address translator (CAT) has a database of RA/SA translations for the resource and the device, where each RA/SA translation in the database corresponds to a respective RA and SA. The device has a remote address translator (RAT) with a cache for storing priority RA/SA translations as obtained from the CAT. Each priority RA/SA translation in the cache of the RAT includes a validity flag set to indicate whether the priority translation is valid based on whether the SA has changed at the CAT.

Claims (38)

1. A computing system comprising:

a resource for providing resource services, each resource service being accessed by way of a system address (SA);

a device for requesting the resource services of the resource by way of requests, each request including a remote address (RA) corresponding to an SA of the resource; and

a centralized address translator (CAT) having a database of RA/SA translations for the resource and the device, each RA/SA translation in the database corresponding to a respective RA and SA, the CAT for receiving requests from the device for the resource and for each request translating the RA thereof to the corresponding SA according to the corresponding RA/SA translation in the database and forwarding the translated request to the resource;

the device having a remote address translator (RAT) with a cache for storing RA/SA translations as obtained from the CAT,

each RA/SA translation as stored in the database of the CAT including a priority flag set to indicate whether the RA/SA translation is considered by the RAT to be a priority translation,

each RA/SA translation as stored in the cache of the RAT including a validity flag set to indicate whether the translation is valid,

the validity flag for each priority translation in the cache of the RAT initially being set when the translation is obtained from the CAT to indicate that the priority translation is valid,

the validity flag for each translation in the cache of the RAT subsequently being set to indicate that such translation is not valid if the CAT notifies the RAT that the SA of such translation has been changed,

the RAT for receiving requests from the device for the resource and for each request determining whether an RA/SA translation in the cache corresponds to the RA of the request, and if so determining whether the corresponding translation is a priority translation, and if so determining whether the corresponding validity flag of the corresponding priority translation is set to indicate that such translation is valid, and if so translating the RA to the corresponding SA according to the valid priority RA/SA translation in the cache and forwarding the translated request to the resource, the RAT otherwise forwarding the request to the CAT for address translation.

2. The computing system of claim 1 wherein the resource is a data source storing and providing data, each piece of data being accessed by way of a respective SA.

3. The computing system of claim 1 wherein a driver corresponding to the RAT identifies to the CAT each priority translation.

4. The computing system of claim 1 wherein the RAT requests each RA/SA translation of the cache from the CAT, wherein the CAT responds to each request for an RA/SA translation with the requested translation and a corresponding priority flag set to indicate that the requested translation is a priority translation, and wherein the RAT stores the requested translation and the corresponding priority flag in the cache along with the corresponding validity flag for the priority translation.

5. The computing system of claim 4 wherein the CAT notifies the RAT when the SA of a translation changes if the changed translation was a priority translation as indicated by the corresponding priority flag in the database of the CAT, and wherein the validity flag for the changed translation in the cache of the RAT is thereby set to indicate that such translation is no longer valid.

6. The computing system of claim 1 wherein the RAT requests each RA/SA translation of the cache from the CAT, wherein the CAT responds to each request for an RA/SA translation with the requested translation and a corresponding priority flag set to indicate that the requested translation is not a priority translation if the requested translation is not a priority translation, and wherein the RAT stores the requested translation and the corresponding priority flag in the cache.

7. The computing system of claim 6 wherein the CAT does not notify the RAT when the SA of the requested translation changes if the changed translation is not a priority translation as indicated by the corresponding priority flag in the database of the CAT.

8. The computing system of claim 1 wherein each priority translation is a translation that is to be used relatively more frequently, and wherein each translation that is not a priority translation is to be used relatively less frequently.

9. A method performed in combination with a computing system comprising:

a resource for providing resource services, each resource service being accessed by way of a system address (SA);

a device for requesting the resource services of the resource by way of requests, each request including a remote address (RA) corresponding to an SA of the resource; and

a centralized address translator (CAT) having a database of RA/SA translations for the resource and the device, each RA/SA translation in the database corresponding to a respective RA and SA, the CAT for receiving requests from the device for the resource and for each request translating the RA thereof to the corresponding SA according to the corresponding RA/SA translation in the database and forwarding the translated request to the resource;

the device having a remote address translator (RAT) with a cache for storing RA/SA translations as obtained from the CAT,

each RA/SA translation as stored in the cache of the RAT including a priority flag set to indicate whether the translation is a priority translation and each translation including a validity flag set to indicate whether the translation is valid,

the method comprising:

the RAT receiving a request from the device for the resource;

the RAT determining the RA included with the received request;

the RAT determining that an RA/SA translation exists in the cache corresponds to the RA of the received request;

the RAT thereafter determining whether the corresponding priority flag of the existing translation in the cache is set to indicate that such translation is a priority translation, and if so whether the corresponding valid flag of the priority translation in the cache is set to indicate that such priority translation is valid;

if the translation is a valid priority translation, the RAT translating the RA in the received request to the corresponding SA according to the valid priority RA/SA translation in the cache, and forwarding the translated request to the resource without forwarding the request to the CAT; and

if the translation is not a valid priority translation, the RAT forwarding the received request to the CAT for address translation.

10. The method of claim 9 wherein the resource is a data source storing and providing data, each piece of data being accessed by way of a respective SA.

11. The method of claim 9 further comprising:

the RAT requesting a RA/SA translation from the CAT;

the CAT responding to the request for the RA/SA translation with the requested translation and a corresponding priority flag set to indicate that the requested translation is a priority translation; and

the RAT storing the requested translation and the corresponding priority flag in the cache along with the corresponding validity flag.

12. The method of claim 11 further comprising:

the CAT notifying the RAT when the SA of a priority translation changes; and

the RAT setting the validity flag for the changed translation in the cache of the RAT to indicate that such priority translation is no longer valid.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2006
From: WOOTEN, DAVID R.
To: MICROSOFT CORPORATION
Reel/Frame 017591/0135 →
Continuity (1)
Related Publication 20070214339A1 · Sep 13, 2007