Procedure for operating a coprocessor in a distributed computer system.
Abstract
In the operation of a coprocessor in a distributed computer system, instructions to be executed by the coprocessor are communicated to it by a computer. The coprocessor is connected to the computer via an interface unit. A software unit having three functional units is contained in this interface unit. The first functional unit receives the messages from the computer in which the instruction to be executed is contained with necessary parameters, and unpacks this message and decodes the instruction. In accordance with the decoded instruction, the second functional unit supplies the function, which can access the coprocessor. If this function is, for example, a memory access to the memory of the coprocessor, this is initiated directly by the second functional unit. If the function to be executed is a processing step which is to be executed by the coprocessor, this is communicated to a third functional unit, which communicates the function to be executed to the coprocessor with the aid of an interrupt. The coprocessor then processes the instruction and communicates completion of the task by a further interrupt. By means of the second functional unit, this is communicated to the first functional unit and at the same time the result data are transferred to the functional unit. The first functional unit uses the results to put together again a computer-specific message, which is transferred to the computer. The concept of the software unit is such that adaptations to new coprocessors or to a new modified operating system of the computer system require only slight modifications of the software unit.

Term
Term ended
Projected expiry passed 22 July 2011, 15.2 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
5 claims: 2 independent, 3 dependent
- c-de-0001Method for the operation of a coprocessor in a distributed computer system, wherein the coprocessor is connected via an interface unit to the computer system comprising the steps of:- Provides a computer (R) during execution of a program determines that a process from the coprocessor (CPPRO) to be executed, it sends a machine-specific message that the nature of the process to be executed in a first part and the necessary parameters in a contains the second part, to the interface unit (IF), - In the interface unit (IF) of the first part of the machine-specific message is divided into its two parts in a first functional unit, is decoded and supplied to this decoded part together with the second part of a second functional unit (FE2), - In the second functional unit (FE2) is removed from the decoded first portion of the message, the function to be executed and the coprocessor generates specific function using the parameters and supplied to the coprocessor.
- c-de-0004Method according to one of the preceding claims, thereby in that the function to perform a processing step of the coprocessor (copro) requires that the second functional unit (FE2) a third functional unit (FE3) notifies, to perform the function of the coprocessor, the third functional unit then decides is to talk about what interrupt the coprocessor and this interrupt enabled that the coprocessor performs the function and after executing an interrupt is notified to the third functional unit that detects the version based on the interrupts and tells this to the second functional unit.
- c-de-0005A method according to any one of claims 2 to 4, thereby in that the result supplied from the coprocessor data on the second functional unit (FE2) are communicated to the first functional unit (FE1) and are packaged by this in a message, which is computer-specific and is supplied to the calling computer.
Independent claims3
28 paragraphs, as filed
p0001To complex tasks such as analog simulations or three-dimensional graphic, efficient and safe to carry, the use of special hardware to play a major role. This specialized hardware can be very complex, so integration into an existing computer system by simply connecting the specialized hardware alone is not reachable. This specialized hardware will be hereinafter referred to as coprocessor. Such a coprocessor is at least contain a memory and a data processing unit. He will, however, not carried out so that it can be a separate computer work. Rather, it only performs special functions that can carry a conventional computer only with great effort.
p0002Such a coprocessor must be integrated into a computer system, which may consist of several computers. For this purpose, a processor of the computer system and the co-processor on a circuit board could each be arranged as this might be, for example, with a CPU and an arithmetic coprocessor of the case. It is also a coupling of several coprocessors with multiple computers via a corresponding network software, such as a local area network. In a tight coupling to a circuit board there is the disadvantage that only specially designed for the main processor coprocessors may be employed. In addition, the coprocessor may only consist of one or a few chips, because the coupling must be achieved on a board. When Netzwerkopplung the individual components must be fully fledged computer, so that can not be spoken of coprocessors.
p0003The the object underlying the invention is to provide a method with which such a coprocessor can be integrated into a distributed computer system. This object is achieved according to the features of claim 1.
p0004The method makes use of a software unit of three software modules, hereinafter referred to as functional units.
p0005Using the first function unit, the messages that are submitted by a computer and are intended for the coprocessor, received, decoded and then passed to the second function unit. Being received by the computer Headlines computer-specific and could not be processed by the coprocessor in this form. The functional unit has continued the task of converting the data provided by coprocessor messages coprozessorspezifisch in machine-specific messages and create a message that can be transmitted via eg a bus to the processor. The first functional unit may further register that user program will just have access to the coprocessor and offer different communication lines to the computer.
p0006The second functional unit receives from the first functional unit the decoded message. The message contains the executed by the coprocessor task and in a second part of the necessary parameters in a first part. On the basis of the decoded first portion of the message selects the second function unit from the function to be executed by the coprocessor. For this, the second functional unit includes a table of functions over which the coprocessor can be edited. This table can be modified and adapted without difficulty a different coprocessor. The second functional unit can continue to access the memory of the coprocessor directly and to translate as a symbolic message contained in the address to a real address of the memory of the coprocessor and save the parameters contained in the message in the memory of the coprocessor.
p0007The third functional unit forms the connection to the coprocessor. This third function unit tells the coprocessor, for example, under interrupt, which features the coprocessor to execute. The function is replaced by the third functional unit of the second functional unit. Finally, the coprocessor can report back with an interrupt to the third functional unit and confirm that he has fulfilled a function. The third functional unit can eventually use the interface to the coprocessor.
p0008The software unit has a high level of modularity, it has the function of a frame over which a smooth and secure communication between a computer and the coprocessor is possible. It can also be adjusted quickly and specifically to a new coprocessor.
p0009She also has a simple scalability, in addition to standard functions dynamically special user functions can be created in response to a user to edit the program or can be deleted again.
p0010The software unit simplifies the user interface, as the user in the form of a library are provided a lot of features that facilitate access to the coprocessor, such as registration of the user program or initializing a communication path.
p0011Finally, can be made possible by the software unit that the coprocessor is addressed directly. For this purpose, a function is available, via the physical address space of the coprocessor can be read or written directly by symbolic addresses. The result is a transparent memory access to the coprocessor.
p0012This concept of the software unit for the integration of a coprocessor to an existing computer system is both hardware and operating system independent. The only requirement is a hardware interface unit between the coprocessor and the computer at which the coprocessor is to be connected. At the same time, the concept is also suitable for use within a distributed operating system. In such a case, the access of a user program (application program) on the coprocessor is transparent to the user. The flexibility and power of the concept also allows the integration of future generations of processors without the structure of the computer system to have to change. By incorporating user-specific functions in the software unit, the software unit can be adjusted by simple means to a yet so complex coprocessor.
p0013The concept of software unit is independent of the operating system that use the computer. When changing the operating system, only the first functional unit must be adjusted accordingly. The second and third functional unit can remain the same. When changing the coprocessor only an adjustment example of the second function unit for the co-processor access functions, and the third functional unit because of the interrupts to be processed is required.
p0014Reference to an embodiment represented in the figures, the invention will be further explained. Show it<dl id="dl0001"><dt>figure 1</dt><dd>a block diagram of a distributed computer system,</dd><dt>figure 2</dt><dd>a flow diagram showing the processing of a first user command,</dd><dt>figure 3</dt><dd>a flow diagram illustrating the processing of a second user command. </dd><dt>figure 4</dt><dd>the concept of the software unit.</dd></dl>
p0015The block diagram shown in Figure 1 a distributed computer system to show the involvement of coprocessors COPRO in a distributed computer system only in principle. The distributed computing system consists of computers R1 to Rn (n integer). The computer R1 to Rn are connected to a bus BUS, enables the exchange of the usual fashion news. Should be connected to such a computer system, a coprocessor COPRO, then an interface unit IF is arranged between coprocessor COPRO and the bus BUS. In Figure 1, two coprocessors are shown, each coprocessor is assigned to an interface unit IF.
p0016While a coprocessor represents special hardware for processing of special functions and is not carried out accordingly as a general purpose computer, but having at least a memory and a special data processing unit, the interface unit IF must have an interface to the bus and an interface to the coprocessor COPRO. The information collected by the computers R Headlines computer-specific and could not be processed in this form of the coprocessors COPRO. To make this possible, one software unit is arranged in the interface unit IF that enables the collaboration of a computer R with a coprocessor COPRO. The interface unit therefore at least has a memory, in which the software unit is stored and a processing unit to execute the various commands of the software unit. Finally, there must be at the computers and the coprocessors usual interfaces.
p0017The operation of the software unit will be explained with the aid of Figures 2 and 3 on. It is assumed that a user program includes an instruction coADD (x, y). The associated user program is running on the computer as R1. The computer R1 recognizes that it is a command to be executed by the coprocessor COPRO1 (step S1). For execution of the order B1 now provides the computer R1 a message along, which is to be supplied to the interface unit IF1. This message contains in a first part in coded form to be executed by the coprocessor function and in a second part of the necessary parameters. The function to be performed, for example, is the write channel command and the parameters are x, y. After the message has been compiled in step S2, the message will be sent to the interface unit IF1 in a step S3.
p0018The information received from the interface unit IF1 message is received by the first functional unit FE1 the software unit and decoded (step S4), that is, the message is divided into the first part and in the parameter part. The first part is decoded, the second part is passed unchanged to the second functional unit FE2. Based on the decoded first part the second functional unit FE2, the function to be executed notice (step S5). The function to be performed here is write channel, ie the parameters x, y is to be written into the memory of the coprocessor. The second function unit FE2 developed from the parameters x, y may contain a symbolic address for example, the real address at which the parameters are to be stored. It causes a direct access to the memory of the coprocessor and writes in the selected memory area, the parameters (step S6). For example, the parameters in the cells A and B are written. The processing unit of the coprocessor is not used.
p0019In step S7, the first functional unit generates FE1 a response message for the computer R1 and sends it immediately. Here will be informed that the write channel instruction has been executed. The message is generated by the first functional unit FE1 so that it is the computer R1 editable, so it has a machine-specific form. In step S8, it is indicated that this message has been transmitted from the interface unit IF the computer R.
p0020Figure 3 shows another embodiment of an instruction B2. Now is to be performed with the aid of the coprocessor, an addition of the parameters contained in the cells A and B of the memory of the coprocessor. From the user program, a corresponding command B2 is removed and put together the message from computer R1 in step S9. It is transmitted to the interface unit IF1. There receives in step S10, the first functional unit the message, decodes this to the already mentioned manner, and transmits the decoded message to the second function unit FE2 (step S11). The second function unit FE2 extracts the decoded message, the function to be executed, which is adding in the example. Using the parameters can then be determined which cells will be added.
p0021In step S12, the operation of the third functional unit FE3 is informed that now decides over which interrupt the function in the coprocessor can be addressed and activated the corresponding interrupt.
p0022This interrupt notifies the coprocessor COPRO1 with what function it is to perform and is also on the cells whose contents are to be added in the example (step S13). The coprocessor COPRO1 thus performs the addition of the contents of the cells a and b, and stores as the result in the cell a. If the coprocessor COPRO1 has finished his work, he is an interrupt from which notifies the third functional unit that executed the command is. The third functional unit FE3 notify the second functional unit FE2 with (step S14), the cell reads a from the memory and the read result of the first functional unit feeds. The first functional unit packed the result in a response message and sends it to the computer R1 (step S15). In step S16, the computer receives the message, and then evaluates the result further. Then the computer R1 machines the next instruction of the user program.
p0023Reference to the examples of Figures 2 and 3 has thus been shown that in connection with access to the memory of the coprocessor have direct access via the second functional unit is possible, wherein the second functional unit FE2 a symbolic address in the instruction translated into the real memory address of the coprocessor. It is further appreciated that processing commands to be executed by the coprocessor, for example via interrupts communicated to the coprocessor and the coprocessor upon completion of the instruction in turn indicates via interrupt that the command is executed.
p0024In a symbolic representation of Figure 4 again, the three functional units of the software unit are shown. The first functional unit FE1 is aligned to the computer R, replaced by computer-specific messages and provides computer-specific messages together. You can also initialize the communication with the computer. The first functional unit FE1 has continued to function, the messages that come from the computer to decode, to make it feasible for the coprocessor COPRO. Accordingly, the first functional unit FE1 transmits the decoded function to the second function unit FE2.
p0025In the second functional unit FE2 the Coprozessorfunktion will be selected based on the decoded instruction and either run in memory accesses the memory access or other editing commands the third functional unit FE3 addressed to inform the coprocessor, which machining step it is to perform. The second functional unit FE2 shares results with the first functional unit FE1 that repackaged these results to the computer then transmits.
p0026The third functional unit FE3 is adapted to the structure of the coprocessor COPRO. It generates interrupts on the coprocessor is informed which processing step he has to perform. And she receives interrupts from the coprocessor if it has carried out its work. Accordingly, the third functional unit corresponding interrupt FE3 selects or rated interrupt. The connection between the interface unit and the coprocessor COPRO is a general interface between the two, which is generally designed so that any co-processors can be connected.
p0027The functional unit FE1 is thus both matched in their design to the computer and to the second functional unit FE2. The third functional unit FE3 is adapted to the coprocessor and to the second function unit FE2. When changing the coprocessor either a change in the second function unit FE2 because of other functions, and the third function unit FE3 for new interrupts is required. When changing the computer system, such as the operating system of a computer system, a change in the first functional unit FE1 must take place, but not the functional unit FE3, FE2 possibly the functional unit when new functions are to be performed. Thus, it is seen that the software unit allows to classify any coprocessors in an existing computer system, without large modification to the software unit are necessary.
p0028If the computers of the computer system, it may be commercially available computer, as the execution of the coprocessors with commercial practice. The individual Funtionseinheiten are programs that are stored in the interface unit and the implementation need a common interface unit. The interface unit hardware is also from the conventional structure.
3 sheets
Sheet 1 Sheet 2 Sheet 3
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| EP0710907A3 | Cited by | European Patent Office (EPO) | Search report |
| EP0710908A2 | Cited by | European Patent Office (EPO) | Search report |
| EP0710907A2 | Cited by | European Patent Office (EPO) | Search report |
| EP0212499A2 | Cites | European Patent Office (EPO) | Search report |
| WO8702800A1 | Cites | World Intellectual Property Organization (WIPO) | Search report |
4 priority claims, no other members on record
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 4027324 | Germany | A | |
| 4027324 | Germany | – | |
| DE19904027324 | – | – | – |
| 4027324 | – | – | – |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Application deemed to be withdrawnWithdrawn18D | 18D | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWNSTAA | STAA | |
| Request for examination filed17P | 17P | |
| Designated contracting statesAK | AK | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | |
| Designated contracting statesAK | AK | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI |
Numbers
- Publication
- 0475028
- Publication, DOCDB
- 0475028
- Publication, EPODOC
- EP0475028
- Application
- 91112265
- Application, DOCDB
- 91112265
- Application, EPODOC
- EP19910112265
Titles6
- German
- Verfahren zum Betrieb eines Coprozessors in einem verteilten Rechnersystem.
- English
- Procedure for operating a coprocessor in a distributed computer system.
- French
- Procédé de mise en oeuvre d'un coprocesseur dans un système d'ordinateurs distribués.
- German
- Verfahren zum Betrieb eines Coprozessors in einem verteilten Rechnersystem
- English
- Procedure for operating a coprocessor in a distributed computer system
- French
- Procédé de mise en oeuvre d'un coprocesseur dans un système d'ordinateurs distribués
Classification
- CPC, 2
- G06F9/3877
- G06F9/3879
- IPC, 1
- G06F9 38
Designated states6
- Contracting states, 6
- Austria
- Germany
- France
- United Kingdom
- Italy
- Netherlands (Kingdom of the)