Pertti Kellomäki

Learn More
Multithreading is an important software modularization technique. However, it can incur substantial overheads, especially in processors where the amount of architecturally visible state is large. We propose an implementation technique for cooperative multithreading, where context switches occur in places that minimize the amount of state that needs to be(More)
Software bypassing is a technique that allows programmer-controlled direct transfer of results of computations to the operands of data dependent operations, possibly removing the need to store some values in general purpose registers, while reducing the number of reads from the register file. Software bypassing also improves instruction level paral-lelism(More)
Software design aims at a mapping from domain concepts to an implementation. Abstractions that are not highlighted in the implementation structure often exist only in the minds of the developers during development. While this works reasonably well for single-purpose systems, software product lines, i.e., systems built by reusing the same core functionality,(More)
We present an annotated specification of the consensus protocol of Paxos, the " Single-Decree Synod ". The protocol reaches consensus in a distributed system under non-Byzantine failures. The specification is given in the logic of the PVS theorem prover, and we verify a safety property stating the partial correctness of the algorithm. The specification is(More)