Parallel computers are promising approaches for solving large scale time-consuming problems. Among them, distributed shared memory multiprocessors have good performance and easy programmability.
In distributed shared memory multiprocessors, caches are used to reduce remote memory access latency. However, cache incoherences occur with multiple copies. There are two kinds of solutions for this: snooping protocols and directory-based protocols. Directory-based protocols have better scalability than snooping protocols.
Unfortunately, there are many directory-based protocols but there does not exist the best one for all cases. For that reason, it is a good idea that the system supports several protocols among which users select ones depending on the cases.
However, a directory-based protocol is too complex to implement in hardware even in its simple form. Moreover, the complexity increases very rapidly with small extensions to the simple form.
In this thesis, a modular and layered design method for the directory-based protocols is suggested. This method makes it easy and fast to develop not only one protocol but also several various protocols simultaneously.
Four protocols are implemented on PRISM(Portable and Reconfigurable Interface for Shared Memory) with layered design. In the course of the implementation, it is confirmed that design time, design difficulty, and debugging efforts are reduced with small burden of the modular design.
In this thesis, deadlock problems and the semantics of the protocols are considered, too.