Method of resetting coupled modules and a system using the method

Abstract: In a system including a plurality of modules coupled together by a network with a protocol governing communication between the modules, when a module is to be reset it sends a signal to the modules to which it is connected requesting permission to reset. A module receiving a permission request signal completes any communication in progress with the module originating that signal, possibly using short cuts to complete the communication, and then issues a permission granted signal. When it has received permission granted signals from all of the modules to which it sent permission request signals the first-mentioned module is reset. A module connected in a chain of modules may have means for storing an indication that a permission request signal has been received but not answered, so that if the particular module is reset at that time a permission granted signal can be issued after the module is reset. Alternatively, the permission request signal is applied continuously or repeatedly until a permission granted signal is received.

Description: The present invention relates to electronic circuits or systems that include a number of subsystems and in particular to enabling one such subsystem to be reset whilst others are not. Often in the operation of a system, subsystems use information relating to the state of other subsystems to modify their actions. An example of this is when a first subsystem makes a direct request to a second system for the second subsystem to carry out a task on behalf of the first subsystem. Here the second subsystem has the information that at the time of making the request the first subsystem was expecting the task to be carried out by the second subsystem. If the state of the first subsystem were to change unexpectedly the system could malfunction, when, for example, the second system reported to the first that the task was complete. Generally a subsystem will only be able to determine the state of other subsystems at particular moments in time and so the operation of system will be vulnerable to subsystems changing their states in between those times. An example of how a subsystem may change its state unexpectedly is when it is reset. Conventionally on receipt of a reset signal a subsystem is immediately put into a predetermined state and it may be some time before other subsystems can determine the current state of the subsystem that was reset. In that time a malfunction of the system could occur. For this reason it is conventional for the entire system to be reset together or for such part of it that includes subsystems to be reset, the state of which subsystems does not need to be known by the other subsystems of the system. That approach may cause the data obtained from the work completed by the reset subsystems to be lost. It is an object of the present invention to enable a subsystem to be reset whilst maintaining the information held by other subsystems that relates to the state of the subsystem being reset. In some circumstances it would be desirable that a subsystem could not only determine whether or not another subsystem is reset but also that it could make that determination some time before the other subsystem is, in fact, reset, and when that resetting is to take place. For example a link subsystem communicating with a second subsystem may need a little time to terminate that communication before resetting. If the second subsystem were to reset and the first subsystem could only determine that the second subsystem had reset, at the earliest, at the moment that it reset then for a certain period of time after the resetting the first subsystem would still be trying to communicate. An example of this would be the time to complete a handshaking protocol for the communication. It is therefore a further object of the present invention to enable a subsystem to determine that another subsystem is to be reset a short period of time before the reset actually takes place. According to one aspect of the present invention there is provided a method of resetting a first module of a system including a plurality of modules coupled together by a communication network, the exchange of signals between the modules over the network being governed by a protocol, the method including applying to the first module a reset instruction signal, the first module responding to the reset instruction signal to cause a reset permission request signal to be applied to at least one of the modules of the plurality other than the first module, the or each of the modules receiving the reset permission request signal responding to the reset permission request signal to send a permission granted signal after it has taken any action necessary to complete or modify the protocol sufficiently to ensure that the system does not malfunction after the first module has been reset, determining when the or each module that received the reset permission request signal has sent a permission granted signal, and resetting the first module once that determination has been made. According to a second system having a plurality of modules coupled together by a communication network, the exchange of signals between the modules over the network being governed by a protocol, the system including first application means which apply to a first module a reset instruction signal, second application means responsive to the receipt of the reset instruction signal by the first module to apply to at least another module a reset permission request signal, the or each other module receiving the reset permission request signal including means responsive to the reset permission request signal to take any action necessary to complete or modify the protocol sufficiently to ensure that the system does not malfunction after the first module has been reset and to produce a permission granted signal after that action has been taken, logic means for determining when the module that received the reset permission request signal has produced a permission granted signal, and means responsive to the logic means to reset the first module when that determination is made. The present invention will now be described, by way of example only, with reference to the accompanying drawings of which: Figure 1 is a diagram of a module of a system receiving a module reset signal from a source external to the module; Figure 2 is a diagram of a module that is generating its own module reset signal; Figure 3 is a diagram showing a two module system or part of a system; Figures 4 to 6 are diagrams illustrating the adverse effects of a reset on a handshaking communication and how these are overcome by the present invention; and Figures 7 and 8 are diagrams showing systems having modules which send reset permission requests to more than one module and modules which receive reset permission requests from more than one module. The Figures are diagrams of systems or parts of systems divided into subsystems or modules. In the diagrams some of the signals transmitted and received by the modules are also shown. Figure 1 shows a single module 1 receiving a module reset signal 2 from some external source. Figure 2 shows a single module 3 generating its own module reset signal 4. Module reset signals cause modules to carry out a procedure that puts the module into a predetermined state. Conventionally this happens immediately and no steps are taken to ensure that other modules are informed of the reset the moment that it happens, which results in the problems discussed above. In an example of the present invention a module receiving a module reset signal is not immediately put into the predetermined state, but instead sends requests for permission to reset to the other modules and waits until those other modules send back their signals granting the permission. On receipt of the permission the module is then reset to the predetermined state. Figure 3 shows a simple example of a system having only two modules. On receipt of a module reset signal 5 the first module 6 sends a request for permission to reset signal 7 to the second module 8. On receipt of that signal 7 the second module 8 sends back to the first module 6 a permission granted signal 9, either immediately or after a period of time during which the module 8 takes any action needed to ensure that when the module 6 resets the system will not malfunction. On receipt of the permission granted signal 9 the first module 6 resets to a predetermined state. Note that in this example, as well as in all the examples described below, a module reset signal received by a module could be generated either externally, perhaps by another module as in Figure 1, or by the module itself in response to a particular condition as in Figure 2. Figures 4, 5 and 6 illustrate the adverse effects of a reset on a communication using handshaking and how these can be overcome by use of the present invention. The Figures show the waveforms of certain signals between two modules and will now be described in detail. Figure 4 shows a conventional handshake protocol for a communication system. When a first module, such as the module 6 shown in Figure 3, has some data to send to a second module, such as the module 8 shown in Figure 3, it transmits a request to send signal 10 to the second module by feeding a HIGH signal 10 over a line provided for the purpose. Some time later the second module 8 sends back an acknowledgement signal 12 by feeding a HIGH signal 13 over another line. Shortly afterwards both lines are released to LOW and the data is transferred. Figure 5 illustrates the problem that occurs if the first module 6 is reset before the acknowledgement signal 12 is returned. On being reset the first module 6 terminates the request to send signal 10 so that the HIGH level on the line is released at a time 14. That condition is not one that is expected by the second module 8 as part of the handshake protocol so that the further behaviour of the module 8 becomes unpredictable and/or erroneous. It may well simply issue an unexpected acknowledgement signal at a time 15 to the now reset first module 6. Figure 6 illustrates how two modules operating using the present invention overcome the problem just described with reference to Figure 5. Assume that after issuing a request to send signal 16 the first module 6 receives a module reset signal 5. The first module 6 then issues a reset permission request signal 7 at a time 17 to the second module 8 which then acts to prevent an acknowledgement signal being issued and instead sends a permission granted signal 9 at a time 18 to the first module 6. On receipt of the permission granted signal 9 the first module 6 is released to respond to the reset signal and changes to its predetermined state. In general a module may need to send reset permission request signals to several other modules with which it communicates and should receive permission granted signals from all of them before being reset. A more complex situation arises when a second module like that just described has both received a reset permission request signal from a first module and has issued a reset permission request signal to a third module. The next event could be either the second module issuing a permission granted signal to the first module or the second module receiving a permission granted signal from the third module. In the first case the first module would reset and the second module would await a permission granted signal from the third module before resetting. In the second case the second module would reset. This brings the second module into a predetermined state and so it would be unaware that the first module had issued a request unless the first module were to maintain its reset request signal until it received an answer, either sending the request continuously or reissuing the request from time to time. The second module should also be responsive to a maintained reset request signal after it has reset. An alternative to the first module maintaining the request signal is for the second module to maintain a record after it has reset that it had received before resetting a reset permission request from the first module, so that the second module can respond to the request after it has reset. This can be achieved by the second module maintaining a flag, that is not reset when the rest of the module is, the flag being set when the second module has received a reset permission request but has not responded with a permission granted signal. Either of these alternatives could be applied where a system has two modules both of which can issue reset permission requests to each other. Systems may also have modules which need to receive reset permission requests from more than one module or need to send them to more than one other module. Such systems are illustrated in Figures 7 and 8. Figure 7 shows a first module 19 which requires, when it receives a module reset signal 23, the permission of three other modules 20, 21, 22 before it can reset. To obtain that permission the first module issues to each of the modules a reset permission request 24, 25, 26. When each of the three modules 20, 21, 22 is ready to allow the first module to reset it returns a permission granted signal 27, 28, 29 to the first module. The first module only resets after it has received permission from all of the three other modules. It would be possible, of course, to connect the four modules so that a single reset permission request issued by the first module is applied to each of the three other modules. It would also be possible to combine the permission granted signals using some logic means to give a single signal indicating that all three had granted permission and to apply that single signal to the first module which would then reset in response to it. Figure 8 shows a first module 30 and three other modules 31, 32, 33 which require the permission of the first module 30 before they can reset. On receiving a module reset signal 34, 35 or 36 one of the three modules 31, 32, or 32 issues a reset permission request signal 37, 38 or 39 and waits for a permission granted signal 40, 41 or 42 to be returned. Preferably the first module 30 is constructed to be able to identify the module from which the request for permission signal originated and would issue the permission granted signal to that module. However, it would be possible for the fist module 30 to operate without being able to identify the source of a request for permission to reset signal, for example by having a common input for such requests and to issue a general permission signal. However some means may have to be provided for resolving any difficulties caused by more than one of the three modules making a request for permission to reset at the same time and each of the three modules should be prevented from resetting in response to a permission granted signal if it had not issued a request for permission. On the other hand, if the modules are so constructed that they always respond to a permission granted signal by resetting then all four modules can be reset at the same time in a simple way. On receiving a system reset signal 43 the first module issues a permission granted signal to each of the other modules, so causing them to reset, and also resets itself. It will be clear that the technique described above can be applied to any electronic system or circuit that can be divided into subsystems and that more complicated arrangements of subsystems requiring permission from others of the subsystems can be catered for by building up the system from the types of arrangements described. In some systems it may be required to be able to reset some modules without resetting others, though all of the modules are part of the same system. As an example, Figure 8 could be a computer having three processing units 31, 32, 33 working in parallel and a transfer processor 30 which coordinates the transfer of data between the other three processors. If the transfer processor is trying to transfer data to one of the parallel processors 31, 32, 33, it needs to know if that processor wants to reset, since a reset would disrupt the transfer of the data, possibly causing an error. The use of reset permission request and permission granted signals as described above allows that difficulty to be avoided. The processor 31 might be a master processor in charge of assigning tasks to the other processors 32, 33. When an error condition has occurred or a task is finished then the master processor may require one or both of the other parallel processors to reset, which it effects by providing a module reset signal 35 or 36 to that processor. For carrying the reset permission request signals and permission granted signals dedicated conductors could be provided in addition to, for example, data, address and control buses. Where a module receives a permission granted signal from more than one module or transmits permission granted signals to more than one module, individual conductors or a common conductor could be employed as mentioned above with reference to Figures 7 and 8. However, dedicated conductors may not be necessary; for example the signals could be transmitted using otherwise unused codes on the data, address or control bus between the modules.

