multiply step, using Ksubroutine. Alternatively, a form of open subroutine organization can be used in which 8 groups consisting of a K(branch), two K(evoke)'s and a K(serial-merge) are interconnected. The former requires less control components, but the latter is somewhat faster.
The reader will discover in Chapter 7 that with 1972 PDP-16's two Ksub's that evoke the same subroutine in series are not permitted; thus the 8-step straight line implementation using Ksub's cannot be built. However, a simple modification of Ksub, presented in Chapter 7, corrects this problem. Alternatively, placing a Kevoke with a dummy operation (e.g. BSR<-0) between the Ksub's will solve the problem, but this will slow the system down.
Fig. 17. RTM diagram of 8-bit multiplier with open and closed subroutine implementations.
The implementation of Figure 17 actually dominates the basic solution of Figure 4, being both faster and less expensive. This shows that one cannot always depend on the general rule, which we have been illustrating continually, that to explore a design space is to explore the trade-offs that exist between the various objectives (here speed and cost). Often one finds designs which are both slower and costlier. Occasionally, as here, one finds designs which are faster and cheaper.