David May

Learn More
Multi-threaded processor architectures are capable of concurrently executing multiple threads using a shared execution resource. Two of their advantages are their ability to hide latency within a thread, and their high execution efficiency. Unfortunately , single thread performance is often poor. In this paper we present a simple model of a multi-threaded(More)
Continuing technology advances have made possible a generation of computers designed for multimedia processing. Although conventional computer architectures can deal effectively with media such as still images, they are constrained in their ability to handle continuous media such as audio and moving images. These media require continuous and predictable(More)
This paper presents a Design-for-Verification approach applied to verify critical properties of a complex, programmable, performance-critical processor communication interface. The functional and performance requirements have been systematically decomposed into functionally independent communicating building blocks that can be individually verified and that(More)
In this paper we discuss primitives for mobilising code and communications. We distinguish three types of semantics for mobility: copying (where an identical copy is created remotely), moving (where the original is destroyed), and borrowing (where the original is moved to the target and back to where it came from at defined moments). We discuss these(More)
Channels as an essential part of a processor's instruction set were rst launched with the Transputer. We h a ve made two major alterations: the semantics of the input and output instruction are changed in order to overlap communication, and channels are allowed to be communicated over channels higher order communications. All operations can be easily(More)
In this paper we revisit the hardware implementation of channels. Channels as an essential part of the processors instruction set were first launched with the Transputer. Here we have revisited them and have made two major alterations: we have changed the semantics of the input and output instructions in order to overlap communication, and we allow channels(More)
In this paper we present the design and implementation of a programming paradigm that provides a natural representation for multimedia data types. We have adapted the channel concept from CSP/Occam to fit data types such as audio and video. Our channels are mobile: a channel end (or port) can be passed from one process to another. Although communication(More)
In this paper we present the communication protocol that we use to implement rst class channels. Ordinary channels allow data communication like CSPPOccam; rst class channels allow communicating channel ends over a channel. This enables processes to exchange communication capabilities, making the communication graph highly exible. In this paper we present a(More)