Cache coherence is an important and well-known problem in shared-memory multiprocessors. When each processor in a multiple processors maintains a locally cached copy of a memory block, any local modification of the cached copy can result in a globally inconsistent view of memory. The directory-based scheme is an attractive approach to solve the cache coherence problem in a large-scale shared-memory multiprocessor. However, the existing directory based schemes have some problems such as the enormous storage overhead for a directory, the long invalidation latency, the heavy network congestion, and the low scalability.
For resolving these problems, we propose a new directory-based cache coherence scheme, called BIND scheme, which is suitable for building scalable, shared-memory multiprocessors. The BIND scheme uses a form of the write-update by means of a memory update policy. The scheme is a class of distributed directory schemes, since the information for the cache coherency is decentralized and distributed among the cache entries. Each directory entry for a given memory block is made up of a number-balanced binary tree (NBBT) structure. The NBBT has several properties to efficiently maintain the directory for the cache consistency such that the shape is unique, the maximum depth is [$log_2n$], and the tree is semi-full binary tree in the binary tree with n nodes. Therefore, the BIND scheme can reduce the storage overhead, the network traffic, and the write latency and can ensure the high scalability in the scalable, shared-memory multiprocessors.
In this thesis, we also develop a cache coherence protocol which and efficiently maintain the consistency of the cached copies. certifying its efficiency, compare the BIND scheme with the existing directory schemes with respect to the storage overhead, the network traffic, the invalidation latency, and the memory access latency.