Input/output computer system including hardware assisted autopurge of cache entries associated with pci address translations
Abstract
A computing system includes a processor and a memory unit that stores program instructions. The system purges an entry from an address translation cache in response to the processor executing the program instructions to perform issuing, via an operating system running on the computing system, a command indicating a request to perform an I/O transaction requiring a translation entry. A host bridge monitors a total data length of the address translation entry to be transferred during the I/O transaction. An address translation entry is selected from an address translation table, loaded into the address translation cache, and data corresponding to the I/O transaction is transferred using the selected address translation entry. The host bridge automatically purges the selected address translation entry from the address translation cache in response to determining the transferred amount of data matches the total data length for the address translation entry.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method of purging an address translation cache included in a computing system, the method comprising:
determining, via a host bridge, an expected amount of data to be transferred using an address translation entry during an I/O transaction; loading the address translation entry into the address translation cache, and transferring data corresponding to the I/O transaction using the selected address translation entry; and automatically purging the selected address translation entry from the address translation cache, via the host bridge, in response to determining the expected amount of data has been transferred amount of data.
2 . The method of claim 1 , wherein the expected amount of data includes a total data length of the address translation entry.
3 . The method of claim 2 , wherein the determining the expected amount of data has been transferred comprises:
monitoring, via the host bridge, the amount of data transferred using the selected address translation entry; and determining that the transferred amount of data matches the total data length for the address translation entry.
4 . The method of claim 3 , wherein the monitoring includes operating a data counter to count the amount of data transferred using the address translation entry.
5 . The method of claim 4 , wherein the host bridge performs the operations of:
setting the data counter to an initial value prior to transferring the data for the address translation entry; decrementing the data counter each time the data is transferred using the address translation entry; and automatically purging the selected address translation entry without receiving a purge command from firmware when the data counter reaches a final value indicating the I/O transaction is complete.
6 . The method of claim 5 , wherein the initial value equals the total data length and the final value equal zero.
7 . The method of claim 2 , wherein determining the total data length of the address translation entry to be transferred during the I/O transaction includes communicating the total data length from firmware to the host bridge.
8 . The method of claim 2 , wherein determining the total data length of the address translation entry to be transferred during the I/O transaction includes accessing, via the host bridge, a memory area containing a value indicating the total data length, and wherein the data length is part of the address translation entry itself
9 . The method of claim 8 , wherein the determining the total data length of the address translation entry includes:
setting up the address translation table, via firmware, in response to the command; determining the total data length in response to setting up the address translation table; writing, via the firmware, the value indicative of the total data length into the memory area; and accessing, via the host bridge, the memory area and reading the value to obtain the total data length.
10 . A computer program product, the computer program product comprising a computer readable storage medium having program instructions for purging an address translation cache included in a computing system, the program instructions executable by a processor to perform operations of:
issuing, via an operating system running on the computing system, a command indicating a request to perform an input/output (I/O) transaction requiring one or more address translation entries; determining, via a host bridge, a total data length of the address translation entry to be transferred during the I/O transaction; selecting an address translation entry from an address translation table, loading the address translation entry into the address translation cache, and transferring data corresponding to the I/O transaction using the selected address translation entry; monitoring, via the host bridge, the amount of data transferred using the selected address translation entry; and automatically purging the selected address translation entry from the address translation cache, via the host bridge, in response to determining the transferred amount of data matches the total data length for the address translation entry.
11 . The computer program product of claim 10 , wherein the monitoring includes operating a data counter to count the amount of data transferred using the address translation entry.
12 . The computer program product of claim 11 , wherein the host bridge performs the operations of:
setting the data counter to an initial value prior to transferring the amount of data; decrementing the data counter each time data is transferred using the address translation entry; and automatically purging the selected address translation entry without receiving a purge command from firmware when the data counter reaches a final value indicating the I/O transaction is complete.
13 . The computer program product of claim 12 , wherein the initial value equals the total data length and the final value equal zero.
14 . The computer program product of claim 10 , wherein determining the total data length of the address translation entry to be transferred during the I/O transaction includes communicating the total data length from firmware to the host bridge.
15 . The computer program product of claim 10 , wherein determining the total data length of the address translation entry to be transferred during the I/O transaction includes accessing, via the host bridge, a memory area containing a value indicating the total data length, and wherein the data length is part of the address translation entry itself
16 . The computer program product of claim 15 , wherein the determining the total data length of the address translation entry includes:
setting up the address translation table, via firmware, in response to the command; determining the total data length in response to setting up the address translation table; writing, via the firmware, the value indicative of the total data length into the memory area; and accessing, via the host bridge, the memory area and reading the value to obtain the total data length.
17 . A computing system comprising a processor and a memory unit that stores program instructions, the system configured to purge an entry from an address translation cache in response to the processor executing the program instructions to perform:
determining, via a host bridge, an expected amount of data to be transferred using an address translation entry during an I/O transaction; loading the address translation entry into the address translation cache, and transferring data corresponding to the I/O transaction using the selected address translation entry; and automatically purging the selected address translation entry from the address translation cache, via the host bridge, in response to determining the expected amount of data has been transferred amount of data.
18 . The computer system of claim 17 , wherein the expected amount of data includes a total data length of the address translation entry.
19 . The computer system of claim 18 , wherein the determining the expected amount of data has been transferred comprises:
monitoring, via the host bridge, the amount of data transferred using the selected address translation entry; and determining that the transferred amount of data matches the total data length for the address translation entry.
20 . The computer system of claim 19 , wherein the monitoring includes operating a data counter to count the amount of data transferred using the address translation entry.Join the waitlist — get patent alerts
Track US2018203817A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.