A task obtained by a communications processor is decomposed into one or
more requests that form a request group. The requests of the request
group are sent to main memory and responses to those requests are
expected. There may be requests for a plurality of request groups being
processed concurrently. However, responses to the request groups are to
be returned to the communications processor in the order in which the
request groups were sent from the communications processor. To ensure
this ordering, dependencies between the request groups are tracked by
hardware coupled to the communications processor.