Note:
Postcript version (242 p.)
We are introducing and discussing a method for the {\em op}timized and {\em par}allel {\em imp}lementation of protocols as well as a tool \opparim to apply the method automatically to the specification of a protocol. We present a study case representing an IP/TCP/FTP protocol stack specified in SDL. We show how \opparim generates dependence graphs from the specification and how it manipulates these graphs to allow for an optimised and possibly parallelised implementation. We then present a hardware architecture on which the protocol stack could be implemented and show the effects of our optimizations on the processing time of an incoming packet. Using two processing elements the optimised implementation executes in less than half the time of what we call a `faithful' implementation.
We present a method for the automatic derivation of efficient protocol implementations from a formal specification. Optimised efficient protocol implementation has become an important issue in telecommunications systems engineering as recently network throughput has increased much faster than computer processing power. Efficiency will be attained by two measures. First, the inherent parallelism in protocol specifications will be exploited. Second, the order of execution of the operations involved in the processing of the protocol data will be allowed to differ from the order prescribed in the specification, thus allowing operations to be executed jointly and more efficiently. The method will be defined formally which is useful when implementing it as a tool.
We propose a formalized method that allows to automatically derive an optimized implementation from the formal specification of a protocol. Our method starts with the SDL specification of a protocol stack. We first derive a data and control flow dependence graph from each SDL process. Then, in order to perform cross-layer optimizations we combine the dependence graphs of different SDL processes. Next, we determine the common path through the multi-layer dependence graph. We then parallelize this graph wherever possible which yields a relaxed dependence graph. Based on this relaxed dependence graph we interpret different optimization concepts that have been suggested in the literature, in particular lazy messages and combination of data manipulation operations. Together with these interpretations the relaxed dependence graph can be be used as a foundation for a compile-time schedule on a sequential or parallel machine architecture. The formalization we provide allows our method to be embedded in a more comprehensive protocol engineering methodology.
We propose a formalized method that allows to automatically derive an optimized implementation from the formal specification of a protocol. Our method starts with the SDL specification of a protocol stack. We first derive a data and control flow dependence graph from each SDL process. Then, in order to perform cross-layer optimizations we combine the dependence graphs of different SDL processes. Next, we determine the common path through the multi-layer dependence graph. We then parallelize this graph wherever possible which yields a relaxed dependence graph. Based on this relaxed dependence graph we interpret different optimization concepts that have been suggested in the literature, in particular lazy messages and combination of data manipulation operations. Together with these interpretations the relaxed dependence graph can be be used as a foundation for a compile-time schedule on a sequential or parallel machine architecture. The formalization we provide allows our method to be embedded in a more comprehensive protocol engineering methodology.
We propose a method for deriving parallel, scheduling optimized protocol implementations from sequential protocol specifications. We start with an SDL specification, identify a common path for optimization and perform a data dependency analysis. The resulting common path graph is parallelized as far as permitted by the data dependency graph. The degree of parallelism is extended even further by deferring data operations to the exit nodes of the common path graph. The resulting parallel operation model is then submitted to a scheduling algorithm yielding an optimized compile-time schedule. An IP based protocol stack with TCP and FTP as upper layers serves as an example.