Method and Apparatus for Direct Application-Level Control of Multiple External Asynchronous Events
Publication Date: 2014-Oct-14
The IP.com Prior Art Database
Apparatus is disclosed that cost-effectively and saleable enables an application to directly control a multitude of external facilities and their corresponding asynchronous inputs in real time without OS involvement.
Page 01 of 4
-Level Control of Multiple External Asynchronous Events
Level Control of Multiple External Asynchronous Events
As today's application programs increase in capability, they have become capable of performing a wider variety of tasks once performed only by a privileged program such as an operating system. Such tasks include interacting with programs executing on other processors, responding to and controlling facilities external to the processor, monitoring the performance of the processor, optimizing processor configuration based on performance data, and many others. Many of these tasks require real-time response to input signals which may become active asynchronously at random times, so there is no time for higher-level software to become involved. Thus the events must be routed directly to the application as they occur, even in the case where multiple events occur all at the same time.
References  and  disclosed a method for an application to control a Performance Monitor facility within a processor. This prior art enabled the application to be directly notified of performance monitor events that can occur asynchronously at any time, without any delay caused by intermediate-level software such as an operating system. However, the scheme did not enable the application to respond to or control events associated with functions unrelated to the Performance Monitor. Of course one could implement multiple sets of facilities such as the one disclosed, where each one pertained to a given type of function, but this would require an entire new set of logic for each type of function handled, rendering the control of multiple events prohibitively expensive.
Thus what is disclosed here is a streamlined and scalable method that enables an application to simultaneously control an unlimited set of asynchronous events, any of which may occur at any time or all at the same time. Since some events may be more critical than others, the scheme provides the application with the ability to postpone the handling of less-critical tasks in favor of most-critical tasks as well as to process all tasks individually as they occur if desired.
The following application-level registers are disclosed. (Existing schemes provide similar registers, the registers are dedicated to a single type of facility (e.g. Performance Monitor) and thus do not cost-effectively scale up to control multiple events and do not provide for application-level control of event-handling priorities. In the description below, the term "Event-Based Branch" (EBB) is used to refer to an asynchronous branch within an application program that occurs when an asynchronous event occurs. EBB's are thus similar to interrupts, but they do not involve any operating system involvement and thus cause a much smaller performance impact than an interrupt. See  for additional information related to EBB's.
EBBHR- "Event-Based Branch Handler" register. This register provides the address of the applicat...