Coherent translation look-aside buffer
First Claim
1. A method for ensuring coherency of address translation information stored in a translation look-aside buffer (TLB) disposed in a first input/output (I/O) bridge of a multiprocessor computer system comprising a plurality of interconnected processors, and one or more shared memories coupled to the processors, the method comprising the steps of:
- storing address translation information in the one or more shared memories;
providing one or more directories configured to maintain coherency status of the address translation information stored in the one or more shared memories;
receiving at a selected directory a request from the first I/O bridge for particular address translation information stored at the one or more shared memories;
granting the first I/O bridge exclusive ownership to the requested address translation information stored at the one or more shared memories, at least in part, by updating the coherency status at the selected directory;
sending the first I/O bridge a copy of the requested address translation information; and
storing the copy of the requested address translation information at the TLB.
4 Assignments
0 Petitions
Accused Products
Abstract
The invention is a coherent translation look-aside buffer (TLB) for use in an input/output (I/O) bridge of a symmetrical multiprocessing (SMP) system. The contents of the TLBs may be kept in one of two possible states: exclusive or invalid. When the I/O bridge receives a TLB entry for storage in its TLB, the state of that entry is exclusive. Specifically, the TLB is considered the exclusive owner of the respective TLB entry. The exclusively owned TLB entry may be used by the TLB to translate I/O addresses to system addresses. If some other agent or entity of the SMP system seeks access to the TLB entry (e.g., for purposes of executing a read or write operation), the TLB is notified and the state of the TLB entry transitions to invalid. With the TLB entry in the invalid state, the TLB can no longer use the TLB entry for translating I/O addresses to system addresses.
-
Citations
27 Claims
-
1. A method for ensuring coherency of address translation information stored in a translation look-aside buffer (TLB) disposed in a first input/output (I/O) bridge of a multiprocessor computer system comprising a plurality of interconnected processors, and one or more shared memories coupled to the processors, the method comprising the steps of:
-
storing address translation information in the one or more shared memories;
providing one or more directories configured to maintain coherency status of the address translation information stored in the one or more shared memories;
receiving at a selected directory a request from the first I/O bridge for particular address translation information stored at the one or more shared memories;
granting the first I/O bridge exclusive ownership to the requested address translation information stored at the one or more shared memories, at least in part, by updating the coherency status at the selected directory;
sending the first I/O bridge a copy of the requested address translation information; and
storing the copy of the requested address translation information at the TLB. - View Dependent Claims (2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14)
determining whether one or more processors or one or more other I/O bridges have a copy of the address translation information requested by the first I/O bridge; and
instructing the one or more processors and the one or more other I/O bridges to invalidate their respective copies of the requested address translation information.
-
-
3. The method of claim 2 further comprising the steps of:
-
receiving an instruction at the first I/O bridge to invalidate a designated portion of the address translation information stored at the I/O bridge'"'"'s TLB;
invalidating the designated portion of address translation information from the TLB;
sending an invalidation acknowledgement.
-
-
4. The method of claim 3 wherein, in response to the step of invalidating, the first bridge is blocked from using the designated portion of address translation information to translate an I/O address.
-
5. The method of claim 4, wherein the coherency status includes ownership status that is one of none, shared or exclusive, and wherein the step of granting further comprises the step of changing the ownership status for the address translation information requested by the first I/O bridge as stored at the one or more directories to exclusive.
-
7. The method of claim 1 wherein the multiprocessor computer system is free from having to execute an I/O TLB invalidate all (TBIA) operation to flush address translation information from the I/O bridge'"'"'s TLB.
-
8. The method of claim 1 wherein the multiprocessor computer system is free from having to execute an I/O TLB invalidate sequence (TBIS) operation to flush address translation information from the I/O bridge'"'"'s TLB.
-
9. The method of claim 1 wherein the I/O bridge includes address translation logic and the TLB is accessed by the address translation logic to translate an I/O domain address to a system address.
-
10. The method of claim 1 wherein the address translation information stored at the TLB translates I/O domain addresses to system addresses.
-
11. The method of claim 10 wherein the address translation information is in the form of one or more Page Table Entries (PTEs).
-
13. The method of claim 1 wherein the address translation information is in the form of one or more Page Table Entries (PTEs).
-
14. The method of claim 5 wherein the one or more directories are further modified so as to store an identifier (ID) of the first I/O bridge that requested exclusive ownership of the address translation information.
-
6. An input/output bridge for use in a distributed shared memory computer system comprising a plurality of interconnected processors, one or more shared memories that are coupled to the processors and are configured into a plurality of blocks, and one or more directories for maintaining coherency status over information in the shared memories, wherein each memory block has a corresponding system address, the I/O bridge configured to provide one or more I/O devices with access to information in the shared memories, the I/O devices using I/O addresses, the I/O bridge comprising:
-
at least one translation look-aside buffer (TLB) configured to store information for translating I/O addresses to system addresses; and
a controller coupled to the TLB, the controller configured to;
request, from a selected directory, exclusive ownership over translation information to be stored in the TLB; and
invalidate translation information stored in the TLB in response to a request from the computer system, as initiated by one of the one or more directories. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
a first region that interfaces to one or more of the processors; and
a second region having one or more I/O ports.
-
-
16. The I/O bridge of claim 15 wherein the one or more I/O ports of the I/O bridge are configured in accordance with one of the Peripheral Component Interface (PCI), PCI-Extended (PCI-X) and Accelerated Graphics Port (AGP) bus standards.
-
17. The I/O bridge of claim 15 wherein the second region further includes one or more Direct Memory Access (DMA) controllers configured to manage read and write operations initiated by the one or more I/O devices.
-
18. The I/O bridge of claim 15 wherein the I/O bridge is an Application Specific Integrated Circuit (ASIC).
-
19. The I/O bridge of claim 6 further comprising a plurality of windows, each window configured to translate a range of I/O domain addresses to system addresses.
-
20. The I/O bridge of claim 19 wherein each window is configured in one of scatter-gather mapped and directed-mapped modes.
-
21. The I/O bridge of claim 20 wherein the at least one TLB is disposed in a selected window configured in scatter-gather mapped mode.
-
22. The I/O bridge of claim 6 wherein the information for translating I/O addresses to system address is in the form of Page Table Entries (PTEs).
-
23. The I/O bridge of claim 6 wherein
the computer system includes one or more directories for ownership status for address translation information, and the one or more directories, in response to the request issued by the controller, change the ownership status of the requested translation information to exclusive. -
24. The I/O bridge of claim 6 wherein the controller issues an acknowledgment upon invalidating translation information.
-
12. The method of claim I further comprising the steps of:
-
receiving an instruction at the first I/O bridge to invalidate a designated portion of the address translation information stored at the I/O bridge'"'"'s TLB;
invalidating the designated portion of address translation information from the TLB; and
sending an invalidation acknowledgment.
-
-
25. An input/output (I/O) bridge for use in a computer system having one or more processors, one or more shared memories that are accessible to the one or more processors, the one or more shared memories storing address translation information, and one or more directories for maintaining coherency status over information in the shared memories, the I/O bridge comprising:
-
means for communicating with one or more I/O devices coupled to the I/O bridge;
means for communicating with the one or more shared memories;
means for requesting, of a particular one of the one or more directories, exclusive ownership over selected address translation information stored at the one or more shared memories; and
means for storing, at the I/O bridge, the selected address translation information over which the I/O bridge obtained exclusive ownership. - View Dependent Claims (26, 27)
-
Specification