Transition signalling data communications

Abstract: A transition signalling communication system suitable for use in a high speed data communication bus between a bus master (12) and two or more peripheral slave devices (14) provides data transfer rates up to twice the maximum clock frequency. The bus architecture permits transition signalling to be used with a plurality of slave devices with tri-state or open collector control signals. The bus master (12) includes a first control signal (REQ), which initiates a data transfer request by the transition of said first control signal, and a second control signal (REQINVALID) which provides an indication whether said first control signal transition is valid. In response, the slave includes a third control signal (ACK) which acknowledges the first control signal by the transition of said third control, and fourth control signal (ACKINVALID) which provides an indication whether the third control signal transition is valid.

Description: This invention is concerned with data communications and specifically is concerned with a mode of data transfer known as transition signalling. This mode of data transfer may be employed over a data communications bus structure between a master unit, such as a central processing unit, and a slave unit, such as a peripheral device. More particularly the need arises for the transfer of data between a central processing unit and a plurality of peripheral devices. As will be discussed below transition signalling has advantages in high speed data communications. The present invention relates to aspects of a communication system in which a master unit is operable to generate a transition between two logic states of a control signal as an indication to the slave unit of a request for data transfer. Aspects of the invention lie in a communication system, a method of operation, a master unit and a slave unit respectively. It is known for the slave unit to generate a transition between two logic states of another control signal as an indication to the master unit of the acceptance of the request for data transfer. In this specification the first mentioned control signal generated by the master unit is designated REQ and the just-mentioned signal generated by the slave unit is designated ACK. These designations are also more generally applied to the wires or bus lines over which the respective signals are sent. An example of a transition signalling system and a comparison of signalling methods is given in "Tag Transition Method for Interlocked Bus Operation", IBM Technical Disclosure Bulletin, Vol. 30, No. 4, September 1987, pages 1497-1503. More generally in a typical data bus communications system, data and address signals are placed on the data bus by the bus controller, or bus master. Thereafter a control signal indicating readiness for a data transfer is signalled to the peripheral (slave unit) device. The peripheral device may either acknowledge the transfer by an acknowledge return signal, or otherwise indicate a busy condition by a return control signal, if unable to complete the data transfer. The control signal between master and slave units can be either an absolute logic level, or a transition signal, as is known in the prior art. Absolute logic level signalling means that a given logic level, say a logic 1, indicates a readiness to transfer data. In general, in transition signalling, the indication of readiness is the signal transition, i.e. the transition from one logic level to another, rather than the absolute logic level. Transition signalling, as compared to logic level signalling, speeds up a data bus because twice as many operations can occur in a given time interval. That is, for a maximum signal rate of 30 Mhz for example, a maximum transfer of 30 Mhz is possible using logic level signal indication. The same limitation arises if only one edge of the control signals, i.e. the rising edge or the falling edge, is utilized. However, by using transition signalling, data can be transferred on both the rising and falling transitions of the control signals. Therefore, using transition signalling, a maximum data transfer rate of 60 Mhz is possible. The usual way of using transition signalling for a communication channel is the two-phase interface. In a standard two-phase interface, there are two control wires and a number of data wires. The control wires are called REQ and ACK, for request and acknowledge, respectively. The REQ signal is controlled by the sender, and the ACK by the receiver. As the name suggests, the state of the communication channel is in one of two phases. In the first phase, the REQ signal is allowed to transition, but the ACK is not. This is the "idle" phase. In practice, the channel remains in the first phase until the sender is ready to send a word of data, at which point it places the word on the data wires and transitions REQ. This causes the channel to enter the second phase. In the second phase, the REQ signal is not allowed to transition, but the ACK is. During this phase, one word of data is presented on the data lines. In practice, the channel will remain in the second phase until the receiver is ready to accept the word, at which point it will transition ACK, and the channel reverts to the first phase. The two-phase interface is very straightforward when there is communication when there is only one sender and one receiver. The present invention is an enhanced version that is usable on a bus with more than two devices. Transition signalling is fairly straight forward when there is only one master and one slave communicating. However, on a bus serving three or more devices, i.e. one master unit and more than one slave device, transition signalling is considerably more difficult. In order for three or more devices to share a single control line, the logic is either tri-state or open collector. If a previous data transfer leaves a control signal in logic low condition it is difficult for another peripheral device to transition signal on that control line and force to a high condition. It is not impossible, and one way is use a capacitor on the control line. However, use of a capacitor has two problems. First, high load capacitance on the control line slows down operation considerably. Second, the circuit would be dynamic and not work down to 0Hz, probably causing software problems. According to one aspect of the present invention there is provided a method of operating a communication system comprising a master unit and a slave unit between which data is transferable, which method comprises the steps of: said master unit generating a transition between two logic states of a first control signal as an indication to said slave unit of a request for data transfer, characterized by: said master unit generating, prior to said transition of the first control signal, a second control signal whose state serves as an indication to said slave unit whether or not said transition of the first control signal is a valid indication. Preferably, the above-recited method further comprises the step of said slave unit generating a transition between two logic states of a third control signal as an indication to said master unit of the acceptance of said request, characterized by: said slave unit generating, prior to said transition of the third control signal, a fourth control signal whose state serves as an indication to said master unit whether or not said transition of the third control signal is a valid indication of acceptance. The method of the invention is applicable to transfer of data inputted to the master unit that is output from the slave unit and to transfer of data inputted to the slave unit that is output from the master unit. Preferably the master unit provides a signal (DIR in the embodiment to be described) to the slave unit to indicate the direction of transfer between the units of the data that was the subject of the request from the master unit. The method of the invention is applicable in a communication system in which the slave unit is one of a plurality of slave units operable in like manner and selectable for the transfer of data between a selected slave unit and the master unit. For this purpose the method may be implemented by having the master unit generate a signal (ADDR in the embodiment to be described) for selection of one of the plurality of slave units to request data transfer therewith. More particularly it is preferred that each of the plurality of slave units has an individual address and the just-mentioned selection signal comprises the address of the slave unit to be selected. In another aspect of the invention there are provided a communication system as set forth in Claim 8 and a master unit as set forth in Claim 15 respectively. Yet another aspect of the invention is a slave unit as set forth in Claim 21. A high speed communication data bus structure embodying the invention is described below. It includes a first control signal for signalling an indication based upon the transition of said first control signal, and a second control signal for signalling an indication whether said first control signal transition is valid. Specifically, in the embodiment shown, when the first transition control signal is valid, the second control signal is at logic level 0, and when the first transition control signal is invalid, the second control signal is at logic level 1. More specifically, in one embodiment of the present invention, a master control unit provides a first control signal, REQ, which by a transition signals the initiation of a data transfer. The master control unit also provides a second control signal, REQINVALID, which indicates whether the REQ signal is valid. In addition, the slave unit on the same bus includes a third control signal, ACK, which by a transition signals the acknowledgment the data transfer request, REQ, initiated by the master. The slave unit further includes a fourth control signal, ACKINVALID, for signalling an indication whether or not the ACK transition signal is valid. To illustrate the operation of bus, it is assumed for the moment that the slave unit is ready for the data transfer and that the address on the data bus does not change. First, the master unit initiates a data transfer by placing the address on the data bus and transition signalling the REQ control line. Then, the slave unit recognizes its address, accepts the data transfer, and acknowledges the REQ signal with an ACK signal. So long as the slave unit is able to accept each data transfer, the ACKINVALID signal is low. If the slave unit cannot accept a given data word, the ACKINVALID signal is set high to indicate to the master that the slave is not ready for the data transfer. However, the ACK signal transition is still transmitted to the master, permitting the master to carry out other concurrent tasks. The master will attempt to complete the data transfer at a later time. Then, the master follows this rule: The bus address can change when the REQ control line is high, but not when the REQ control line is low. If the master unit wants to change address while the REQ control line is low, it must first bring the REQ control line high. To bring the REQ control line high, the REQINVALID line is first set high, and then the REQ line is toggled from low to high. The slave acknowledges the transition signal of the REQ line by bringing its ACK line high, while utilizing the REQINVALID line to ignore the transition of the REQ line. Thus, the use of transition signalling on a multiple user communication bus is facilitated. So long as the master communicates with the same peripheral unit, data transfer can occur at a maximum rate. If the master communicates with a different slave unit each successive data transfer, there will be only half the maximum throughput. However, in most cases the master will choose to communicate a series of data transfers to the same slave unit, in which case the data transfer rate will approach the maximum data transfer rate. The invention and its practice will be further described with reference to the accompanying drawings, in which: Figure 1 is a block diagram of a high speed data communication bus in accordance with the present invention. Figure 2 is a signal chart setting forth the name, description, and signal characteristics for a high speed data communication bus in accordance with the present invention. Figures 2A and 2B illustrate a flow chart indicating the sequence of operation of a high speed data communication bus in accordance with the present invention. Figure 3 is timing diagram illustrating the waveform of the signals described in the signal chart of figure 2. Figure 4 is a state transition diagram for an embodiment of a two phase input adapter for an input data interface, including logic equations for the transitions between states, for a high speed data communication bus in accordance with the present invention. Figure 5 is a state transition diagram for an embodiment of a two phase output adapter for an output data interface, including logic equations for the transitions between states, for a high speed data communication bus in accordance with the present invention. As shown in figure 1, a data communication bus 10 provides for high speed data communication between a master 12, typically a central processing unit (cpu), and a slave unit 14, typically a peripheral unit serving the central processing unit. The slave peripheral unit 14 includes a two phase input adapter 16 and two phase output adapter 18, which provide respective data input and data output interface between the bus 10 and the slave peripheral 14. There are six types of communication signals illustrated in figures 1 an 2. The CHANNEL ID lines, generated by the master are used to identify the communication channel. The CHANNEL ID is defined as the ADDRESS bits and the direction bit, DIR. Typically, the CHANNEL ID may contain 8 individual lines, or bits, allowing access to 256 communication channels. As indicated in figure 2, the CHANNEL ID includes one bit, DIR, to signify direction of the data transfer, either output or input. In such case, the remaining 7 data lines are address bits designating one of 128 channels, each of which can be used for both input and output, depending up on the state of direction control line DIR. Typically, DIR is equal to logic level low to indicate an output, and logic level high to indicate an input. The data lines are bi-directional, and can be any number of bits. Typically, the number of data lines are a multiple of 8 bits. The REQ signal, which indicates a request for a data transfer, is generated by the master. The ACK signal, which indicates acknowledgment of a request for a data transfer, is generated by the slave. The REQINVALID and ACKINVALID signals, generated by the master and slave, respectively, indicate whether a respective REQ or ACK signal is valid or invalid. Specifically, the REQINVALID signal, which is generated by the master, is a logic 0 when the REQ signal is valid, and a logic 1 when the REQ signal is invalid. Similarly, the ACKINVALID signal, which is generated by the slave, is a logic 0 when the ACK signal is valid, and a logic 1 when the ACK signal is invalid. As shown in the signal chart of figure 2, the REQ and ACK signals provide an indication by a transition between logic levels, either high to low, or low to high. The DATA lines are typically tri-state to provide for data transfer in either direction. With respect to the ACK and ACKINVALID signals, open collector drivers are used to facilitate the connection of multiple slave devices to common control lines. In the embodiment shown, the REQ and REQINVALID control lines originate from a dedicated master unit. However, to allow for the case where the bus master is not dedicated, the REQ and REQINVALID lines are open collector drivers. That is, where the bus master is not dedicated, but is selected among competing devices suitable contention mechanism, the REQ and REQINVALID lines can be open collector of tri-state so the more than one devices can share the control lines. A flow chart indicating the communication sequence between master and slave units is shown in figures 2A and 2B. The program is entered at step 20 whenever the master unit is to transfer data, either input or output. If the CHANNEL ID is unchanged from the last data transfer or the REQ line is high, then the master skips step 22 and proceeds to step 26 where the bus address and direction lines are set to the CHANNEL ID value, and, if the requested data transfer is a data output, then the bus DATA lines are set equal to the output data values. Thereafter, the REQ signal is toggled to the opposite value at step 28. The transition of the REQ signal is the indication that the master is requesting a data transfer. If, at program step 20, the CHANNEL ID had changed since the last data transfer and the REQ line is low, then the REQINVALID line is set to "invalid", and the REQ signal is toggled at step 22, i.e. from low to high. Normally, a transition of the REQ signal would indicate a data transfer request from the master to the slave. However, the slave unit responds to the REQINVALID signal being high by setting the ACKINVALID signal to high i.e. "invalid", at step 24 indicating that the returning ACK signal is to be considered invalid. Thereafter, the ACK signal is set equal to the REQ signal. Since the ACK line was previously low, the ACK transition is from low to high. The bus is now in a reset state and ready for the new data transfer initiated at steps 26 and 28. As indicated above, the master signals a data transfer request REQ, at step 28. The slave receives the transition of the REQ signal generated at step 28 and decides whether or not it can accept the data transfer at step 30. If the data transfer cannot be accepted, the ACKINVALID line is set to "invalid" at step 32, and the ACK signal is set equal to the REQ signal at step 36. The ACK signal generated at step 36 by the slave, indicates to the master that the slave cannot accept the data transfer, and that the master can now carry out other concurrent tasks. However, the master will eventually attempt to re-initiate the data transfer at a later time. If at step 30 the slave is able to accept the data transfer, then the ACKINVALID line is set to "valid" at step 34, and the input or output data is transferred to or from the data bus respectively. Thereafter the ACK signal is set equal to the REQ signal at step 38. The transition of the ACK signal at step 38 at a time when ACKINVALID is low, indicates to the master that the data transfer is successful. If the data transfer is an input operation, the master transfers data from the bus at step 40. Data Output An outline of the sequence of events for a data transfer from master to slave is given below. 1. If the CHANNEL ID is the equal to that for the last request, or if the request line is currently high, then steps 2-3 are skipped, and operation proceeds to step 4. 2. The master system sets the REQINVALID line to "invalid" and signals the REQ line (this transition is always from low to high, because of the condition in step 1). 3. The slave system signals the ACK line (this is also from low to high). 4. The master system sets the CHANNEL ID lines, sets the direction line to "output", and places the word of data on the DATA lines. 5. The master sets the REQINVALID line to "valid" and signals the REQ line. 6. The slave senses the REQ signal, and decides whether it can accept a data word on that channel. If yes, steps 7a-8a are carried out, otherwise steps 7b-9b. 7a. The slave has decided that it can accept the data word, so it latches it. 8a. The slave sets the ACKINVALID line to "valid", and signals the ACK line. 7b. The slave has decided that it cannot accept the data word, so it ignores it. 8b. The slave sets the ACKINVALID line to "invalid", and signals the ACK line. 9b. The master must later re-send this word. It can, however in the meantime, perform other tasks, and communicate on other channels. Data Input An outline of the sequence of events for a data transfer from slave to master is given below. 1. If the CHANNEL ID is the equal to that for the last request, or if the request line is currently high, then steps 2-3 are skipped, and operation proceeds to step 4. 2. The master system sets the REQINVALID line to "invalid" and signals the REQ line (this transition is always from low to high, because of the condition in step 1). 3. The slave system signals the ACK line (this is also from low to high). 4. The master sets the CHANNEL ID lines, and sets the direction line to "input". 5. The master sets the REQINVALID line to "valid" and signals the REQ line. 6. The slave senses the REQ signal, and decides whether it has a word available on that channel. If yes, steps 7a-8a are carried out, otherwise steps 7b-9b. 7a. The slave sets the DATA lines for the data that is to be transferred, and sets the ACKINVALID line to "valid". 8a. The slave signals the ACK line. 7b. The slave sets the ACKINVALID line to "invalid". 8b. The slave signals the ACK line. Failsafe timer A failsafe timer, to prevent the bus from coming to a halt when a peripheral unit fails to signal ACK through malfunction or absence, would function as follows: 1. The REQ line would signal, starting the time-out clock. 2. If the ACK line signalled before the time-out clock timed out, then the operation of the bus was normal, and the watchdog timer returns to waiting for step 1. 3. Otherwise, the watchdog sets the ACKINVALID line to "invalid", and signals ACK. 4. Then, the watchdog timer returns to step 1. Figures 2a and 2b represent the programming performed in the master as well as the programming performed in the slave. The portion of the flow chart of figures 2a and 2b to the left of the dotted line is carried out by the master unit. Similarly, the portion of the flow chart of figures 2a and 2b to the right half of the dotted line is carried out by the slave unit. Since the master unit is typically a central processing unit of a computer system, it is desirable that the program for the operation of the bus be embodied in microcode. An input or output operation by the bus master would then be accomplished in a single instruction of the main processing unit. The following program fragments, expressed in a pseudo code, similar to the Pascal programming language, may be used to implement super input or super output instructions for use on the communication bus of the present embodiment. In order to output value x to channel c, In order to input value from channel c into variable x, A timing diagram illustrating the operation of the communication bus is shown in figure 3. To output data, the master sets the CHANNEL ID onto the address and direction lines at time A. Also at time A, the master places the data onto the DATA lines. Then, at time B, the master signals REQ by toggling the current value of REQ (high) to the opposite value (low). Then, at time C, the slave sets ACKINVALID equal to "valid", and signals back to the master indicating that the transfer was successful by a transition of the ACK signal (also from high to low). The next data transfer over the bus is to a different device, i.e. to a different address. However, at time C, the REQ and the ACK signal are low. When the ACK signal is low, the next device at the new address will not be able to easily bring the ACK line high because the former device which shares the ACK line, is holding it low. In order to bring the bus into a state where it can communicate with the second peripheral device, the master sets the REQINVALID line to "invalid", and toggles the REQ line from low to high at time D. In response, the slave sets its ACKINVALID line to "invalid" and toggles the ACK line from low to high at time E. The bus is now in a reset state. From a reset state, the bus can proceed to initiate an output data transfer. New address and data are placed on the ADDRESS, DIR and DATA lines at time F. For purposes of illustration, the slave device is assumed to be busy or otherwise not ready to accept data at time F, and communicates such condition by setting the ACKINVALID high to "invalid". Therefore, at time G when the slave device signals its ACK line, the ACKINVALID is indicating to the master that the second peripheral device could not accept the output data. The master will later attempt to re-transmit the output data. In the meantime, the master is free to work on other concurrent tasks. The next data transfer over the bus is a data input from a different device. Since the REQ line and the ACK line just after point G are low, it is necessary to bring the bus to a reset conditions at time I, in the same manner as the bus was reset at time E. The new address is placed on the ADDRESS lines at time J, at which point the direction of data transfer ,DIR, is changed from output to input. The master signals a request, REQ at time K, and the designated slave unit places data on the DATA lines at time L. Thereafter, the slave unit provides an ACK transaction at time M in response to which data is input to the master. The description of the operation of the communication bus from time A to time M illustrates the operation of the data bus when the CHANNEL ID changes and the REQ line is low in between consecutive data transfers. Under the illustrated conditions thus far, the operation of the data bus is somewhat slower because of the need to condition the bus into a reset state between data transfers. However, so long as the CHANNEL ID remains the same or REQ line is high (even if the CHANNEL ID changes), then there is no need to reset the data bus, and the data transfer rate can continue at full bus speed. Specifically, since the address at time M and time P is the same, it is only necessary to toggle the REQ line at time N and the ACK line at time P to achieve a data transfer even though the condition of the REQ line was initially low prior to time N. Similarly, in between time P and time R it is desired to switch to a different CHANNEL ID including a different direction of data transfer. However, since the REQ line is in a high condition at time P, it is only necessary to toggle the REQ line at time Q in order to achieve such data output transfer. Subsequent data transfers to the same peripheral device occur at time T and V as a result of output data being placed on the DATA lines, and transition signals of the REQ line at time S and U respectively. It is noted that the REQ "invalid" and ACK "invalid" lines are low, indicating a "valid" condition for all of the data transfers between time M and time V. The communication bus operates at a maximum data rate from time M through time V. As described above the interface between the central processing unit and the bus is best embodied in a microcoded instruction set for super input and output. The interface between the peripheral unit and the data bus may be implemented by the use of a two phase input adaptor 16 and a two phase output adaptor 18 as shown in block form in Figure 1. An embodiment of the two phase input adaptor is illustrated by the finite state transition diagram, and logic equations of Figure 4. As shown in the state transition diagram of Figure 4, the two phase input adaptor 16 includes an initial state SO, and three other internal states S1, S2 and S3. Transitions between the four states is governed by transition control signals C0, C1, C2, C3, C4, and C5. For each of the logic equations given in Figure 4, the indicated transition takes place when the logical value given by the equations in Figure 4 indicate a true condition. Also at that time, when one of the conditions C0 through C5 become true, the lines to the right of the arrow indicate the desired operation of the interface with respect to the data bus. For example, when condition C0 in Figure 4 is true, the expression to the right of the arrow i.e., "data:= input data" means that the value of the data on the communication bus DATA lines is latched to the data of the two phase input adaptor. Similarly, an embodiment of the two phase output adaptor is illustrated by the finite state transition diagram, and logic equations of Figure 5. As shown in the state transition diagram of Figure 5, the two phase output adaptor 18 includes an initial state S0, and three other internal states S1, S2 and S3. Transitions between the four states is governed by transition control signals C0, C1, C2, C3, C4, and C5. For each of the logic equations given in Figure 5, the indicated transition takes place when the logical value given by the equations in Figure 5 indicate a true condition. Also at that time, when one of the conditions C0 through C5 become true, the lines to the right of the arrow indicate the desired operation of the interface with respect to the data bus. For example, in Figure 5 when transition signal C0 is true, the term to the right of the arrow, i.e. "output REQ:= not output REQ" means that the REQ line toggles to the opposite value. The input adaptor 16 and two phase output adaptor 18 may be implemented by one skilled in the art using custom logic, programmable logic arrays or a general purpose embedded programmable microprocessor. The input adaptor interfaces to the bus of the present invention, and also acts as a receiver in the standard two-phase interface, as described above. The output adaptor interfaces to the present bus, and also acts as a sender for the standard two-phase interface.

