Patent EP-3396550-A1 (EP)
Inventor: YOUNG TOBY
IPC: G06F9/54
Filed: 2017-04-28
Abstract: There is described an asynchronous event-based instruction processing system (120) for processing conditional instruction records (123) continuously in real-time, each conditional instruction record having one or more associated asynchronous event records (129), which need to be received by the system for an instruction of the conditional instruction record (123) to be executed, the system comprising: an adaptive queuing system (130) for receiving a plurality of asynchronous event records (129) and temporarily storing the same in a queue (202), each asynchronous event record (129) pertaining to an event occurring asynchronously to the generation of the associated conditional instruction record (123) to which the asynchronous event record relates, the adaptive queuing system (130) comprising a queue length monitoring module (204) for monitoring the length of the queue of asynchronous event records and providing queue length information (205) to an event matching processor (128); an instruction processor (122) for receiving a conditional instruction record (123) having a plurality of parameters, the instruction processor being arranged to generate an expected event record (125) using at least some of the parameters (136,138) of the received conditional instruction record (123), wherein the expected event record (125) comprises static parameters (138) which remain static throughout the processing of the conditional instruction record (123) and variable parameters (138) which can vary during the processing of the conditional instruction record (123); the event matching processor (128) for processing each of the received asynchronous event records (129) to determine if they correspond to any of the received conditional instruction records (123); the event matching processor (128) comprising: a plurality of processing resources (242) which operate in parallel and a resource allocation network (240), the resource allocation network being arranged to access a proportional amount of the available processing resources (242) dependent on the size of the queue (202) as determined by the queue length information (205); and an adaptive logic tree data structure (246) arranged to be used concurrently by the processing resources (242) for matching the plurality of received asynchronous event records (129) with the parameters of each of the expected event records (125), the adaptive logic tree data structure (246) comprising a plurality of nodes, including at least one static node representing a static parameter (136) of an expected event record (125) and at least one variable node representing a variable parameter (138) of an expected event record (125); wherein the event matching processor (128) is arranged to indicate to the instruction processor (122) if the events specified by any expected event records (125) have occurred as determined by the presence of one or more correctly matched asynchronous event records (129); and a recycling engine (132) for recycling any asynchronous event records (129) which have been determined using the adaptive tree structure (246) not to match an expected event record (125) at a current moment in time, the recycling engine placing the asynchronous event record (129) back in the queue (202) of the adaptive queuing system (130); wherein the system is arranged to continually create expected event records (125) as conditional instruction records (123) are received and to match these continuously with asynchronous event records (129) present in the system which have not been matched to the expected event records.