Efficient polling technique using cache coherent protocol
First Claim
1. An efficient polling technique in a computer system comprising a processor having a local cache, said processor being connected to a device attached to an input/output bus, said polling technique comprising the steps of:
- assigning a shared cache line in the local cache for shared use by the processor and the device;
passing an address of the shared cache line to the device by software running on the processor;
storing by the device the address of the shared cache line in a register space of the device;
setting a flag in the shared cache line in the local cache by the software running on the processor to initiate a polling loop between the processor and the cache upon dispatching a task to be performed by the device, the polling loop between the processor and the cache being independent of the input/output bus;
upon completion of the dispatched task by the device, clearing the flag in the shared cache line by the device; and
terminating the polling loop between the processor and the cache by the software upon detecting that the flag in the shared cache line has been cleared.
1 Assignment
0 Petitions
Accused Products
Abstract
An efficient polling technique to attain improved system performance preserves the concept of polling, but instead of polling across system buses to the device, a poll is made within the processor'"'"'s cache structure, which is typically internal to the processor complex or attached on a local isolated bus. The polling status location is mapped in the cachable address space of the processor. Hence, the polling occurs to a normal cachable location. When the device completes its task, it signals to the polling loop by invalidating the cache line corresponding to the poll location. The next time software tries to read the status value, the processor misses in its cache and automatically reloads the updated status value from the device. This causes the polling loop to exit and normal processing continues. The only bus traffic that results is that which is issued by the device to signal cache line invalidation and a subsequent processor initiated cache line reload. Hence, the bus is totally available for all agents while the processor is within the polling loop.
46 Citations
5 Claims
-
1. An efficient polling technique in a computer system comprising a processor having a local cache, said processor being connected to a device attached to an input/output bus, said polling technique comprising the steps of:
-
assigning a shared cache line in the local cache for shared use by the processor and the device; passing an address of the shared cache line to the device by software running on the processor; storing by the device the address of the shared cache line in a register space of the device; setting a flag in the shared cache line in the local cache by the software running on the processor to initiate a polling loop between the processor and the cache upon dispatching a task to be performed by the device, the polling loop between the processor and the cache being independent of the input/output bus; upon completion of the dispatched task by the device, clearing the flag in the shared cache line by the device; and terminating the polling loop between the processor and the cache by the software upon detecting that the flag in the shared cache line has been cleared. - View Dependent Claims (2, 3)
-
-
4. A computer system implementing a cache polling technique comprising:
-
a central processing unit running a software program; an adapter connected to an input/output bus and communicating with said central processing unit, said adapter being responsive to the software for performing dispatched tasks; a cache connected to said central processing unit, said software assigning a cache line for shared use by said central processor unit and said adapter and passing an address of the shared cache line to said adapter; said adapter storing the address of the shared cache line in a register space of the adapter, the software setting a flag in the shared cache line in the local cache to initiate a polling loop between the processor and the cache upon dispatching a task to be performed by said adapter, the polling loop between the processor and the cache being indpendent of the input/output bus, and upon completion of the dispatched task by said adapter, said adapter clearing the flag in the shared cache line and the software terminating the polling loop between the processor and the cache upon detecting that the flag in the shared cache line has been cleared. - View Dependent Claims (5)
-
Specification