Claims: A method of operating a communication system comprising a master unit (12) and a slave unit (14) between which data is transferable, which method comprises the steps of: said master unit (12) generating a transition between two logic states of a first control signal (REQ) as an indication to said slave unit of a request for data transfer, characterized by: said master unit generating, prior to said transition of the first control signal, a second control signal (REQINVALID) whose state serves as an indication to said slave unit whether or not said transition of the first control signal (REQ) is a valid indication. A method as claimed in Claim 1 further comprising the step of said slave unit (14) generating a transition between two logic states of a third control signal (ACK) as an indication to said master unit (12) of the acceptance of said request, characterized by: said slave unit generating, prior to said transition of the third control signal (ACK), a fourth control signal (ACKINVALID) whose state serves as an indication to said master unit whether or not said transition of the third control signal (ACK) is a valid indication of acceptance. A method as claimed in Claim 2 comprising the step of inputting data to said master unit that is output from said slave unit upon said transition of the third control signal (ACK) provided that said fourth control signal (ACKINVALID) indicates a valid indication of acceptance. A method as claimed in Claim 2 comprising the step of inputting data to said slave unit (14) that is output from said master unit (12) upon said transition of said first control signal (REQ) provided that said second control signal (REQINVALID) indicates a valid request. A method as claimed in Claim 1, 2, 3 or 4 comprising the step of said master unit (12) providing a signal (DIR) to said slave unit (14) to indicate the direction of transfer between the units of the data the subject of said request. A method as claimed in any preceding claim applied in a communication system in which said slave unit (14) is one of a plurality of slave units operable in like manner and selectable for the transfer of data between a selected slave unit and said master unit (12), and comprising the step of said master unit (12) generating a signal (ADDR) for selection of one of said plurality of slave units to request a data transfer therewith. A method as claimed in Claim 6 in which each of said plurality of slave units has an individual address and the signal (ADDR) generated by said master unit (12) for selection of a slave unit comprises the address thereof. A communication system comprising a master unit (12) and a slave unit (14) between which data is transferable, said master unit (12) being operable to generate a transition between two logic states of a first control signal (REQ) as an indication to said slave unit (14) of a request for data transfer, characterized by: said master unit (12) being operable to generate, prior to the transition of the first control signal (REQ), a second control signal (REQINVALID) whose state serves as an indication to said slave unit (14) as to whether or not said transition of the first control signal is a valid indication. A system as claimed in Claim 8 in which said slave unit (14) is operable to generate a transition between two logic states of a third control signal (ACK) as an indication to said master unit (12) of the acceptance of said request, characterized by: said slave unit (14) being operable to generate, prior to said transition of the third control signal (ACK), a fourth control signal (ACKINVALID) whose state serves as an indication to said master unit (12) whether or not said transition of the third control signal (ACK) is a valid indication of acceptance. A system as claimed in Claim 9 in which data outputted by said slave unit (14) is inputted by said master unit (12) upon transition of said third control signal (ACK) provided that said fourth control signal (ACKINVALID) indicates a valid indication of acceptance. A system as claimed in Claim 9 in which data outputted by said master unit (12) is inputted by said slave unit (14) upon said transition of said first control signal (REQ) provided that said second control signal (REQINVALID) indicates a valid request. A system as claimed in Claim 8, 9, 10 or 11 in which said master unit (12) is operable to provide to said slave unit (14) a signal (DIR) indicate the direction of transfer between the units of the data the subject of said request. A system as claimed in any one of Claims 8 to 12 in which said slave unit (14) is one of a plurality of slave units operable in like manner and selectable for the transfer of data between a selected slave unit and said master unit (12), said master unit (12) being operable to generate a signal (ADDR) for selection of one of said plurality of slave units. A system as claimed in Claim 13 in which each of said plurality of slave units has an individual address and said master unit (12) is operable to generate the address (ADDR) of a slave unit for selection thereof. A master unit (12) for use with a slave unit (14) in a communication system in which data is transferable between the master unit (12) and the slave unit (14), said master unit (12) being operable to generate a transition between two logic states of a first control signal (REQ) as indication for a slave unit (14) of a request to transfer data therebetween, characterized by: said master unit (12) being operable to generate, prior to said transition of the first control signal (REQ), a second control signal (REQINVALID) as indication for a slave unit (14) that said transition of the first control signal (REQ) is a valid indication. A master unit (12) as claimed in Claim 15 which is operable to output data for transfer to a slave unit, and to generate a transition of said first control signal (REQ) indicated as valid by the state of said second control signal (REQINVALID), the master unit further being operable to respond to the input of a transition between two logic states of a third control signal (ACK) in the presence of the input of a fourth control signal (ACKINVALID) whose state provides as an indication of whether or not said transition of the third control signal (ACK) is valid so as to recognize whether or not the data transfer has been made. A master unit (12) as claimed in Claim 15 which is operable to input data in response to the input of a transition of a third control signal (ACK) in the presence of the input of a fourth control signal (ACKINVALID) whose state provides an indication of whether or not said transition of the third control signal (ACK) is a valid indication, the master unit (12) only inputting said data in the presence of a valid indication. A master unit as claimed in Claim 13, 14, 15 or 16 which is operable to provide an output signal indicating the direction of transfer of data between the master unit and a slave unit in communication therewith. A master unit as claimed in any one of Claims 15 to 18 which is operable to generate a selection signal (ADDR) for selecting one of a plurality of slave units in a communication system. A master unit as claimed in Claim 19 in which said selection signal (ADDR) comprises a selected one of a plurality of addresses. A slave unit (14) for use with a master unit (12) in a communication system in which data is transferable between the slave unit (14) and the master unit (12), said slave unit (14) being responsive to the transition between two logic states of a first control signal (REQ) applied thereto as indication of a request to transfer data and being operable to output a transition between two logic levels of a second control signal (ACK) to indicate acceptance of said request, characterized by: said slave unit being operable to output a third control signal (ACKINVALID), prior to outputting said transition of the second control signal (ACK), whose state is an indication of whether or not said transition of the second control signal (ACK) is a valid indication of acceptance. A slave unit (14) as claimed in Claim 21 which is responsive to a fourth control signal (REQINVALID) whose state at the time of said transition of the first control signal (REQ) is indicative of whether or not said transition of the first control signal (REQ) is indicative of a valid request. A slave unit (12) as claimed in Claim 22 which is operable to input or output data at the time of transition of said first control signal (REQ) provided that the state of said fourth control signal (REQINVALID) indicates a valid request. A slave unit (14) as claimed in Claim 21, 22 or 23 which is responsive to an input signal (DIR) indicating the direction of transfer of data between the slave unit (14) and a master unit (12). A slave unit (14) as claimed in any one of Claims 18 to 22 which is responsive to receipt of a selection signal (ADDR) to enable the slave unit (14) to respond to a transition of said first control signal (REQ) applied thereto. A slave unit as claimed in Claim 25 which includes an individual address and is responsive to a selection signal bearing the address of the slave unit.

Inventors: LEVIEN RAPHAEL L, LEVIEN, RAPHAEL L.
Applicants: LEVIEN RAPHAEL L, LEVIEN, RAPHAEL L.
Application year: 1992
Main classification: G06F13
IPC codes: H04B1, H04L29, G06F13