All logic voltages are standard TTL signals, 0 ~.8 volts for logical Low, and 2.0 ~ 3.6 volts for logical High. We shall use the terminology that a signal has the value 1 if it is asserted (i.e., active, equal to the binary digit 1, or equal to a Boolean 1), and the value 0 if it is not asserted (i.e. inactive, equal to the binary digit 0, or equal to a Boolean 0).
On the RTM Bus, logical Low signals correspond to l's (assertion), and High signals are 0's. Likewise control part signals are logical Low for assertion, and the passing of control from one K module to another takes place at the moment of 0 to 1 (High to Low) transition of the signal. On the other hand, Boolean and other data signals are logical High for assertion. Finally, other signals (erg., signals from analog devices, Teletypes, etc.) have a variety of conventions and will be described as needed.
In describing switching circuit components, i.e., gates and flip flops, we shall refer to positive logic and negative logic implementations. Thus, for example, a positive logic OR gate will be referred to in a part of the system in which logical Highs correspond to l's. If either input of the positive logic OR gate is a 1 (High), its output is a 1 (High). In a part of the system in which logical Lows correspond to l's we shall refer to negative logic OR gates. If either input of a negative logic OR gate is a 1 (Low), its output is a 1 (Low). The same kind of reasoning applies for AND's, NAND's, NOR's, etc. Notice that a certain type of duality exists, e.g., a negative logic OR gate is a positive logic AND gate, etc.
Introduction
This section describes in detail four modules with which it is possible to build non-trivial RTM systems. Using these modules we shall then discuss in the next section basic control and data flow in an RTM system.
To review the notation to be used: Registers are given by expressions such as A<15:0>, which specify both the name and the set of bit positions. Concatenations of several registers into a single long one is indicated by the box, e.g., A<7:0> [] B<7:0> is a register of 16 bits. To give it a name and label its bits we could have written C<16:0>:= A<7:0> [] B<7:0>. Thus := is used to make declarations whereby the name on the left is defined by an expression (which may be arbitrarily complex) on the right. Transfers of bits from one register to another are indicated by the left-pointing arrow, e.g. B <__ C indicates the transfer from register C to register B. Boolean conditions are given by equations, e.g. (BSR = 0) has the value 1 if the register called BSR contains the integer 0, otherwise it has the value 0. Boolean conditions are also given simply by the contents of a register; e.g., B<6>, when used as a Boolean condition, would have the value I if the bit in B<6> was 1 and the value 0 if the bit was 0. If the reader encounters hereafter any notation that he does not understand, he should consult Tables 1, 2, and 3 at the back of this book.
The Modules
Kevoke\Ke. The Ke module is the basic control module in an RTM system. Its function is to evoke (cause) a single register transfer operation in the data- memory part of the system, using the Bus, e.g., C <__ B, A <__ A+B. It may also simultaneously evoke a data operation that does not require the Bus, such as setting, complementing, or clearing a single bit Boolean register, e.g., D <__ __| D, or it may evoke a Bus-exclusive operation by itself.
The operation sequence of a Ke module is as follows: (1) the Ke
41