System on chip, a computing system, and a stashing method
A system on chip including: a plurality of processors; a system level cache memory that is shared by the plurality of processors; and a cache controller that transmits first data to another chip if an atomic operation has been performed on the first data, when the system level cache memory receives the first data from at least one of the plurality of processors.
1 . A system on chip comprising:
a plurality of processors;
a system level cache memory that is shared by the plurality of processors; and
a cache controller that transmits first data to another chip if an atomic operation has been performed on the first data, when the system level cache memory receives the first data from at least one of the plurality of processors,
wherein when the atomic operation is performed on the first data, the cache controller transmits the first data to the another chip, based on a stash value for the first data, and when the stash value of the first data is larger than a reference value, the cache controller transmits the first data to the another chip.
2 . The system on chip of claim 1 , wherein
the system on chip is a home node that manages the first data, and
the another chip is a remote node that accesses the first data.
3 . The system on chip of claim 2 , wherein
the cache controller transmits the first data to a directory cache memory of the another chip.
4 . The system on chip of claim 1 , wherein
the at least one of the plurality of processors sets an atomic flag in a state field of the first data when the atomic operation is performed on the first data, and
the cache controller determines whether the atomic operation has been performed on the first data, based on the atomic flag of the first data.
5 . The system on chip of claim 1 , wherein
the cache controller determines the stash value based on a signal related to the first data received from the another chip.
6 . The system on chip of claim 5 , wherein
the cache controller performs the following:
incrementing the stash value when the signal related to the first data received from the another chip is a positive signal; and
decrementing the stash value when the signal related to the first data received from the another chip is a negative signal.
7 . The system on chip of claim 6 , wherein
the positive signal includes a read-hit flag indicating that the another chip has read the first data, and
the negative signal includes a read-not-hit flag indicating that the another chip has not read the first data.
8 . A computing system comprising:
a first chip that acquires an address of first data subjected to an atomic operation by the first chip, determines a stash value corresponding to the address, and transmits the first data to a second chip in response to completion of the atomic operation when the stash value is greater than a reference value; and
the second chip that shares the first data with the first chip, and transmits information on whether the first data has been read, to the first chip, in response to the receipt of the first data.
9 . The computing system of claim 8 , wherein
the second chip performs the following:
recording information on whether the first data has been read, in a state field of the first data; and
setting a read-hit flag in a first field of the state field when the first data is read, and setting a read-not-hit flag in a second field of the state field when the first data is not read.
10 . The computing system of claim 9 , wherein
the second chip sets the read-not-hit flag in the second field of the state field, if the second chip has not read the first data until evicting the first data or receiving an invalidation message from the first chip.
11 . The computing system of claim 10 , further comprising:
a third chip that shares the first data with the first chip and the second chip, wherein
the first chip transmits the invalidation message to the second chip in response to the receipt of a write request from the third chip, and updates the stash value for the first data based on the read-hit flag or the read-not-hit flag.
12 . The computing system of claim 8 , wherein
the second chip records information on whether the first data has been read, in a state field of the first data, and
if the first data is evicted from the second chip, the first chip updates the stash value of the first data based on the state field.
13 . The computing system of claim 8 , further comprising:
a third chip that shares the first data with the first chip and the second chip, wherein
the first data is subjected to the atomic operation by the first chip, or is subjected to an atomic operation by the third chip.
14 . A stashing method of a system on chip comprising:
acquiring an address of a cache line subjected to an atomic operation;
incrementing a stash value when the cache line has been read by other system on chips, and decrementing the stash value when the cache line has not been read by the other system on chips; and
determining whether to stash the cache line based on the address and the stash value.
15 . The stashing method of claim 14 , further comprising:
indexing an entry related to the address of the cache line, using a hash function, wherein
determining whether to stash the cache line includes determining whether to stash the cache line, based on the entry and the stash value.
16 . The stashing method of claim 14 , wherein
determining whether to stash the cache line includes stashing the cache line when the stash value is larger than a reference value, and not stashing the cache line when the stash value is not larger than the reference value.
17 . The stashing method of claim 14 , wherein
acquiring the address includes not acquiring an address when the cache line is data in a remote node and acquiring an address when the cache line is data in a home node.
18 . The stashing method of claim 14 , wherein
incrementing a stash value when the cache line has been read by the other system on chips, and decrementing the stash value when the cache line has not been read by the other system on chips include the following:
stashing the cache line in the other system on chips and receiving response signals from the other chips;
determining whether all of the other system on chips have not read the cache line or there is a system on chip in which the cache line has been invalidated without being read among the other system on chips, or not, based the response signals; and
a step of updating the stash value based on the result of the determination.