US2018203817A1PendingUtilityA1

Input/output computer system including hardware assisted autopurge of cache entries associated with pci address translations

Assignee: IBMPriority: Jun 27, 2016Filed: Mar 16, 2018Published: Jul 19, 2018
Est. expiryJun 27, 2036(~10 yrs left)· nominal 20-yr term from priority
G06F 13/4027G06F 12/0891G06F 13/28G06F 12/1027G06F 2212/60G06F 12/1009
56
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.