A
data processing apparatus and method are provided for performing
hazard detection in respect of a series of access requests issued by
processing circuitry for handling by one or more slave devices. The series of access requests include one or more write access requests, each write access request specifying a write operation to be performed by an addressed slave device, and each issued write access request being a pending write access request until the write operation has been completed by the addressed slave device.
Hazard detection circuitry comprises a pending write
access history storage having at least one buffer and at least one counter for keeping a
record of each pending write access request. Update circuitry is responsive to
receipt of a write access request to be issued by the
processing circuitry, to perform an update process to identify that write access request as a pending write access request in one of the buffers, and if the identity of another pending write access request is overwritten by that update process, to increment a count value in one of the counters. On completion of each write access request by the addressed slave device, the update circuitry performs a further update process to remove the
record of that completed write access request from the pending write
access history storage.
Hazard checking circuitry is then responsive to at least a subset of the access requests to be issued by the
processing circuitry, to reference the pending write
access history storage in order to determine whether a
hazard condition occurs. The manner in which the update circuitry uses a combination of buffers and counters to keep a
record of each pending write access request provides
improved performance with respect to known prior art techniques, without the hardware cost that would be associated with increasing the number of buffers.