1. A multiprocessor system comprising: a plurality of processors in operable communication with an address manager and a memory controller; a unified cache in operable communication with the address manager, wherein the unified cache comprises: a plurality of cache addresses; a cache data corresponding to each cache address; a data mask corresponding to each cache data; a plurality of cache agents corresponding to each cache address; and a cache state corresponding to each cache agent wherein the unified cache stores only one valid copy of the cache data for the plurality of cache agents; wherein the unified cache maintains the cache address associated with each processor for the cache data; wherein the unified cache maintains a cache agent and a corresponding cache state associated with each processor for each cache data; wherein the cache state is one of following: modify; exclusive; shared; or invalid; wherein the unified cache executes a cache store instruction comprising determining the cache state of each cache agent corresponding to a cache line and responsively storing a new cache data the cache line comprising: a first cache address; a first cache data corresponding to the first cache address; a first data mask corresponding to the first cache data; at least a first and second cache agents corresponding to the first cache address; and at least a first and second cache states corresponding to the at least first and second cache agents, respectively; wherein the unified cache executes a cache fetch instruction comprising determining the cache state of each cache agent corresponding to the cache line and responsively returning the cache data or a predefined initialized data pattern, wherein the unified cache is configured to: in response to receiving a cache store command, checking a cache state of a cache line of new cache data from the cache store command; if the cache state of the cache line is modified, verifying that the cache state of all other caching agent is invalid before storing the new cache data; if the cache state of the cache line is shared and the cache state of all other caching agents are invalid, storing the new data; if the cache state of the cache line is shared and the cache state of all other caching agents is not invalid, verifying that the cached data and the data to be stored are the same; in response to receiving a cache fetch command, checking the cache state of a requested cache line; if the cache state is not invalid, returning requested cached data; if the cache state is invalid, returning random data or a predefined initialized data pattern; in response to receiving a data verification command, verifying that the cache data matches data given if none of the cache states of all other caching agents are modify and at least one cache state of the other caching agents is not invalid; in response to receiving a state verification command, checking that if the cache state of one of the caching agents is modify or exclusive the cache states of the other caching agents must be invalid; and if the cache state of one of the caching agents is shared, checking that the cache states of the other caching agents is shared or invalid.