Claims: A method of resetting a first module (6; 19; 31-33) of a system including a plurality of modules (6, 8; 19-22; 30-33) coupled together by a communication network, the exchange of signals between the modules over the network being governed by a protocol, the method including applying to the first module (6; 19; 31-33) a reset instruction signal (5; 23; 34-36), the first module (6, 19; 31-33) responding to the reset instruction signal (5; 23; 34-36) to cause a reset permission request signal (7; 24-26; 37-39) to be applied to at least one of the one or more other modules (8; 20-22; 30) of the plurality other than the first module, the or each of the modules receiving the reset permission request signal responding to the reset permission request signal (7; 24-26; 37-39) to send a permission granted signal (9; 27-29; 40-42) after it has taken any action necessary to complete or modify the protocol sufficiently to ensure that the system does not malfunction after the first module (6; 19; 31-33) has been reset, determining when the or each module that received the reset permission request signal has sent a permission granted signal (9; 27-29; 40-42), and resetting the first module (6; 19; 31-33) once that determination has been made. A method according to claim 1 wherein the reset instruction signal (5; 23; 34-33) is generated within the first module (6; 19; 31-33). A method according to claim 1 wherein the reset instruction signal (5; 23; 34-36) is generated externally to the first module (6; 19; 31-33). A method according to any one of claims 1 to 3 wherein if a module receiving a reset permission request signal (7, 24-26; 37-39) is reset it records an indication that it has received that request despite being reset, and responds to that indication to send the permission granted signal (9; 27-29; 40-42) after it has reset. A method according to any one of claims 1 to 3 wherein a reset permission request signal (7, 24-26; 37-39) is applied continuously or repeatedly to a module, that could reset before producing a permission granted signal (9, 27-29; 40-42) in response, until such time as the permission granted signal (9, 27-29; 40-42) is received from that module. A system having a plurality of modules (6, 8; 19-22; 30-33) coupled together by a communication network, the exchange of signals between the modules over the network being governed by a protocol, the system including first application means which apply to a first module (6; 19; 31-33) a reset instruction signal (5; 23; 34-36), second application means responsive to the receipt of the reset instruction signal by the first module to apply to at least another module (8; 20-22; 30) a reset permission request signal (7; 24-26; 37-39), the or each other module receiving the reset permission request signal including means responsive to the reset permission request signal to take any action necessary to complete or modify the protocol sufficiently to ensure that the system does not malfunction after the first module (6; 19; 31-33) has been reset and to produce a permission granted signal (9; 27-29; 40-42) after that action has been taken, logic means for determining when the module that received the reset permission request signal has produced a permission granted signal (9; 27-29; 40-42), and means responsive to the logic means to reset the first module (6; 19; 31-33) when that determination is made. A system according to claim 6 wherein the first application means is part of the first module (6; 19; 31-33) and is responsive to a condition of the first module. A system according to claim 6 wherein the first application means is external to the first module (6; 19; 31-33). A system according to any one of claims 6 to 8 wherein at least one other module receiving a reset permission request signal includes memory means for storing an indication when the particular module has received a reset permission request signal (7; 24-26; 37-39) but has not yet produced a permission granted signal (9; 27-29; 40-42), and means responsive to that indication when the particular module is reset to take any action necessary to complete or modify the protocol sufficiently to ensure that the system does not malfunction after the first module (6; 19; 31-33) has been reset. A system according to any one of claims 6 to 8 wherein the second application means is arranged to apply the reset permission request signal (7; 24-26; 37-39) continuously or repeatedly to at least one other module, and the or each such other module includes means responsive to the reset permission request signal after being reset itself to produce a permission granted signal (9; 27-29; 40-42).

Inventors: BALMER KEITH, ROBERTSON IAIN C, BALMER, KEITH, ROBERTSON, IAIN C.
Applicants: TEXAS INSTRUMENTS INC, TEXAS INSTRUMENTS LTD, TEXAS INSTRUMENTS INCORPORATED, TEXAS INSTRUMENTS LIMITED
Application year: 1993
Main classification: G06F11
IPC codes: G06F1, H04L29, G06F11, G06F13