DATA PROCESSING SYSTEM

Abstract: This data processing system has different kinds of mi­ croprocessors (12A, 12B, 12C), a memory bus (MB), a memory (14) which is connected to the microprocessors (12A, 12B, 12C) through the memory bus (MB), and a control circuit to se­ lectively activate one of the microprocessors (12A, 12B, 12C). A feature of the control circuit of this data processing system is that it has a selection controller (26) in which a selection data item is set by the active one of the microprocessors (12A, 12B, 12C) and a selector (28) for supplying rest mode signals to the microprocessors excluding the one microprocessor corre­ sponding to the content of the selection controller (26).

Description: The present invention relates to a software development apparatus having different kinds of processing units and, more particularly, to an apparatus in which one of these processing units is selectively activated. In recent years, various kinds of microprocessors of relatively cheap prices are put on the market. For example, many of intelligent equipment such as word processor systems, communication apparatuses, and the like use a general purpose microprocessor as a major unit for data processes. For the manufacturers of such intelligent equipment, programming of the general purpose microprocessor, namely, development of the software is the work that is almost as important as design of the peripheral hardware of this general purpose microprocessor. In development of the software of the intelligent equipment, the developer first makes a source program corresponding to a desired sequence, for example, a word processing sequence. The source program, in this case, is ordinarily described by the language such as, e.g., assembly language or compiler language which is easy for the developer to understand. After making the source program, the developer makes the object program using the software development tool having an assembler or compiler. The source program is converted by the assembler or compiler to the object program of binary code which can be executed by the special microprocessor. This object program is preliminarily stored into, for example, a ROM, disk memory, or the like in order to actually use as the software of the intelligent equipment and is held to the state in that it is ready to be read out. Hitherto, the data processing system having one microprocessor has been known as the foregoing software development tool. In the case where a single software development tool is used for development of softwares of various kinds of intelligent equipment, this development tool needs the dedicated assembler or compiler programs corresponding to each of different kinds of microprocessors for the converting processes. Due to this, the software development tool having one microprocessor has the following two drawbacks. The first drawback is that the object program made cannot be easily debugged in many cases. Namely, when the microprocessor of this development tool is of the same type as the microprocessor for use in the intelligent equipment, the microprocessor of the development tool can execute, as a test, the object program made for the purpose of debugging. However, in the case where the kind of microprocessor of the development tool differs from that of the intelligent equipment, for example, of the word processing system, the microprocessor of the development tool cannot be used to debug the object program unless an emulation is executed. This is because the binary code of the object program is recognized as another instruction different from the inherent instruction by the microprocessor of the development tool. In the emulation, the processor of the development tool recognizes the binary code of the object program as the data instead of the execution instruction and virtually executes the object program. However, for this emulation, a plurality of emulation programs must be prepared in accordance with the kinds of microprocessors. The second drawback is that it takes a fairly long time and cost to make the cross assembler or cross compiler (programs) corresponding to each of the microprocessors. These assembler programs and compiler programs are all described by the binary codes which can be executed by the microprocessor of the development tool. Generally, the persons who put microprocessors on the markets provide the self assembler of the reasonable price for allowing the object program which can be executed by the microprocessors to be made by a single microprocessor of the same kind as them on the market. However, it is the rare case where the suppliers provide the cross assembler for allowing that object program to be made by the single microprocessor of the type different from the microprocessors which are supplied. It is obvious that a plurality of cross assemblers must be prepared in addition to up to one self assembler in order to allow one microprocessor in the software development tool to make the object programs for various kinds of microprocessors. The number of those cross assemblers increases in proportion to the number of kinds of microprocessors to which the software development tool must correspond. Particularly, in recent situation such that a number of microprocessors of the latest model are developed, there is a large risk such that the time and costs are in vain due to production of cross assemblers. In addition, although there is not directly concerned with the software development, Japanese Patent Unexamined Publication No. 129673/1983 discloses the data processing system having different kinds of microprocessors. According to this data processing system, the execution programs of the first and second microprocessor units are stored into a single memory unit. This memory unit is connected to the first and second microprocessor units through an address bus and a data bus. Each microprocessor unit selects one of memory locations in the memory unit through the address bus and receives the content at the memory location selected, namely, the processing instruction through the data bus. This data processing system further has an instruction interpreting section, a flip-flop, and a selecting circuit. The instruction interpreting section is connected to the memory unit through the data bus. When change instructions of the first and second microprocessor units are read out from the memory unit, the instruction interpreting section generates an output data to designate either one of the first and second microprocessors in accordance with this instruction. The flip-flop receives the output data from the instruction interpreting section and holds it. The selecting circuit is connected to the flip-flop and activates one of the first and second microprocessor units and also inactivates the other in accordance with the data held in the flip-flop. However, the instruction interpreting section of this data processing system cannot help increasing in scale since its structure is remarkably complicated due to the following reasons. In other words, the function itself of the instruction interpreting section is equivalent to one microprocessor. The first reason is that the data bus transfers not only the execution instructions of the first and second microprocessor units but also the processing data. Therefore, the instruction interpreting section must discriminate whether the binary code on the data bus is the instruction or the data. The second reason is that the instruction interpreting section must preliminarily know which one of the first and second microprocessor units is active. Unless otherwise, the instruction interpreting section cannot distinguish whether the processing instruction on the data bus is the processing instruction for the first microprocessor unit or for the second microprocessor unit. In addition to this, there is the case where the processing instruction is constituted by the number of bits larger than the number of bits of the data bus. In this case, the processing instruction is divided into a plurality of words and stored into the memory unit and each word is read out from the memory unit at a different timing. Therefore, to certainly detect the change instructions of the first and second microprocessor units, the instruction interpreting section must know the processing instruction of which number of words is being transferred through the data bus. The third reason is that the change instruction must be the binary code as the non-execution instruction for the active microprocessor. With the structure having the first and second microprocessor units, the binary code to switch from the first microprocessor unit to the second microprocessor unit and the binary code to switch from the second microprocessor unit to the first microprocessor unit are needed. Namely, the binary codes which can be used as the change instructions are restricted. Therefore, the instruction interpreting section must inevitably discriminate the binary code of two or more bytes as the change instruction. On the other hand, in the case where a DMA (direct memory access) is provided in this data processing system, data is transferred through the data bus between the memory unit and the I/O devices irrespective of the first and second microprocessor units. This causes the structure of the instruction interpreting section to be further complicated. Further, an apparatus as specified in the preamble of independent claim 1 is e.g. known from IBM Technical Disclosure Bulletin, Vol. 24, No 7A, December 1981, pages 3370-3372, P.W. Agnew et al.: "Implementation of main frame system using several microcoded microprocessors and a coded microprocessor". It is an object of the present invention to provide a data processing system in which the structures of control hardware and software to selectively activate one of different kinds of microprocessors are extremely simple. According to the invention a software development apparatus is provided as set out in independent claim 1. In addition, this invention reduces the manufacturing cost of the system, since the different kinds of processing units perform independent processings using the same bus section and memory unit. When this apparatus is used for developing the softwares of the same types of the processing units, self assembler programs or self compiler programs are stored in the memory unit as the execution programs. There is no need to use cross assembler programs or cross compiler programs. The attached figure is a block diagram of a data processing system of an embodiment of the present invention. An embodiment of the present invention will be described with reference to the attached figure. The figure shows a data processing system 10 which is used as, for example, a software development tool. This data processing system 10 has a processing section 12 to perform data processes on, for example, a 16-bit word length unit basis, a memory section 14, and an input/output (I/O) control section 16. These sections 12, 14, and 16 are interconnected by a memory bus MB. Memory bus MB includes an address bus AB, a data bus DB, and a control bus CB. I/O control section 16 is connected to I/O devices such as a keyboard 18, a disk memory unit 20, a display unit 22, and the like. I/O control section 16 is selected by processing section 12 through address bus AB and controls the data transfer between the specific I/O device and data bus DB. Processing section 12 includes different kinds of, for example, first to third microprocessors 12A, 12B, and 12C and buffer circuits 24A, 24B, and 24C. Each microprocessor has an input terminal to receive a rest mode signal to control the suspension of the operation, for example, a reset terminal. Microprocessors 12A, 12B, and 12C are connected to memory bus MB through respective buffer circuits 24A, 24B, and 24C and there is the parallel relationship thereamong. Buffer circuits 24A, 24B, and 24C cancel the differences of the Input/Output characteristics (e.g., logical combinations of read/write control signals, input/output impedances and input/output voltages) among microprocessors 12A, 12B, and 12C for the data transfer through memory bus MB. Each buffer circuit has a control terminal to receive the rest mode signal and sets the output impedance of itself to an enough high value in response to this rest mode signal. At this time, the corresponding microprocessor is electrically separated from memory bus MB. The execution programs of the first to third microprocessors, e.g., the assembler programs are preliminarily stored in disk memory unit 20 and are read out from disk memory unit 20 to memory section 14 immediately before the execution. Processing section 12 further includes a selection controller 26, a selector 28, and a reset circuit 30. Selection controller 26 has an address circuit 32 and a two-bit register 34. Address circuit 32 is connected to microprocessors 12A, 12B, and 12C through memory bus MB and respective buffer circuits 24A, 24B, and 24C. Address circuit 32 has one I/O address and is selected through address bus AB by active one of microprocessors 12A, 12B, and 12C. During this selection, address circuit 32 is supplied with two-bit selection data from the same microprocessor through data bus DB and with a read enable signal through control bus CB. Address circuit 32 sets the selection data into register 34 synchronously with the read enable signal. The system has a power switch (not shown) for controlling a power supply to each circuit element. The power switch is turned on to start the operation of this system. Reset circuit generates a system reset signal upon application of the power supply. This system reset signal clears the content of register 34 to "00". After an elapse of a predetermined time, reset circuit 30 sets a predetermined data, for example, data "01" to designate first microprocessor 12A into register 34. The content of register 34 is supplied to selector 28 and decoded by selector 28. Selector 28 has first to third output terminals corresponding to the number of microprocessors 12A, 12B, and 12C. The first output terminal of selecter 28 is connected to a reset terminal of microprocessor 12A and a control terminal of buffer circuit 24A. The second output terminal of selector 28 is connected to a reset terminal of microprocessor 12B and a control terminal of buffer circuit 24B. The third output terminal of selector 28 is connected to a reset terminal of microprocessor 12C and a control terminal of buffer circuit 24C. Selector 28 generates the rest mode signals from the first to third output terminals when register 34 is reset. Unless otherwise, selector 28 generates the rest mode signal from the output terminals excluding one of the first to third output terminals. Namely, when the content of register 34 is "00", all of first to third microprocessors 12A, 12B, and 12C are made inoperative. When the content of register 34 is "01" the first microprocessors 12A is solely activated and the others 12B and 12C are made inoperative. When the content of register 34 is "10", the second microprocessor 12B is solely activated and the others 12A, 12C are made inoperative. When the content of register 34 is "11", the third microprocessor 12C is solely activated and the others 12A, 12B are made inoperative. The structure of memory 14 will then be described in detail. Memory 14 has a RAM 14A into which the execution programs of microprocessors 12A to 12C are alternately loaded, a ROM 14B storing the loader program which allows first microprocessor 12A to load the execution program of first microprocessor 12A into the RAM 14A from disk memory unit 20, and a memory control circuit 14C to change over these ROM 14B and RAM 14A. An initial memory area in the RAM 14A has the same address as that of a memory area in the ROM 14B. The loader program starts from the head address location in the ROM 14B. The control circuit 14C inhibits the readout from the RAM 14A and permits the readout from the ROM 14B in response to a system reset signal from reset circuit 30. After completion of the program loading, this control circuit 14C inhibits the readout from the ROM 14B and permits the readout from the RAM 14A due to a control of microprocessor 12A. Disk memory unit 20 preliminarily stores various kinds of execution programs which are executed by first, second, and third microprocessors 12A, 12B, and 12C, respectively. In this embodiment, as those various kinds of execution programs, for example, three kinds of self assembler programs which are used for software development of the intelligent equipment having the same kind of microprocessor as the first to third microprocessors are stored. For instance, the first self assembler program has been described by the binary code which can be interpreted by first microprocessor 12A, and makes the object program which can be executed by first microprocessor 12A for the purpose of the test. The second self assembler program is described by the binary code which can be interpreted by second microprocessor 12B, and makes the object program which can be executed by second microprocessor 12B for the purpose of the test. The third assembler program is described by the binary code which can be interpreted by third microprocessor 12C, and makes the object program which can be executed by third microprocessor 12C for the purpose of the test. Each execution program includes a routine for allowing the active microprocessor to load the program to be executed next and a routine for setting the selection data to designate the microprocessor which executes this loaded program into selection controller 26. The operation of this data processing system will then be described. When power switch is turned on, the content of register 34 is cleared to "00" by the system reset signal from reset circuit 30. Thus, selector 28 generates the rest mode signals from the first, second, and third output terminals. Microprocessors 12A to 12C are held in the inoperative mode by the rest mode signals. During this period, buffer circuits 24A to 24C electrically separate microprocessors 12A to 12C from memory bus MB. Reset circuit 30 sets the content of register 34 to "01" after an elapse of a predetermined time required for all of the circuit elements to be set up. Due to this, selector 28 stops generating the rest mode signal from the first output terminal and continuously generates the rest mode signals from the second and third output terminals. The supply of the rest mode signal to first microprocessor 12A is stopped, so that the first microprocessor 12A starts the processes. Simultaneously, buffer circuit 24A electrically couples first microprocessor 12A with memory bus MB. On the other hand, the memory control circuit 14C responds to the system reset signal and inhibits the readout of the instruction data from the RAM 14A. Due to this, first microprocessor 12A executes the loader program in the ROM 14B and loads the first self assembler program from disk memory unit 20 into the RAM 14A and executes the first self assembler program. The end of processes by the first assembler program and a change instruction of the processor are informed to microprocessor 12A, for example, by keyboard 18 or the program itself. The execution program of the microprocessor which is used next is loaded by microprocessor 12A from disk memory unit 20 into the available area in the RAM 14A. For example, in the case of using second microprocessor 12B, the second self assembler program is loaded. At this time, an initial jump instruction is set into that memory location (e.g., address "0") of RAM 14A which corresponds to the execution start address of second microprocessor 12B. After completion of this program loading, first microprocessor 12A outputs a selection data "10" to selection controller 26. When the content of register 34 is updated to data "10", selector 28 stops generating the rest mode signal from the second output terminal and generates the rest mode signals from the first and third output terminals. Namely, first microprocessor 12A is made inoperative together with third microprocessor 12C and second microprocessor 12B is activated. The second microprocessor executes the second self assembler program already loaded into memory 14 from the initial execution address. On one hand, in the case of using the third microprocessor as well, the changing can be performed in a manner similar to the above. As described above, in the case where the active microprocessor selects by the address signal of selection controller 26 and sets the selection data to controller 26, complicated functions such as the conventional ones are not required for selection controller 26. The operation of register 34 is the output operation after it was processed by the microprocessors and is independent of the kinds of microprocessors. Therefore, an ordinary input/output register circuit, for example, an LSI of a parallel input/output interface (PIO) or the like may be directly used as register 34. In other words, the use of register 34 makes it possible to update the active microprocessor independently of the kinds of and the number of microprocessor by using the simplest input/output circuit (or one address location in the memory) and the existing signal line. In the data processing system of the embodiment, memory section 14 and control section 16 as many as one system are provided: however, for processing section 12, a plurality of different kinds of microprocessors 12A, 12B and 12C are connected in parallel to memory bus MB and are designated by register 34 such that only one of microprocessors 12A, 12B and 12C is made operative and the supply of the rest mode signal is canceled. On the other hand, the rest mode signals are applied to the other microprocessors and the corresponding buffer circuits and their outputs are in the high impedance states and electrically separated from memory bus MB. Since the active microprocessor is easily chcanged by applying and canceling the rest mode signal in this manner, the hardware constitution is extremely simple and the software control is also simple and the programs of various kinds of microprocessors can be executed as they are due to a remarkably simple procedure. In the data processing system, different kinds of microprocessors 12A, 12B and 12C are selectively activated. Therefore, this system can utilize self assembler programs in the software development for the same kinds of microprocessors. There is no need to provide cross assembler programs to the system. As a result, a high cost performance is obtained in the system. Although the rest mode signals are supplied to the reset terminals of the microprocessors 12A, 12B and 12C in the embodiment, the invention is not necessarily limited to the reset terminals. The invention can be also realized by the use of hold terminals, stop terminals, wait (ready) terminals, acknowledge terminals, or the like which are generally provided for general purpose microprocessors. In addition, in place of directly stopping the microprocessors, by electrically separating the microprocessors 12A, 12B and 12C to be inactivated from the memory bus MB by the buffer circuits 24A, 24B and 24C corresponding to the inactivated microprocessors, these microprocessors are set into substantially the rest mode; therefore, those microprocessors may be in the operative mode. However, in such a case, an attention must be paid to the setting of the start address or restart address when the active microprocessors was changed. On the other hand, the data processing system of the invention is independent of the number of microprocessors. Further, with respect to the constitutions of register 34 and selector 28 as well, the number of bits of register 34 may be equalized to the number of microprocessors and the outputs of respective bits may be directly connected to the corresponding microprocessors, thereby enabling the respective microprocessors to be activated or inactivated. In this case, address circuit 32 may have plurality of I/O addresses to selectively designate the respective bits of register 34. In addition, each of the microprocessors 12A, 12B and 12C is constituted by sixteen bits. However, this invention is not limited to this. They may be 8-bit microprocessors. Or, the number of bits of respective microprocessors may differ.

Claims: A software development apparatus comprising: bus means (MB) for transferring signals; memory means (14, 20), connected to the bus means (MB), for storing source program data; a plurality of kinds of microprocessors (12A - 12C) connected in parallel to the bus means (MB); and selection means (28); characterized in that converting means connected to the bus means (MB), for converting said source program data into an executable form comprises: register means (26) for storing selection data; said plurality of kinds of microprocessors (12A - 12C) each of which is programmed to convert the source program data into a form executable by itself and updates the selection data stored in said register means (26), by executing a corresponding control program; adapter means (24A - 24C), connected between said bus means (MB) and said plurality of microprocessors (12A - 12c), for cancelling differences in input/output characteristics of said microprocessors (12A - 12C) which include logical combinations of read/write control signals, input/output impedances and input/output voltages; and said selection means (28), connected to said register means (26), for causing only one of the plurality of microprocessors (12A - 12C) to be active at any given moment and all other microprocessors to be inoperative and for causing said adapter means (24A - 24C) to electrically decouple the other, inoperative, microprocessors from said bus means (MB), in accordance with the selection data stored in said register means (26). A software development apparatus according to claim 1, characterized in that said adapter means includes buffer circuits (24A - 24C) connected between the bus means (MB) and respective ones of the plurality of microprocessors (12A - 12C) and associates with each other to cancel out differences in the input/output characteristics of the microprocessors (12A - 12C). A software development apparatus according to claim 2, characterized in that said bus means (MB) includes an address bus (AB) for transferring address signals, a data bus (DB) for transferring data signals, and a control bus (CB) for transferring control signals. A software development apparatus according to claim 3, characterized in that said register means (26) includes a gating section (32) responsive to a specified address signal generated by an active one of the plurality of microprocessors (12A - 12C) and supplied to said address bus (AB), for receiving selection data generated from the active one of microprocessors (12A - 12C) together with said specified address signal and supplied to said data bus (DB), and a register section (34) for storing selection data supplied from said gating section (32). A software development apparatus according to claim 4, characterized in that said selection means includes control lines connected to respective rest terminals of said plurality of microprocessors (12A - 12C) and respective control terminals of said buffer circuits (24A - 24C) and a decoding circuit (28) for decoding selection data stored in said register section (34) and supplying rest mode signals to all the control lines but one. A software development apparatus according to claim 4, characterized in that said register section (34) is formed of 1-bit registers, and said selection means includes control lines connected to respective rest terminals of said microprocessors (12A - 12C) and respective control terminals of said buffer circuits (24A - 24C). A software development apparatus according to claim 1, characterized by further comprising a reset circuit (30), connected to a power supply, for setting selection data in said register means (26) upon application of power from said power supply. A software development apparatus according to claim 1, characterized in that said memory means (14, 20) stores control programs for said microprocessors (12A - 12C), each control program including at least one of a self-assembler and a self-compiler.

Inventors: NAMIMOTO, KEIJI
Applicants: KABUSHIKI KAISHA TOSHIBA
Application year: 1986
Main classification: G06F9
IPC codes: G06F15, G06F13, G06F9, G06F1