A method for transferring data from at least one processor or input/output (I/O) unit to at least one other processor or I/O unit over a clocked, arbitrated, bidirectional, multistate (tristate) parallel bus, said bus including data, control, and timing signal paths, each processor or I/O unit being adapted to assume a master or slave data transmission role and to be at least partially ordered on the basis of an assigned priority, arbitration determining a master among the processors and I/O units by priority at any given period of time, any arbitrated master initiating data transfers to one or more slaves designated by address and data string length (byte count), interactions between masters and slaves being of the demand/response (acceptance signal) type, said bus always being susceptible to seizure by a master of higher priority, comprising the steps of:
- (a) arbitrating among all bus-attached processors and I/O units and selecting the processor or I/O unit presenting the highest priority;
- (b) during a first clock cycle, accessing at least one slave by address and byte count notification over the data and control paths combined from the arbitrated master;
- (c) during a second clock cycle, designating the direction of data transfer by the arbitrated master to the addressed slave and transmitting at least some of the data if the transfer direction is master toward slave;
- (d) in the event that the slave requires more than one clock cycle to decode the address and process the function designated by step (c), delaying any acceptance by the slave to the master;
- (e) in the event that the transfer direction was from the master toward the slave and the arbitrated master does not receive acceptance signals from the slave, recirculating any data locally (off bus) by the master, starting at a predetermined intermediate point in time, until either an acceptance signal is received from the slave or a time out occurs;
- and
- (f) upon receipt of an acceptance signal from the slave, sending the remaining data by the master at a predetermined integral number of clock cycles.