| Chandra, S., Richards, B., and Larus, J. R. (1996). Teapot: Language Support for Writing Memory Coherence Protocols. In Proc. of SIGPLAN Conference on Programming Language Design and Implementation. |
....Finally, as the stale time columns indicate, Volume Leases never supplies stale data to clients. A. 4 Protocol verification To verify the correctness of the consistency algorithm, we implemented a variation of the volume leases algorithm described in Figures 3 and 4 using the Teapot system [4]. The Teapot version of the algorithm differs from the one described in the figures in two ways. First, the Teapot version uses a simplified reconnection protocol for Unreachable clients. Rather than restore a client s set of object leases, the Teapot version clears all of the client s object ....
S. Chandra, B. Richards, and J. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In SIGPLAN Conference on Programming Language Design and Implementation (PLDI), May 1996.
....In contrast, general purpose languages like C, C , and Java have language features (complex pointer manipulation, exceptions etc. that are difficult to translate into the specification language of the model checkers [18, 22, 11, 26] Support for Abstraction Other domain specific languages [8, 3, 4] extract a single model from the program and use it for model checking. To avoid the state space explosion associated with detailed models, these languages have been designed to encode only the control structure of the program the data manipulation is implemented externally in C. In contrast, ....
....to find some hard to find race conditions. If n is the number of bits needed to encode a state, then 2 n is an upper bound. Automatic Model Extraction. To avoid the problems with model extraction by hand, some researchers have extracted the models automatically from the source code. Teapot [8] is a domain specific language for implementing software cache coherence. It extracts a model that can be used by the Murphi model checker [13] Promela [3] is a language for implementing layered protocol. Its compiler generates model that can be used by the Spin model checker. Esterel [4] is a ....
[Article contains additional citation context not shown here]
S. Chandra, B. E. Richards, and J. R. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In Programming Languages Design and Implementation, 1996.
....Then, the ESP compiler generates models (pgm[1 N] SPIN) that can be used by a model checker to debug and extensively test the firmware. Finally, the ESP compiler generates optimized C code (pgm.C) that can be compiled into firmware that runs on the device. Other domain specific languages [14, 28, 12] that use model checkers for testing have focused on expressing the control portion of the program. They leave data handling to be performed externally using C. In contrast, ESP is designed not only to express the control structure in a modular fashion but also to simplify data handling. This ....
....the compiler generates both models that can be used for debugging using a model checker as well as executable code. However, they have been designed to support event driven state machines programming for different domains. Esterel [14] is designed to model the control of reactive systems. Teapot [28] is designed for writing coherence protocols. Promela [12] is designed to implement layered network protocols. One of the main differences between ESP and these languages is that these languages focus on the control portion of the program; the data structures have to be handled externally using ....
[Article contains additional citation context not shown here]
S. Chandra, B. E. Richards, and J. R. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In Proceedings of the Conference on Programming Languages Design and Implementation, Philadelphia, Pennsylvania, May 1996.
....user protocol for hand coded protocols) must explicitly manage handler continuations. Buffer allocation depends on the global system state while continuations depend on the local state. Therefore, it is easier to solve this problem without support from the messaging subsystem. Indeed, Teapot [CRL96] a high level pro tocol language and compiler developed for Tempest, supports blocking handlers. It hides the com plexity of managing the handler continuations in the runtime library without adverse performance effects. 69 ers and the maximum sender overflow queue, then the deadlock ....
Satish Chandra, Brad Richards, and James R. Larus. Teapot: Language support for writing memory coherence protocols. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation (PLDI), May 1996.
....Finally, as the stale time columns indicate, Volume Leases never supplies stale data to clients. 3.1. 4 Protocol verification To verify the correctness of the consistency algorithm, we implemented a variation of the volume leases algorithm described in Figures 3 and 4 using the Teapot system [4]. The Teapot version of the algorithm differs from the one described in the figures in two ways. First, the Teapot version uses a simplified reconnection protocol for Unreachable clients. Rather than restore a client s set of object leases, the Teapot version clears all of the client s object ....
S. Chandra, B. Richards, and J. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In SIGPLAN Conference on Programming Language Design and Implementation (PLDI), May 1996.
....of the Fluke OS [29] All these studies found that the model checking verifier was able to find some hard to find race conditions. Automatic Model Extraction. To avoid the problems with model extraction by hand, some researchers have extracted the models automatically from the source code. Teapot [9] is a domain specific language for implementing software cache coherence. It extracts a model that can be used by the Murphi model checker [13] Promela [3] is a language for implementing layered protocol. Its compiler generates model that can be used by the SPIN model checker. Esterel [4] is ....
....of the related work in this area. As described in Section 4.1, model checkers have been used to debug system software. Some [8, 15, 26, 29, 19, 17, 23, 11] have focused on debugging programs written in general purpose languages like C, C and Java. Others have proposed domain specific languages [9, 3, 4] that have been designed with model checking in mind, and therefore, allow model checking to be more e#ective. Meta level Compilation [10, 16] provides a framework for extending a compiler with application specific code that can be used to statically check certain properties of that application. ....
[Article contains additional citation context not shown here]
S. Chandra, B. E. Richards, and J. R. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In Programming Languages Design and Implementation, 1996.
....external interface for both SPIN and C code. It uses the channel mechanism to support external interfaces. This is di#erent from the traditional approaches of either allowing C code to be directly embedded in the program [6, 2] or allowing functions that are implemented externally to be called [3, 8]. Using channels to provide external interfaces has a number of advantages. First, ESP processes often block on external events like arrival of user request or network packets. Using channels allows a process to use the existing constructs to block on external events. Second, external code can ....
....concurrent programs that run on a parallel machine. Java [1] like most other programming languages, provides user level threads to express concurrency. All these systems are fairly expressive and hard to be compiled e#ciently for devices. Code Generation Verification. A number of other languages [3, 8, 2] have taken a similar approach of generating e#cient executables as well as specifications that can be used by a verifier. However, they di#er from ESP significantly. Esterel [3] was designed to model the control of synchronous hardware and has been used recently to e#ciently implement a subset ....
[Article contains additional citation context not shown here]
S. Chandra, B. E. Richards, and J. R. Larus. Teapot: Language support for writing memory coherence protocols. In Programming Language Design and Implementation, 1996.
....o:data NULL send(ACK INV ALIDATE; o:id) to server Fig. 4. The Volume Leases Protocol (Client Side) A. 4 Protocol verification To verify the correctness of the consistency algorithm, we implemented a variation of the volume leases algorithm described in Figures 3 and 4 using the Teapot system [4]. The Teapot version of the algorithm differs from the one described in the figures in two ways. First, the Teapot version uses a simplified reconnection protocol for Unreachable clients. Rather than restore a client s set of object leases, the Teapot version clears all of the client s object ....
S. Chandra, B. Richards, and J. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In SIGPLAN Conference on Programming Language Design and Implementation (PLDI), May 1996.
....facilities are offered to ease protocol programming: messages are kept in order and temporary states due to Mach 3 kernel and message waiting between two states are eliminated. As protocols are interpreted, the environment is very slow. Moreover no protocol verification is proposed. TeaPot [3] is a SVM programming environment. Protocols are described as automata in a dedicated language. Each state describes messages that can be received and actions to be done. The environment offers some facilities: undesired message wait queue, a continuation mechanism to factorize intermediate ....
S. Chandra, B. Richards, and J. R. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In SIGPLAN Conference on Programming Language Design and Implementation (PLDI), May 1996.
....by the Wind Tunnel project [13] This work focused on providing support for irregular applications by coding application specific protocols, one of which implemented a record replay barrier. Later work in the same project resulted in a protocol 30 implementation language called Teapot [7]. This work is similar to ours in that both are trying to expose protocol handles to application or library builders. However, the Teapot language is more complex. More lines of Teapot code are required to implement a sequentially consistent invalidate protocol than the corresponding protocol ....
S. Chandra, B. Richards, and J. R. Larus, "Teapot: Language Support for Writing Memory Coherence Protocols," in SIGPLAN Conference on Programming Languages Design and Implementation, 1996.
....of the coherence protocol. Such integration works well when one considers these protocols individually. Unfortunately, combining multiple such predictors into a single protocol can lead to an explosive number of interactions and states, which can make the resulting protocol bulky and hard to debug [21]. More critically, extending a bulky protocol with other kinds of speculation becomes even harder. In contrast, Cosmos captures the predictors for directed optimizations in a 169 single predictor. Figure 6 9 shows the coherence message signatures that trigger the dynamic self invalidation and ....
Satish Chandra, Brad Richards, and James R. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation (PLDI), May 1996.
....developed using the refinement rules, and the efficiency of model checking the rendezvous protocol compared to the efficiency of modelchecking the asynchronous protocol. Finally, Section 6 presents a discussion of buffering requirements and concludes the paper. Related Work Chandra et al. [3] use a model based on continuations to help reduce the complexity of specifying the coherency protocols. The specification can then be model checked and compiled into an efficient object code. In this approach, the protocol is still specified at a low level; though rendezvous communication can be ....
S. Chandra, B. Richards, and J. R. Larus. Teapot: Language support for writing memory coherency protocols. In SIGPLAN Conference on Programming Language Design and Implementation, May 1996.
....shared memory protocols efficiently. The Tempest [29] 30] project at the University of Wisconsin Madison showed that substantial performance improvements could be obtained on many programs by selecting a shared memory protocol which matched the needs of the application, and developed the Teapot [7] language to simplify the process of implementing different shared memory protocols. The Tempest effort also explored a number of methods of implementing flexible shared memory, including the Blizzard systems which were mentioned earlier and the Typhoon systems, which explored the performance ....
Satish Chandra, Brad Richards, and James R. Larus. Teapot: language support for writing memory coherence protocols. In SIGPLAN Conference on Programming Language Design and Implementation (PLDI), May 1996.
....like the RPP is that writing application specific coherence protocols in software can already be a challenge; implementing hardware designs seems even tougher. Researchers at Wisconsin have developed a language called Teapot which aids programmers in writing and verifying coherency protocols [10]. We can circumvent the application specific hardware hurdle by implementing a VHDL backend for Teapot. This would allow the automatic synthesis of FPGA based hardware from a Teapot specification. Figure 1 outlines a potential design flow for the design of an FPGA based protocol processor. First, ....
Satish Chandra, Brad Richards, and James R. Larus. Teapot: Language Support for Writing Memory Coherency Protocols. SIGPLAN Conference on Programming Language Design and Implementation (PLDI), May 1996.
....compared to the efficiency of model checking the asynchronous protocol. Section 7 presents a discussion on buffering requirements of the refined protocol and its impact on the forward progress made by the asynchronous protocol. Finally, Section 8 concludes the paper. 2 Related Work Chandra et al. [CRL96] use a model based on continuations to help reduce the complexity of specifying the coherency protocols. The specification can then be model checked and compiled into an efficient object code. In this approach, the protocol is still specified at a low level; though rendezvous communication can be ....
Satish Chandra, Brad Richards, and James R. Larus. Teapot: Language support for writing memory coherency protocols. In SIGPLAN Conference on Programming Language Design and Implementation, May 1996.
....(id,v)jsm] hWbAck b ,ai id Cell(a,v,T[ffl,sm] Cell(a, T[ffl,Wb w (id,v)jsm] hWbAck b ,ai id Cell(a,v,T[ffl,sm] Cell(a, T[ffl,Wb w (id,v) hWbAckw ,ai id Cell(a,v,C[id] Cell(a,v,T[ffl,ffl] Cell(a,v,C[ffl] Figure 6. Integration of Cachet Base and Cachet WriterPush the Teapot method [2] where the burden of ensuring the correctness and liveness of the system falls on the programmer. In Cachet, a store operation can be performed without the exclusive ownership, which effectively allows multiple writers for the same address simultaneously. This can reduce the average latency for ....
S. Chandra, B. Richard, and J. R. Larus. Teapot: Language support for writing memory coherence protocols. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, May 1996.
....the use and performance of purely multithreaded servers, even though several important high performance servers, e.g. AltaVista, have successfully adopted this approach. There has been a lot of research in the runtime systems communityon improving the performance of massively threaded applications [9, 15] by reducing the storage management overhead. However, these approaches have not yet been applied to general purpose operating systems. In this paper, we will concentrate on providing support for an event based control model. 3.3 Scheduling and resource management Most operating systems treat a ....
S. Chandra, B. Richards, and J. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In Proc. of the ACM Symp. on Prog. Lang. Design and Impl., Philadelphia, PA, May 1996.
....while more efficient than passing all data through the server, introduce potential circular dependencies. The cache coherence protocol in xFS is similar to those seen in hardware DSM systems such as DASH [32] and Alewife [30] But even minor modifications to these protocols can lead to subtle bugs [9]. Also, aspects of the cluster file system require protocol modifications that do not apply to DSM systems. For example, xFS must maintain reliable data storage in the face of node failures. A client must therefore write its dirty data to storage servers before it can forward the data to another ....
....leading to the error. The next subsection provides an example of such a case. 3. 3 Implementing Cache Coherence with Formal Methods After several unsuccessful attempts of completing the cache coherence protocol using traditional development methods, we decided to rewrite the system using Teapot [9], a tool for writing memory coherence protocols. Our experience with this more formal approach has been positive. In particular, the close ties between Teapot and the Murfi verification system have provided us with an effective testing tool for attacking the problem of unexpected event ordering; ....
Chandra, S., Richards, B., and Larus, J. R. Teapot: Language Support for Writing Memory Coherence Protocols. In Proc. of SIGPLAN Conference on Programming Language Design and Implementation (May 1996).
...., Michael Dahlin , Bradley Richards , Randolph Y. Wang Thomas E. Anderson and James R. Larus University of Wisconsin, Madison University of Texas, Austin Vassar College University of California, Berkeley Abstract. In this paper we describe our experience with Teapot [7], a domain specific language for addressing the cache coherence problem. The cache coherence problem arises when parallel and distributed computing systems make local replicas of shared data for reasons of scalability and performance. In both distributed shared memory systems and distributed ....
....we highlight the features of Teapot that aid a protocol programmer. 3 Teapot The Teapot language resembles Pascal with extensions for protocol programming support, but fewer built in types. Space does not permit a complete description of the language; the reader is referred to the original paper [7] for further language details. The Teapot compiler can generate executable C code from a protocol specification, and can also translate it to code that can be fed to the MurF verification system[10] 3.1 Verification Support The generated MurF code models the input protocol, but must be ....
Satish Chandra, Brad Richards, and James R. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation (PLDI), May 1996.
....Dahlin 2 , Bradley Richards 3 , Randolph Y. Wang 4 Thomas E. Anderson 4 and James R. Larus 1 1 University of Wisconsin, Madison 2 University of Texas, Austin 3 Vassar College 4 University of California, Berkeley Abstract. In this paper we describe our experience with Teapot [7], a domain specific language for writing cache coherence protocols. Cache coherence is of concern when parallel and distributed computing systems make local replicas of shared data to improve scalability and performance. In both distributed shared memory systems and distributed file systems, a ....
....we highlight the features of Teapot that aid a protocol programmer. 3 Teapot The Teapot language resembles Pascal with extensions for protocol programming support, but fewer built in types. Space does not permit a complete description of the language; the reader is referred to the original paper [7] for further language details. The Teapot compiler can generate executable C code from a protocol specification, and can also translate it to code that can be fed to the MurF verification system [10] Figure 2: State machine (home side) with intermediate states necessary to avoid synchronous ....
Satish Chandra, Brad Richards, and James R. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation (PLDI), May 1996.
....ignored or treated as an error. The processor may have returned its copy and subsequently requested a readable copy. If messages can pass each other in the network, the read request must be retained and processed after the first copy has been returned. 2.2. 1 Writing Protocols with Teapot Teapot [22] is an environment for designing, verifying, and implementing cache coherence protocols. It simplifies the task in two significant ways. First, it provides 14 RS To Excl Exclusive RdShared Get Excl Put RO Get Excl Handler: Begin Foreach RO copy Send invalidation Move to RSToExcl End Put RO ....
....may be declared since only the ordering constraints imposed by barriers are recognized by the race detection mechanisms. As is shown in Section 5.6.3, these spurious races can be effectively removed in a post processing phase. 5. 5 Verification The formal verification tool associated with Teapot [22, 24] was used to ensure both that the race detection protocols maintained consistent data, and that they successfully caught data races. The verification process proceeded in two steps. First, the basic protocol was designed and tested without any race detection functionality. Even without ....
Satish Chandra, Brad Richards, and James R. Larus. Teapot: Language Support for Writing Memory Coherence Protocols. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation (PLDI), May 1996.
No context found.
Chandra, S., Richards, B., and Larus, J. R. (1996). Teapot: Language Support for Writing Memory Coherence Protocols. In Proc. of SIGPLAN Conference on Programming Language Design and Implementation.
No context found.
Satish Chandra, Brad Richards, and James R. Larus. Teapot: Language support for writing memory coherency protocols. In SIGPLAN Conference on ProgrammingLanguage Design and Implementation, May 1996.
No context found.
Satish Chandra, Brad Richards, and James R. Larus. Teapot: Language support for writing memory coherency protocols. In SIGPLAN Conference on ProgrammingLanguage Design and Implementation, May 1996.
No context found.
Chandra, S., B. Richards and J. R. Larus. Teapot: Language support for writing memory coherence protocols. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 237-248, May 1996.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC