Control processor, particularly for telecommunication applications, equipment for emulating it and method of carrying out an emulation

Abstract: The invention relates to a control processor of a system, particularly for telecommunication applications, to an equipment for emulating it and to a method of carrying out an emulation. Control systems based on processors use either microprocessors or DSPs (Digital Signal Processors) connected to a program memory, containing instructions necessary to realize the desired control, and to a set of input and output ports. The program normally reads the content of the input ports and, on this basis, calculates suitable values and write them in the output ports. Such a solution is often insufficient if the response times required to the control system are limited. By realizing a suitable processor whose set of instructions depend on the control to be realized and in which the control instruction which is executed each time is read out not from the program memory as usual, but from the input registers that indicate the status of the electric system, a remarkable increase in speed and reliability is obtained.

Description: The present invention relates to a control processor of a system, particularly for telecommunication applications, to an equipment for emulating it and to a method for carrying out an emulation. In the field of control systems the use of programmed logic is nowadays very common while in the past the wired logic was much more diffuse. The advantages of the programmed logic are well known: versatility, changeability, cost. At present when facing the design of a control system, e.g. an electronic system like one of the cards forming part of an exchange, first of all one selects a processor (a microprocessor or a DSP) among the great many ones available on the market so that it responds as far as possible to his needs, connects a program memory, a data memory and some sparse logic (generally input and output ports) to it, and finally prepares the program to be loaded into the program memory. In principle the program must read the content of a number of input ports, carry out calculations on such content, prepare suitable values and finally write such values into a number of output ports. As well known the input ports provide information about the status of the system being connected to special electric elements capable of this, and the output ports are able to modify the status of the system also they being connected to special electric elements able to do this. The effort of realizing such a kind of control system is somewhat limited; much less simple and fast is the test for such system, realized in the final analysis through processor emulators. If, on the other hand, the control must be realized in real time on system having extremely small time constants, like e.g. the boards forming part of an exchange, it is not easy to assure a control which is quick enough and reliable; moreover the emulation is practically impossible since commercial emulators are not intrinsically designed to operate in real time: indeed they stop the normal operation of the processor according to emulation requirements. It is an object of the present invention to overcome the drawbacks of the known art and, more particularly, to provide a control system having an architecture not too much complicated and therefore not too much expensive, capable of controlling in real time, easily and reliably systems having small time constants, and such as to be likewise tested easily and reliably during its normal operation and without interferring appreciably with it, so as to realize effectively the operation test of the control system in real time. This object is achieved through the control processor having the characteristics set forth in claim 1, through the equipment for emulating it having the characteristics set forth in claim 10, and through the method of realizing an emulation as set forth in claim 14. Further advantageous aspects of the present invention are set forth in the subclaims. By realizing a processor whose set of instructions depends on the control to be realized and in which the control instruction carried out each time, is read not by the program memory as usual, but by the input registers that indicate the status of the system, a remarkable increase in speed and also in reliability is obtained; moreover by providing the processor also with emulation instructions besides control instructions and leaving to it their handling there is not any appreciable interference on its operation and therefore a high reliability in emulation is obtained. Even if apparently the effort to realize such a processor may seem - at least from the design point of view - high, indeed, when passing on the realisation of the entire control system, the indirect economical advantages are high: in fact, often commercial processors, particularly if they are of recent production, are poorly tested and not much reliable and often design problems arise during their use; in such instances, e.g., one may either wait until the manufacturer overcomes the problem, or change type of processor, or try to do the best one can through an impromptu solution. In the instance of the present processor every problem can be overcome very often by changing few lines of firmware. The same remarks apply to the emulator but perhaps the situation is even worse since inside the latter the same processor to be emulated is used. At any rate, in order to reduce the design effort it is very advantageous to use the bit slice processor design technique which is exhaustively treated in the book "BIT-SLICE MICROPROCESSOR DESIGN" by J. Mick and J. Brick, McGraw Hill, 1980. The present invention will become more apparent from the following description of a not limiting embodiment taken in conjunction with the attached drawings in which; Fig. 1 represents a block diagram of the control processor according to the present invention, Fig. 2 represents a more detailed block diagram of the control processor of Fig. 1, Fig. 3 represents a block diagram of the equipment according to the present invention connected to a terminal which controls it and to a board containing a processor to be emulated, and Figs. 4 and 5 represent two detailed circuit diagrams of possible realisations of two parts of complement circuitry comprised in the equipment of fig. 3 and of how they are connected to the discrete circuitry also comprised in the equipment of fig. 3. In the following reference will be made to the control of operation of one of the boards which constitutes an exchange, but the subject of the present invention can be applied to any electrical system and, still more in general, to any system from which it is possible to receive information about its status through electric signals and to affect its status in a direct manner by sending electric signals. In the specific case which will be illustrated, electric signals are of a digital kind, the control system and the system to be controlled being both digital systems; should the system to be controlled operate with analog signals, as well known, it is very easy to convert digital signals into analog ones and viceversa analog signals into digital ones, respectively through D/A and A/D converters. The following description will start from the assumption that the system already contains inside it first electric elements from which it is possible to receive digital information about its status (which, in general, are input ports), and second electric elements capable of receiving digital information and capable of affecting in a direct manner its status (which, in general, are output ports). In fig. 1 there is shown a block diagram of the control processor according to the present invention. The processor is provided with inputs I connected to first electric elements (not shown in fig. 1) and outputs O connected to second electric elements (not shown in fig. 1); it comprises a computer control unit CCU having first inputs I1 connected to inputs I of the processor and outputs O1 connected to outputs O of the processor. Computer control unit CCU receives, through such first inputs I1, instructions to be carried out by it hereinafter referred to as "control instructions". In addition to computer control unit CCU, generally the processor needs to include an arithmetic processing unit APU intended as a group comprising at least an ALU (Arithmetic Logic Unit), a set of registers to store operands and results of operations, and some circuitry for coordinating the various elements: there are several devices in the Advanced Micro Devices Am 2900 family suitable for the purpose (Am 201, Am 2902, Am 2903, ....,). The need of using an arithmetic processing unit exists, of course, if the control to be realized contemplates the execution of logic-arithmetic operations: in particularly simple cases this does not occur. Unit APU needs data inputs and outputs, control inputs and outputs. Data inputs are connected to inputs I of the processor: depending on needs, only some or all the lines constituting inputs I will be also data input lines of unit APU. Data outputs are connected to first outputs O1 of unit CCU and together form the outputs O of the processor: depending on circumstances some lines of the outputs of unit APU will be electrically connected with some lines of outputs O1 of unit CCU, while others will remain independent. The control inputs are connected to unit CCU, which transmits through them arithmetic processing commands (loading of a value from data inputs in a register, data transfer between two registers, emission, through data outputs, of a value contained in a register, sum of values contained in two registers, NOT operation on the content of a register, SHIFT of the content of a register, ....). The control outputs are connected to unit CCU which receives through the same information concerning the status of unit APU (operation in progress, result of an operation carried out, result of a test carried out, ...). When time requirements are particularly stringent it becomes very important to be able to become aware of asynchronous events as soon as they occur; for this reason in these circumstances it is advisable to see that unit CCU is provided with interrupt inputs IS; in general they are few (one, two or three). In order to free unit CCU from the burden of decoding the interrupt it is advantageous to put an interrupt controller IC before inputs IS: there are several devices in the Am 2900 family of Advanced Micro Devices suitable for the purpose (Am 2913, Am 2914). Naturally all this circuitry requires suitable clock signals, as well as all synchronous logic circuits: hence a suitable timing unit TU must be provided inside the processor. Finally the circuit feeding is not to be neglected even if, in general, it is not a problem also with respect to existing control systems. Before describing unit CCU in more detail, it is useful to say in advance that, in order to realize an effective emulation of the processor in accordance with the present invention, it is necessary to provide unit CCU with second inputs I2 and an emulation instruction register EIR, inside the processor, having an input EII through which it receives emulation instructions and having outputs connected to said second inputs I2. Unit CCU enables in a mutually exclusive way the first I1 and second I2 inputs and in this way carries out, with criteria that will be explained hereinafter, both control instructions and emulation instructions. Fig. 2 shows a more detailed block diagram of the control processor of fig. 1. Although such diagram is similar to that one of a conventional processor realized through bit-slices, it differs from the latter in a conceptually substantial manner since there is not any register which has only an instruction register function. Every detail relative to blocks included in the diagram may be learned anyway from e.g. the above-mentioned book and relative DATA-BOOKS of AMD (Advanced Micro Devices). Unit CCU, shown inter alia in fig. 2, comprises: a) a status register SR having inputs connected to first inputs I1 of computer control unit CCU, b) a mapping memory MM, having address inputs connected to the outputs of said status register SR, c) a sequencer SEQ, having first inputs connected to data outputs of the mapping memory MM, d) a microprogram memory PM, having address inputs connected to the outputs of the sequencer SEQ, and e) a pipeline register PR, having inputs connected to data outputs of the microprogram memory PM, and having first outputs connected to outputs O1 of the computer control unit CCU. The heart of this structure is the sequencer SEQ (e.g. realisable through AM2910 of AMD). The control instruction to be executed passes from first inputs I1 of unit CCU to status register SR; such information is used for addressing memory MM; at its data output there is a binary value that represents the address of the subroutine contained in the memory PM, which must be executed by sequencer SEQ in correspondence with the particular status of the system under control; the execution of this subroutine causes the generation of suitable values towards the outputs O1 of unit CCU from pipeline register PR. If, as said, there is the need of using unit APU, the status register SR must receive at the input the control outputs of unit APU and the pipeline register PR must have second outputs connected to the control inputs of unit APU. The structure as described allows the microprogram loaded into memory PM to carry out only very simple instructions. It is very common that one desires to execute conditioned and not conditioned jumps, subroutine calls and returns, etc.; in this instance such structure must be completed by adding a multiplexer TMUX for test conditions having data inputs connected to the outputs of the status register SR and select inputs connected to third outputs of the pipeline register PR, and having at least an output connected to second inputs of the sequencer SEQ, and by providing sequencer SEQ with third inputs connected to fourth outputs of the pipeline register PR through connections NI and BA. Multiplexer TMUX selects among several status bits contained in the status register SR, the one that is intended to be tested through select inputs and sends it to sequencer SEQ. Connections NI and BA provide sequencer SEQ with information relative to sequence control and, more specifically, connection NI establishes if sequencer SEQ should proceed with the normal sequence of operations, it should execute a conditioned jump, an unconditioned jump, ... while connection BA establishes the address of memory PM in which next instruction to be carried out by sequencer SEQ is found. If there is the need of using the interrupt inputs IS, these must be obviously connected to fourth inputs of sequencer SEQ. Therefore it is clear that the control is carried out according to the content of memory PM that will have a number of words connected with the complexity of the algorithm that realizes the control and also of the system to be controlled, of course. The dimension of its word, on the contrary, will be basically connected with the output lines comprised in outputs O1 and will depend on the particular application: generally such dimension is considerable: from 64 to 128 bits. The pipeline register PR must necessarily have the same word dimension. By selecting among, e.g., components of the Am 2900 family, the variation of such parameters is very simple, and every good technician will find the most suitable choice to his needs. Before starting the description of the equipment in accordance with the present invention, it is to be pointed out that the outputs of the emulation instruction register EIR and of the status register SR are connected together and fed to the input of the mapping memory MM. If one desires to avoid that memory MM is reached at the same time by emulation instructions and control instructions, a possible solution is to see that the outputs of these two registers are enabled in a mutually exclusive way: for instance one of the output lines of the pipeline register PR may be picked up and used in a not-form, through inverter INV, as enabling signal of register SR and in a not-not-form as enabling signal of register EIR, as shown in fig. 2. In the opposite instance, not shown in fig. 2, there is, of course, the possibility that the outputs of register EIR and of register SR arrive in parallel at memory MM and that both sequencer SEQ and the microprogram contained in memory PM are pre-arranged for carrying out at the same time both emulation instructions and control instruction. Fig. 3 shows a block diagram of the equipment EMU in accordance with the present invention connected to a terminal TERM controlling it and to a board PBA containing a processor to be emulated; the processor is removed from its socket Z and equipment EMU is connected to said socket Z. It is well known to those skilled in the art how it happens, in general, the carrying out of the test through emulator: briefly speaking it is a matter of controlling how the status of the processor, represented by the content of its registers, evolves during execution, in the special case of the control to be realized; the operator that carries out the test sends, through terminal TERM, emulation commands (value extraction from a certain register, value loading into a certain register, processor blocking under a determined condition, step-by-step execution, ...) and receives the results of said emulation commands generally in the form of displays on the same terminal TERM. Equipment EMU, in accordance with the present invention, comprises: a) an emulation controller EC connected to terminal TERM, receiving emulation command from it and sending it results of said commands, b) a discrete circuitry ECPROC having the structure of the processor as described above, i.e. comprising at least the emulation instruction register, and receiving from the emulation controller EC emulation instructions through input EII of the emulation instruction register EIR, and c) a complement circuitry AO, receiving/sending from/to said emulation controller EC input/output emulation data, manifoldly and strictly connected to the discrete circuitry ECPROC. The emulation controller EC has the very important function of converting the high level emulation commands into one or, much more frequently, a series of emulation instructions suitable for the processor, and also the function of preparing the output emulation data towards the circuitry AO and of receiving and processing the input emulation data from circuitry AO. Such controller can be advantageously and easily realized through a microprocessor MPR and a data and program memory MEM and, of course, it must be provided with suitable interfaces towards terminal TERM, circuitry ECPROC and circuitry AO. In order to detail better the structure of circuitry AO it is advisable to point out that pipeline register PR contained in the processor subject of the present invention, at least for emulation purposes, must comply with certain simple features. Such register is, like all others, constituted by a plurality of flip-flops each receiving at the input a binary signal and generating at the output a corresponding binary signal and moreover it is provided with an input enabling its output. Fig. 4 illustrates that, depending on the destination of the various output binary signals, the flip-flops are grouped so as to form subregisters SR1, SR2, ...., SRN; all flip-flops belonging to the same subregister have their enabling inputs connected together, in general the set of outputs of a subregister is provided at the input of a special block of the processor itself, e.g. of unit APU, of multiplexer TMUX, etc. In addition an emulation subregister SRE must be provided. Circuitry AO comprises at least an emulation register ER1 receiving at the input said emulation input data from the emulation controller EC; the outputs of an electrical element interior or exterior to the processor (the status register SR in the example of fig. 4) are connected with the outputs of register ER1 and are enabled, in a mutually exclusive way, by one of the outputs of the emulation subregister SRE. Circuitry AO comprises, in addition or in alternative, at least another emulation register ER2 receiving at the input said input emulation data from emulation controller EC; the outputs of at least one of data subregisters, subregister SR2 in the example of fig. 4, are connected with outputs of register ER2 and are enabled, in a mutually exclusive way, by one of the outputs of the emulation subregister SRE. The mutual exclusion can be simply obtained by using the same electric signal, in a natural form and in a not-form through inverters INV, for enabling. Naturally, the emulation registers comprised in circuitry AO can be numerous; in fig. 4 they are N: from ER1 to ERN. In this way during emulation it is possible to make any point of the circuit forming the processor assume any binary value and observe afterwards the behaviour of the processor. Having thus illustrated how it is possible to force binary values inside the processor, it is necessary now to describe how it is possible to observe the behaviour of the processor. As it will be seen from fig. 5, to this end it is necessary to include at least one emulation multiplexer EMUX in circuitry AO, receiving at the input a plurality of data busses DB and sending said emulation output data to said emulation controller EC. The selection of data to be sent is realized by said emulation multiplexer EMUX according to some of the outputs of emulation subregister SRE. Such data busses DB are simply set of lines connected to points of particular interest of the circuit that constitutes the processor. Since the control, inside the processor, of operations connected with emulation occurs thanks to signal outcoming from emulation subregister SRE, it is determined by the content of the various words selected by sequencer SEQ inside memory PM. From the conceptual point of view the operation of the processor is independent of the fact that it is carrying out control, emulation or both: in fact the instruction addresses a cell inside memory PM of the subroutine that realizes the execution of such instruction; sequencer SEQ carries out the subroutine by transferring in sequence into register PR the words contained in the memory PM starting from such address up to the end of the subroutine. It is then the content of register PM that determines the whole operation of the processor in every step of it. It remains to be seen how to realize an emulation, in particular by using the above described equipment. During the normal operation of the processor emulation instructions are loaded by the emulation controller EC into emulation instruction register EIR without stopping the operation itself. The processor from time to time checks the presence of emulation instructions in said register or it may be contemplated that it is alerted of the presence of emulation instructions in said register through the sending of an interrupt signal by the emulation controller itself. The processor carries out said emulation instructions when its normal operation allows it, e.g. when according to any criterion it considers that the system to be checked may wait, or while it performs its normal operation.

Claims: Control processor for a system, particularly for telecommunication applications, having inputs (I) connected to first electric elements indicating the status of said system and outputs (0) connected to second electric elements able to modify the status of said system, characterized in that it comprises a computer control unit (CCU) having first inputs (11) and outputs (01) respectively connected to said inputs (I) and outputs (0) of said processor, and in that said first inputs (11) provide said computer control unit (CCU) with control instructions to be carried out by the latter. Control processor according to claim 1, characterized in that it further comprises an arithmetic processing unit (APU) having data inputs and data outputs respectively connected to said inputs (1) and outputs (0) of said processor, having control inputs and control outputs connected to said computer control unit (CCU), receiving from said computer control unit (CCU) arithmetic processing commands, and sending to the same unit information concerning its own status. Control processor according to claim 1, characterized in that it further comprises an interrupt controller (IC) with outputs connected to interrupt inputs (IS) of said computer control unit (CCU). Control processor according to claim 1, characterized in that it further comprises an emulation instruction register (EIR), having an input (Ell) designed to receive emulation instructions, and having outputs connected to second inputs (12) of said computer control unit (CCU), and in that said computer control unit (CCU) enables in a mutually exclusive way said first (l1) and said second (12) inputs. Control processor according to claim 1, characterized in that said computer control unit comprises: a) a status register (SR) having inputs connected to said first inputs (l1) of said computer control unit (CCU), b) a mapping memory (MM), having address inputs connected to the outputs of said status register (SR), c) a sequencer (SEQ), having first inputs connected to the data outputs of said mapping memory (MM), d) a microprogram memory (PM), having address inputs connected to the outputs of said sequencer (SEQ), and e) a pipeline register (PR), having inputs connected to data outputs of said microprogram memory (PM), and having first outputs connected to said outputs (01) of said computer control unit (CCU). Control processor according to claims 2 and 5, characterized in that said status register (SR) receives at the input said control outputs of said arithmetic processing unit (APU), and that said pipeline register (PR) has second outputs connected to said control inputs of said arithmetic processing unit (APU). Control processor according to claim 5, characterized in that said computer control unit (CCU) further comprises a test condition multiplexer (TMUX) having data inputs connected to the outputs of said status register (SR) and select inputs connected to third outputs of said pipeline register (PR), and having at least one output connected to second inputs of said sequencer (SEQ), and in that said sequencer(SEQ) has third inputs, connected to fourth outputs of said pipeline register (PR), for receiving information (NI, BA) relative to sequence control. Control processor according to claims 3 and 5, characterized in that said sequencer (SEQ) has fourth inputs conneced to said interrupt inputs (IS) of said computer control unit (CCU). Control processor according to claims 4 and 5, characterized in that the outputs of said emulation instruction register (EIR) and of said status register (SR) are connected with said mapping memory (MM), and that said two registers (EIR, SR) receive at the input signal capable of enabling in a mutually exclusive way the respective outputs. Equipment (EMU) for emulating a control processor according to claim 4 or 9, to be connected directly to the socket (Z) of said processor and controlled by a terminal (TERM), characterized in that it comprises: a) an emulation controller (EC), connected to said terminal (TERM), receiving from it emulation commands and sending to the same results of said commands, b) a discrete circuitry (ECPROC) having the structure of said control processor and receiving from said emulation controller (EC) emulation instructions through said input (EII) of said emulation instruction register (EIR), and c) a complement circuitry (A0), receiving/sending from/to said emulation controller (EC) input/output emulation data, manifoldly and strictly connected to said discrete circuitry (ECPROC). Equipment according to claim 10, and comprising a control processor as claimed in claim 9, characterized in that said pipeline register (PR) comprises at least a data subregister (SR1) and an emulation subregister (SRE), in that said complement circuitry (A0) comprises at least an emulation register (ER1) receiving at the input said emulation input data from said emulation controller (EC), and in that the outputs of an electric element (SR) interior or exterior to the processor and of said emulation register (ER1) are connected together and enabled in a mutually exclusive way by the outputs of said emulation subregister (SRE). Equipment according to claim 10, characterized in that said pipeline register (PR) comprises at least a data subregister (SR2, -.., SRN) and an emulation subregister (SRE), in that said complement circuitry (A0) comprises at least an emulation register (ER2, ..., ERN) receiving at the input said emulation input data from said emulation controller (EC), and in that the outputs of said data subregister (SR2, SRN) and said emulation register (ER2, ...,ERN) are connected together and enabled, in a mutually exclusive way, by the outputs of said emulation subregister (SRE). Equipment according to claim 10, characterized in that said pipeline register comprises at least a data subregister (SR1) and an emulation subregister (SRE), and in that said complement circuitry (A0) comprises an emulation multiplexer (EMUX) receiving at the input a plurality of data busses (DB) sending said emulation output data to said emulation controller (EC), and in that the selection of data to be sent is realized by said emulation multiplexer (EMUX) on the basis of the outputs of said emulation subregister (SRE). Method of emulating a control processor for a system, particularly for telecommunication applications, having inputs (l) connected to first electric elements indicating the status of said system and outputs (0) connected to second electric elements able to modify the status of said system, comprising a computer control unit (CCU) having first inputs (l1) and outputs (01) respectively connected to said inputs (l) and outputs (0) of said processor, wherein said first inputs (l1) provide said computer control unit (CCU) with control instructions to be carried out by the latter, said control processor including at least an emulation instruction register (EIR), the method being characterized in that, during the normal operation of the control processor, emulation instructions are loaded in said emulation instruction register (EIR) without stopping the operation itself. Method according to claim 14 wherein said processor from time to time checks the presence of emulation instructions in said register (EIR). Method according to claim 14 wherein said processor is alerted of the presence of emulation instructions in said register through sending an interrupt signal. Method according to claim 14 wherein said emulation instructions are interpreted and carried out by said processor in accordance with a microprogram.

Inventors: LISCA LORENZO, LISCA, LORENZO
Applicants: CIT ALCATEL, ALCATEL
Application year: 1993
Main classification: G06F9
IPC codes: G06F9