1. An incoherency detection module for maintaining data coherency in a memory resource shared by multiple threads running on a processor, comprising: a plurality of global write access memories each storing at least a range of memory resource addresses for a plurality of previous write requests from a respective one of the threads running on said processor; a comparator unit configured to compare a memory resource address of a read request from a thread running on said processor with at least said range of memory resource addresses stored in global write access memories of others of said threads running on said processor; an outstanding request determination unit configured to determine, if the result of comparison by said comparator unit indicates that the memory resource address of said read request at least falls within said range of memory resource addresses, whether any outstanding write requests exist for said others of said threads; and a request barrier unit configured to issue a request barrier which prevents said read request from accessing said memory resource if said outstanding request determination unit determines that an outstanding write request exists.