EP2160670A1 - Processor, and method for controlling the same - Google Patents

Processor, and method for controlling the same

Info

Publication number
EP2160670A1
EP2160670A1 EP08760556A EP08760556A EP2160670A1 EP 2160670 A1 EP2160670 A1 EP 2160670A1 EP 08760556 A EP08760556 A EP 08760556A EP 08760556 A EP08760556 A EP 08760556A EP 2160670 A1 EP2160670 A1 EP 2160670A1
Authority
EP
European Patent Office
Prior art keywords
time
arithmetic
processing
processor
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP08760556A
Other languages
German (de)
French (fr)
Inventor
Christian Siemers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fachhochschule Nordhausen
Original Assignee
Fachhochschule Nordhausen
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fachhochschule Nordhausen filed Critical Fachhochschule Nordhausen
Publication of EP2160670A1 publication Critical patent/EP2160670A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Definitions

  • the invention relates to a processor for a computing machine, the power stroke is regulated, and a method for controlling a processor clock and a data processing program for processing on a processor. Furthermore, the invention relates to a processor and a method by which a monitoring of times for the execution of arithmetic instructions is made possible. Finally, the invention relates to a multiprocessor system and a method for distributing computational instructions to processors of the multiprocessor system.
  • DE 100 34 459 A1 describes a method and a device for measuring the running time of a task (task to be performed) in a real-time system.
  • a timer is started at the beginning of the task whose runtime is to be determined.
  • the timer is stopped in the event of an interruption and the state of the timer is stored. After completion of the interruption, the timer is restarted.
  • the timer is started at the beginning of each task and its status is stored every time the priority level is changed.
  • time management unit for Real-time Processors
  • the time management unit is part of the computer architecture and implemented in hardware absolute time and an event time compared to each other, whereby the result of the comparison, an interrupt to the processor can be triggered.A further description of the effects on the processor is not given in this document.
  • US 2006/0288194 A1 discloses a real-time processor with a clock counter, a command analyzer and a time comparator, by which the command execution can be controlled.
  • this control allows a blockade of the command to be processed, so that the next command can be executed. This simple tax However, this mechanism can only be used for selected real-time applications.
  • UML 2.0 Infrastructure Specification PTC / 03-09-15 Unified Modeling Language is a software modeling language that uses sequential diagrams or activity diagrams to correlate individual routines with one another. However, estimates must be used for this, so that statements about the functionality of the system are only possible if the estimates are correct. Basically, it is only partially possible to check the temporal function of an entire computing system in all variations in order to be able to estimate the time sequences. For this purpose, strongly limiting boundary conditions must be defined. For example, the calculation of the maximum runtime of a program part, i. H. the execution time, which must not be exceeded, in the case that a microprocessor with cache is used, very high estimates. The reason for this is the inability to predict the behavior of the cache for all source conditions, so it must be assumed that a value is never in the cache. Therefore, software-based concepts such as UML, which take into account the temporal processes, quickly reach their limits.
  • the object of the invention starting from software-based concepts such as UML, is to bring the processing of computational instructions by a processor into better agreement with the actual time sequences.
  • a subtask is also to improve this timing even within a programmable unit or within a multiprocessor system.
  • the processor according to the invention initially has a control unit for providing a sequence of arithmetic instructions.
  • a control unit is also referred to as a tail unit or control unit (CU) and is often the core of a microprocessor.
  • the processor according to the invention has an arithmetic unit for processing the arithmetic instructions.
  • Such an arithmetic unit is also referred to as a central processing unit, as a data processor or as an arithmetic logic unit (ALU).
  • the processor according to the invention has a controllable processor clock for providing a processor clock.
  • This processor clock may include an internal oscillator, such as a quartz oscillator, or may be powered by an external clock.
  • the controllable processor clock has to offer the possibility of controllably providing the processor clock, ie the clock with which the arithmetic unit is operating.
  • the processor according to the invention further comprises a time management unit, which is also referred to as Time Management Unit (TMU).
  • TMU Time Management Unit
  • the time management unit includes a clock for providing a clock.
  • the time management unit furthermore comprises a comparator for comparing a previously defined value for a permissible time duration for executing a computation instruction to be processed in the arithmetic unit with a value for an elapsed time defined by the clock since the execution of the arithmetic unit instruction to be processed Period of time.
  • the processor comprises a coupling of the time management unit with the controllable processor clock generator. By means of this coupling, it is possible to adapt the processor clock to the time actually required by the arithmetic unit for processing the arithmetic instructions located there. Thus, a control loop can be formed in which the processor clock represents the controlled variable. If the comparison of the time values reveals that the permissible time duration has been exceeded for executing a calculation instruction to be processed in the arithmetic unit, the processor clock cycle must be increased. Otherwise, the processor clock can remain constant or reduced.
  • the processor according to the invention has the advantage that the time sequences during the processing of the arithmetic instructions are no longer bound to limited exact estimates. Another advantage is that during those times in which no or only a few computational instructions are processed, the processor clock is significantly reduced, whereby a significant energy savings is possible. This also has a detrimental effect on the effective heat loss performance, whereby cooling systems can possibly be dimensioned smaller.
  • Another processor initially also has a control unit for providing a sequence of arithmetic instructions and an arithmetic unit for processing the arithmetic instructions.
  • the processor further comprises a time management unit with a clock for providing a Time clock.
  • the time management unit further comprises a comparator for comparing a predetermined value for a permissible time duration for processing a computation instruction to be processed in the arithmetic unit with a value for a time period defined by the time clock since the processing of the arithmetic unit to be processed arithmetic operation elapsed time duration.
  • the time management unit has an event control memory for storing values for the time required to execute a calculation instruction in the arithmetic unit.
  • the values stored in the event control memory can be understood as a memory list (Event Memory List).
  • Event Memory List allows monitoring of the time required for processing the arithmetic commands in the arithmetic unit. This is particularly advantageous for the developer of software, since he can determine the time actually required for processing the individual arithmetic instructions.
  • the clock generator is formed by the detection of an external system clock.
  • the clock is implemented as a real time clock.
  • the real-time clock outputs a time, for example in the format hh: mm: ss: ms: ⁇ s or also with date.
  • the time clock in the form of a simple system clock or a real time is absolute, d. H. regardless of the processor clock.
  • the time management unit preferably has an event memory for storing the previously defined values for the respective permissible time duration of the arithmetic unit instructions to be processed.
  • the contents of this event memory can be construed as an event list containing relative times.
  • the event memory allows To provide the comparator with the specified values for the respectively permissible time duration of the arithmetic instructions to be processed in the arithmetic unit.
  • the time management unit of a processor according to the invention with a controllable processor clock generator preferably also has an event control memory for storing values for the time duration required for processing a calculation instruction in the arithmetic unit.
  • the time management unit of the processors according to the invention preferably also has an interface for outputting hardware signals to the control unit. This makes it possible to use the exceeding of definable time values for generating a hardware signal. These hardware signals generate, for example, an interrupt request (IRQ) at the processor, which is treated as an exception. This exception signals to the processor that the program's timing has been violated, for which the system designer can provide appropriate response capabilities.
  • IRQ interrupt request
  • the controllable processor clock preferably comprises a voltage controlled oscillator.
  • the processor cycle can be controlled with little effort depending on the applied operating voltage.
  • the coupling of the time management unit with the controllable processor clock can, for example, via a control unit in which the control algorithm is implemented, and via an analog output of the control unit, which controls the voltage controlled oscillator occur.
  • the method according to the invention for controlling a cycle of a processor initially comprises a provisioning step a sequence of computational instructions that are executed in the processor. Furthermore, a time clock is to be provided.
  • the method according to the invention provides for a repeated comparison, in which a previously defined value for a permissible time duration for executing a calculation instruction to be processed is compared with a value for a time period defined by the time interval since the processing of the arithmetic instruction to be processed has elapsed.
  • a result of the comparison is to be provided accordingly and serves to control the clock of the processor, which is done in response to this result.
  • an adaptation of the processor clock to the time required by the arithmetic unit for processing the respective arithmetic command can take place.
  • the inventive method is largely independent of the computer architecture to be used and may be partially or completely implemented in the processor.
  • the inventive method allows the formation of a control loop in which the clock of the processor represents the controlled variable.
  • the method according to the invention for monitoring times for the execution of arithmetic instructions in a processor initially comprises a step for providing a sequence of arithmetic instructions which are executed in the processor. Furthermore, a time clock is to be provided. Finally, a time period defined by the time clock is stored in total for the processing of the arithmetic command to be processed. This happens when a called program command requests this, which corresponds to a manual monitoring, or if the total time required for the processing of the arithmetic command to be processed by the time clock is greater than a permissible time for processing this arithmetic command, which corresponds to an automatic monitoring.
  • the stored value can be wise be read by the developer of a software to draw conclusions about the timing of the execution of the program. However, the stored value can also be read out by a program command in order to influence the further execution of the program as a function of this value.
  • the inventive method is largely independent of the computer architecture to be used and may be partially or completely implemented in the processor.
  • the time clock is provided as real time, whereby extended comparison possibilities are given.
  • a variable before processing a calculation instruction, a variable assumes the value for the permissible time duration for processing the calculation instruction.
  • the variable is decremented during execution of the arithmetic command with the timing.
  • the repeated comparison is that the variable is repeatedly compared to zero.
  • a time duration defined by the clock cycle is generally stored in total for the processing of the arithmetic command to be processed. This happens when a called program command requests this, which corresponds to a manual monitoring, or if the total time defined by the clock cycle is required for processing the computational command to be processed. Taken time period is greater than the permissible time for processing this arithmetic command, which corresponds to an automatic monitoring.
  • a hardware-based interrupt signal is triggered when the value for the time period defined by the time clock previously required for processing the arithmetic command exceeds a predetermined value. This makes it easier for a software developer to provide appropriate program instructions in case of such exceeding of the specified period of time. It can be used several interrupt signals that can be masked accordingly.
  • a variable for counting the timing is defined by a program instruction.
  • a command "settim Rx" may be set that sets the variable for counting the clock by the contents of the register Rx. If the clock is represented by a real time, the contents of the register Rx must be in real-time format.
  • the value of the variable for counting the time clock is stored in a specified memory area when a program command invoked requests it.
  • a command "gettim Rx" can be defined, with which the value of the variable for counting the time clock is copied into the register Rx or the following registers. If the time clock is represented by a real time, the value in the corresponding format becomes copied the register.
  • the previously defined values for the respective permissible time duration for processing the arithmetic commands to be processed are preferably stored in a defined memory area. These values can be understood as an event list.
  • the size of a variable is preferably defined by a maximum number of values for the respective permissible time duration for processing the arithmetical commands to be processed, which can be stored in the memory area specified for this purpose, when a program command invoked requests this.
  • This maximum number is understandable as the number of possible entries in the event list. For example, an instruction "ldnelm Rx" can be defined, which copies the variable with the value of this number into the register Rx.
  • a mode value is used.
  • the mode value is stored in the designated memory area at each of the set values for the respective allowable period of time for processing the arithmetic instructions to be processed.
  • the respective permissible time duration and the mode value provided for each arithmetic command are stored.
  • the mode value defines at which signal from a group of predetermined signals the determination of the time duration defined by the time clock to process the arithmetic command begins. Thus, for example, it can be determined by which interrupt request an activation can take place.
  • a variable is defined by the mode value when a called program command prompts.
  • the mode value is defined by the value of a variable when prompted by another invoked program command.
  • a command "stemc Rx, Ry, Rz" are defined by which a configuration is stored in the element of the event list [Rx], the configuration value in Ry and the mode value in Rz.
  • the mode value for example, the following equivalents can be defined: If bit 7 is 1, a one shot mode is set, whereas a continuous mode with auto reload is set if bit 7 is 0. If bit 6 is equal to 1, the activation takes place via an active interrupt request, whereas an immediate activation takes place when bit 6 is equal to 0. Bits 5 to 0 correspond to the number of the interrupt request if bit 6 is equal to 1.
  • “Stemc #tim, #value, #mode” is prompted to store a configuration in the tim element of the event list, the configuration value in value, and the mode value in mode. for example due to the high number of bits to be coded in the constants.
  • a control mode value is used.
  • One control mode value is stored for each of the specified values for the respective permissible time duration for processing the arithmetic commands to be processed.
  • a mode value is defined as to whether the total time required for processing the arithmetic command to be processed is stored, and whether a hardware-based interrupt signal is triggered when the permissible time for processing the arithmetic command to be processed has been exceeded.
  • the control mode value allows the type of response to be set when the time allowed for a calculation command is exceeded.
  • a variable is defined by the control mode value when prompted by a called program command.
  • the control mode value is defined by the value of a variable when prompted by another invoked program command.
  • a program command "strcm Rx, Ry" may be defined by which the control mode value [Ry] is configured for the element [Rx]
  • the control mode value may have the following correspondence: If bit 1 is equal to 1, the total is to be processed Arithmetic instructions store the required amount of time in the event storage list whereas no storage occurs when bit 1 equals 0.
  • a program command "strcm Rx, #react_mode" can be defined by which the control mode value react_mode is configured for the element [Rx].
  • ldmv, ldnmv, and monit commands can be defined to manage the event store list, and the ldmv Rx program command loads the number of events stored in the event store list.
  • This list can be constructed as a first-in-first-out memory in ring buffer form. But other forms of organization are conceivable.
  • the command “ldnmv Rx" causes the next event to be loaded into register Rx, which could, for example, be the oldest stored event that has not yet been read, decrementing the number of available entries by 1.
  • the command "monit causes the current value of the clock to be written to the event log. This allows you to place marks in this list.
  • the program-controlled unit has at least several arithmetic units for processing arithmetic instructions and a control unit for providing a sequence of arithmetic instructions.
  • the control unit also serves to distribute the computation commands to the arithmetic units.
  • the program-controlled unit furthermore has a time clock for providing a time clock.
  • Each arithmetic unit of the program-controlled unit is a comparator for comparing a predetermined value for a permissible period of time for processing a to be processed Arithmetic commands associated with a value for a defined by the time clock since the beginning of the processing of the processing arithmetic command elapsed time allocated.
  • the comparators are linked to the control unit.
  • the program-controlled unit according to the invention permits the formation of a control loop in which the distribution of the arithmetic commands to the arithmetic units is regulated.
  • the arithmetic units are designed as complete processors. It is a stand-alone processor system, so the programmable unit is a multiprocessor system.
  • the time management units associated with the processors are integrated into the processors.
  • This multiprocessor system allows the formation of a control loop in which the distribution of the arithmetic commands to the processors is controlled.
  • the principle of such a distribution can be given by a space-time mapping method in which the execution dimension Time (time sequence) can be switched to Space (configuration of computing elements for maximum parallelism).
  • the execution in the room binds much more resources and is thus largely avoided. But it has a much higher acceleration potential.
  • the control unit may be partially or completely formed by the processors themselves.
  • the latter furthermore has a controllable processor clock generator for providing a processor clock, wherein this processor clock generator is coupled to at least one of the comparators.
  • a regulation Both the distribution of the arithmetic instructions to the processors and a control of the processor clock of one or more processors possible. This allows the multiprocessor system to be adapted to the amount of computation instructions to be processed in a very wide dynamic range.
  • a method for distributing arithmetic instructions to arithmetic units of a program-controlled unit which first provides for a provision of a sequence of arithmetic instructions which are executed in the arithmetic units. Furthermore, a time clock is provided. There is a repeated comparison of a predetermined value for a permissible period of time for processing a computational command to be processed with a value for a defined by the time clock since the start of processing of this arithmetic command elapsed time duration. The results of the comparisons are provided and serve to determine the division of the arithmetic commands to be processed into the arithmetic units, which subsequently takes place as a function of these results. Thus, the distribution of the arithmetic commands can be adapted to the arithmetic units to the time required by the arithmetic units for processing the respective arithmetic command.
  • the inventive method can also be used for the distribution of arithmetic instructions on processors of a multiprocessor system.
  • the inventive method is applicable regardless of the architecture of the multiprocessor system. Likewise, it is largely independent of the architecture of the individual processors of the multiprocessor system. These may be formed for example by microprocessors.
  • the steps of the method of controlling a clock of a processor may be combined with steps of the method of distributing the arithmetic instructions within a multiprocessor system, whereby a multiprocessor system can be adapted in a large variability to the amount and type of arithmetic instructions to be processed.
  • program instructions mentioned above are preferably to be encoded in an assembly language. This allows them to be translated directly into machine language, allowing low-level and efficient programming.
  • program instructions which in particular control the behavior of the time management unit, can be defined.
  • a further aspect of the invention can be seen in a program which is coded in a high-level language, for example in an imperative language such as C, and after its translation (compilation) is provided for execution on a processor according to the invention.
  • the program has at least one program command encoded in the high-level language in which various machine commands for managing the time management unit are combined.
  • the program commands can be included in the source text as "essential comments" or in the form of conditional compilation.This does not cause any compatibility problems at the source code level.
  • the conditional compilation can be done in C as follows:
  • a basic function can be:
  • the return value of this function is the number of the item in the event list.
  • This basic function starts a permanent process of time monitoring at this point.
  • the return value of this function is the number of the element in the event list.
  • a basic function can be:
  • a basic function can be: void switch_off_timer (elemNumber)
  • the basic functions can be implemented as function calls or as macros.
  • high-level language element is:
  • definable which refers to a loop at the level of which it is defined. This element can be called as follows:
  • element_number start_continuous_timemonitoring (confValue, timeValue); ⁇ Condition>; ⁇ update>, reset_timer (element_number))
  • Another exemplary high level language element is:
  • Fig. 1 is a block diagram of a preferred embodiment of the processor according to the invention.
  • FIG. 2 is a block diagram of a time management unit shown in FIG.
  • Fig. 1 shows a block diagram of a preferred embodiment of the processor according to the invention, including its periphery.
  • the block diagram reflects the architecture of an extended Von Neumann model.
  • the architecture first shows the components of a Von Neumann model.
  • This includes a main processor Ol, which is also referred to as a central processing unit (CPU), and a control unit 02, which is also referred to as a control unit (CU), and an arithmetic unit 03, which is also called the Arithmetical Logical Unit (ALU).
  • the Von Neumann model includes a storage device 04, which is also referred to as memory (MEM), and an input / output device 06, which is also referred to as input / output (I / O).
  • the inventive extension of the von Neumann model consists in that the main processor 01 further comprises a time management unit 08, which is also referred to as a Time Management Unit (TMU).
  • TMU Time Management Unit
  • the time management unit 08 has the task of continuously time, d. H. in the context of a counter, to measure and to secure by program certain or configured time values in a specially designed memory within the time management unit 08.
  • the time management unit 08 is assigned the task of triggering events in the main processor 01 when configured time values are exceeded.
  • FIG. 2 shows a block diagram of the time management unit 08 shown in FIG. 1.
  • the time administration unit 08 initially comprises a central state machine 09, which is also referred to as a central state machine (CSM).
  • a central time unit 11 is coupled.
  • the central time unit 11 permanently outputs the result of the time measurement to the central state machine 09.
  • the central time unit 11 comprises a real-time clock, it transfers its result in the format of a time to the central state machine 09.
  • the time management unit 08 further includes an event memory 12 for storing previously defined values for the respective permissible time duration of a computing instruction to be processed in the arithmetic unit 03.
  • the event memory 12 contains an event list.
  • the event list contains relative times which, if the element of the event list is active, are decremented. When the value reaches zero, an action is triggered.
  • the time management unit 08 further comprises an event control memory 13 for storing values for the time required to execute a calculation instruction in the arithmetic unit 08.
  • the event control memory 13 contains a memory list (Event Memory List), which can be used for manual or automatic monitoring of the time values. During manual monitoring, the storage of the current time value of the central time unit 11 in the event control memory 13 is initiated by a program command. The automatic monitoring can be set up such that an entry into the memory list of the event control memory 13 takes place whenever a set time value is exceeded. This entry contains the respectively valid absolute time of the central time unit 11.
  • the memory list of the event control memory 13 can be read out by the central state machine 09.
  • the time management unit 08 further comprises an interface 14 to the control unit 02.
  • This interface 14 may also be referred to as Interface to CU (I / CU).
  • hardware signals for signaling events can be transmitted to the control unit 02. For example, exceeding this results in configured time values in the event list for generating a hardware signal, if so configured.
  • These hardware signals generate an interrupt request to the main processor Ol, which is called an exception because it is not a wanted interruption or an external signal.
  • This exception signals to the processor that the program's timing has been violated and allows the system designer to respond.
  • the resetting of time values, for example in the event list, to avoid the triggering of an exception can be done by the main processor O1 during a program.
  • the functionality of the time management unit 08 corresponds approximately to the behavior of a watchdog circuit, which triggers a general reset on a timeout.
  • the time management unit 08 monitors the time structure very finely and the handling of the exceptions can also contain very balanced reactions and is the responsibility of the software development.
  • the control of the time management unit 08 is also carried out by the control unit 02, for which the control unit 02 must support new program commands.
  • These program instructions are used, for example, to read in and read out the event memory 12 and the event control memory 13.
  • the program instructions required for controlling the time management unit 08 have little or no relation to the arithmetic unit 03, so that the arithmetic unit 03 compared to a conventional arithmetic unit according to the Von Neumann model does not need to be extended.
  • the integration of the new program instructions can be done, for example, by using a corresponding execution time in the program. This is possible if there is still space in the coding format, so not all variants for coding a command have been exhausted are.
  • the advantage of such integration is universal applicability.
  • the integration of the further program instructions can also be done by being integrated into other commands. This is possible if the commands used so far also have room for additional information, ie unused bits in the code.
  • Such an integration of the new program instructions has the advantage that no additional runtime is required.
  • the central state machine 09 is a finite state machine.
  • the central state machine 09 is not executed as a simple finite state machine, but in a cooperative manner.
  • One possibility of implementation is a small microprocessor with a processing width of, for example, 8 bits, which makes the inputs from the controller 02 and the comparisons between the time values output by the central time unit 11 and the values in the event list 12 and initiates corresponding actions.
  • the use of a microprocessor for implementing the time management unit 08 has the advantage that the time management unit 08 is very flexible, since it is itself programmable.
  • the time management unit 08 is to be implemented in existing hardware, for example as an integral part of a microprocessor.
  • the architecture of the extended von Neumann model of the invention may serve as a basis for implementing an adaptive system.
  • response times for interrupt requests can be monitored.
  • Such a reaction time ie the difference between the occurrence of an interrupt request and the final reaction, can occur at Real time systems are a significant size, the exceeding of a given limit is not allowed.
  • the measurement of such a reaction time shows in each case the real-time capability of the system.
  • cycle times in systems with a cyclic design can also be determined. In timed systems, cycle times are often the size that determines the real-time capability of the system.
  • single run times can also be determined in systems in a non-cyclic design, which can be used to evaluate real-time capability.
  • time measurements referred to have only a very small possible influence on the actual calculation in the time management unit 08.
  • the processor-based time management unit 08 can also be in the microsecond range and below be used. This feature allows the use of the main processor 01 according to the invention, for example in the field of embedded systems, where very short reaction times are required.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

The invention relates to a processor (01) for a computer. Said processor (01), the speed of which can be regulated, comprises a control unit (02), an arithmetic logic unit (03) for executing the arithmetic instructions, and a controllable processor clock for providing a processor clock pulse. The processor (01) further comprises a time management unit (08) that is equipped with a time pulse generator (11) for providing a time pulse. The time management unit (08) is also equipped with a comparator for comparing a predefined value of an admissible time for executing an arithmetic instruction that is to be executed in the arithmetic logic unit (03) with a value of a time which is defined by the time pulse and has elapsed since the arithmetic instruction to be executed in the arithmetic logic unit (03) started being executed. The processor (01) according to the invention finally comprises coupling of the time management unit (08) to the controllable processor clock such that a control loop can be formed in which the processor clock pulse represents the regulated variable. The invention also relates to a method for regulating a processor clock pulse, a program to be executed on the processor, a multiprocessor system, and a method for distributing arithmetic instructions to processors of said multiprocessor system.

Description

Prozessor und Verfahren zu seiner Ansteuerung Processor and method for its control
Die Erfindung betrifft einen Prozessor für eine Rechenmaschine, dessen Arbeitstakt regelbar ist, sowie ein Verfahren zur Regelung eines Prozessortaktes und ein Datenverarbeitungsprogramm zur Abarbeitung auf einem Prozessor. Weiterhin betrifft die Erfindung einen Prozessor und ein Verfahren, durch welche ein Monitoring von Zeiten zur Abarbeitung von Rechenbefehlen ermöglicht ist. Schließlich betrifft die Erfindung ein Mehrprozessorsystem und ein Verfahren zur Verteilung von Rechenbefehlen auf Prozessoren des Mehrprozessorsystems.The invention relates to a processor for a computing machine, the power stroke is regulated, and a method for controlling a processor clock and a data processing program for processing on a processor. Furthermore, the invention relates to a processor and a method by which a monitoring of times for the execution of arithmetic instructions is made possible. Finally, the invention relates to a multiprocessor system and a method for distributing computational instructions to processors of the multiprocessor system.
Die DE 100 34 459 Al beschreibt ein Verfahren und eine Vorrichtung zur Messung der Laufzeit einer Task (abzuarbeitende Aufgabe) in einem Realzeitsystem. Bei diesem Verfahren wird zu Beginn der Task, deren Laufzeit bestimmt werden soll, ein Zeitmesser gestartet. Der Zeitmesser wird bei einer Unterbrechung gestoppt und der Zustand des Zeitmessers gespeichert. Nach Beendigung der Unterbrechung wird der Zeitmesser erneut gestartet. Der Zeitmesser wird bei Beginn jeder Task gestartet und sein Zustand bei jedem Wechsel der Prioritätsebene gespeichert. Mit diesem Verfahren lassen sich die Nettolaufzeiten aller Tasks im System vergleichsweise einfach messen. Ein detailliertes Konzept zur Implementierung dieses Verfahrens sowie zur Integration in die Rechnerarchitektur wird in dieser Druckschrift nicht aufgezeigt.DE 100 34 459 A1 describes a method and a device for measuring the running time of a task (task to be performed) in a real-time system. In this method, a timer is started at the beginning of the task whose runtime is to be determined. The timer is stopped in the event of an interruption and the state of the timer is stored. After completion of the interruption, the timer is restarted. The timer is started at the beginning of each task and its status is stored every time the priority level is changed. With this method, the net run times of all tasks in the system can be measured comparatively easily. A detailed concept for implementing this method as well as for integration into the computer architecture is not shown in this document.
Im Artikel von Lindh, L.; Stanischewski, F.: „FASTCHART - A Fast Time Deterministic CPU and Hardware based Real-Time- Kernel" in: IEEE press, 1991, wird das Konzept für ein hardwarebasiertes Realzeitsystem vorgestellt. Das System umfasst eine Realzeiteinheit, welche 64 gleichzeitige Tasks unabhängig von der CPU verwalten kann. Das Statusdiagramm der Tasks ist in Hardware abgebildet. Eine Steuereinheit steuert die Funktionen der Realzeiteinheit und empfängt Synchronisationsinformationen von der CPU. Diese Lösung erfordert einen hohen Aufwand für die Implementierung der Realzeiteinheit und die Synchronisation mit der CPU.In the article by Lindh, L .; Stanischewski, F .: "FASTCHART - A Fast Time Deterministic CPU and Hardware-based Real-Time Kernel" in IEEE press, 1991, introduces the concept of a hardware-based real-time system, which includes a real-time unit that performs 64 concurrent tasks independent of The status diagram of the tasks is shown in hardware. A control unit controls the functions of the real-time unit and receives synchronization information from the CPU. This solution requires a lot of effort for the implementation of the real-time unit and the synchronization with the CPU.
Im Artikel von Siemers, C: „Die Welt der rekonfigurierbaren Prozessoren, Teil 2: Aktuelle Produkte und deren Zielmärkte" in: Elektronik, Poing, Band 54 (2005) Heft 22, S. 42 - 48, wird eine Übersicht über verschiedene rekonfigurierbare Prozessortypen gegeben. Die gezeigten Prozessoren weisen nach Einschätzung des Autors eine höher werdende Rechenleistung, jedoch nur eine mangelnde Echtzeitfähigkeit auf.In the article by Siemers, C: "The world of reconfigurable processors, Part 2: Current products and their target markets" in: Electronics, Poing, Volume 54 (2005) Issue 22, pp. 42-48, is an overview of various reconfigurable processor types According to the author, the processors shown have an increasing computing power, but only a lack of real-time capability.
Im Artikel von Kailas, K.; Agrawala, A.: „An Accurate Timemanagement Unit for Real-time Processors", University of Maryland, 1997, wird eine Zeitverwaltungseinheit zur Steigerung der Leistungsfähigkeit eines Realzeitsystems vorgestellt. Die Zeitverwaltungseinheit ist Teil der Rechnerarchitektur und in Hardware implementiert. In der Zeitverwaltungseinheit werden eine absolute Zeit und eine Ereigniszeit miteinander verglichen, wobei durch das Ergebnis des Vergleiches ein Interrupt gegenüber dem Prozessor ausgelöst werden kann. Eine weiterführende Beschreibung der Auswirkungen auf den Prozessor wird in dieser Druckschrift nicht gegeben.In the article by Kailas, K .; Agrawala, A .: "Time Management Unit for Real-time Processors", University of Maryland, 1997. A time management unit is introduced to increase the performance of a real-time system The time management unit is part of the computer architecture and implemented in hardware absolute time and an event time compared to each other, whereby the result of the comparison, an interrupt to the processor can be triggered.A further description of the effects on the processor is not given in this document.
Die US 2006/0288194 Al offenbart einen Realzeitprozessor mit einem Taktzähler, einen Befehlsanalysator und einem Zeitvergleicher, durch welchen die Befehlsausführung gesteuert werden kann. Diese Steuerung ermöglicht insbesondere eine Blockade des aktuell abzuarbeitenden Befehles, sodass der nächste Befehl abgearbeitet werden kann. Dieser einfache Steu- erungsmechanismus ist jedoch nur für ausgewählte Realzeitanwendungen einsetzbar.US 2006/0288194 A1 discloses a real-time processor with a clock counter, a command analyzer and a time comparator, by which the command execution can be controlled. In particular, this control allows a blockade of the command to be processed, so that the next command can be executed. This simple tax However, this mechanism can only be used for selected real-time applications.
Die Unified Modeling Language (UML) gemäß Spezifikation UML 2.0 Infrastructure Specification PTC/03-09-15 von OMG ist eine Sprache für die Modellierung von Software, welche mit Sequenzdiagrammen oder Aktivitätsdiagrammen die Möglichkeit bietet, einzelne Routinen zeitlich zueinander in Bezug zu setzen. Hierfür müssen jedoch Schätzwerte verwendet werden, sodass nur bei Richtigkeit der Schätzungen Aussagen über die Funktionalität des Systems möglich sind. Grundsätzlich ist es nur bedingt möglich, die zeitliche Funktion eines gesamten Rechensystems in allen Variationen zu überprüfen, um so die zeitlichen Abläufe abschätzen zu können. Hierfür müssen stark einschränkende Randbedingungen definiert sein. Beispielsweise ergibt die Berechnung der maximalen Laufzeit eines Programmteils, d. h. die Ausführungszeit, welche garantiert nicht überschritten werden darf, für den Fall, dass ein Mikroprozessor mit Cache eingesetzt wird, sehr hohe Schätzwerte. Die Ursache hierfür liegt in dem Unvermögen, das Verhalten des Cache für alle Ausgangsbedingungen vorauszusagen, sodass angenommen werden muss, dass ein Wert nie im Cache liegt. Daher stoßen softwarebasierte Konzepte wie UML, welche die zeitlichen Abläufe berücksichtigen, schnell an ihre Grenzen.OMG's UML 2.0 Infrastructure Specification PTC / 03-09-15 Unified Modeling Language (UML) is a software modeling language that uses sequential diagrams or activity diagrams to correlate individual routines with one another. However, estimates must be used for this, so that statements about the functionality of the system are only possible if the estimates are correct. Basically, it is only partially possible to check the temporal function of an entire computing system in all variations in order to be able to estimate the time sequences. For this purpose, strongly limiting boundary conditions must be defined. For example, the calculation of the maximum runtime of a program part, i. H. the execution time, which must not be exceeded, in the case that a microprocessor with cache is used, very high estimates. The reason for this is the inability to predict the behavior of the cache for all source conditions, so it must be assumed that a value is never in the cache. Therefore, software-based concepts such as UML, which take into account the temporal processes, quickly reach their limits.
Die Aufgabe der Erfindung besteht ausgehend von softwarebasierten Konzepten wie UML darin, die Abarbeitung von Rechenbefehlen durch einen Prozessor in bessere Übereinstimmung mit den tatsächlichen zeitlichen Abläufen zu bringen. Eine Teilaufgabe besteht außerdem darin, diese zeitliche Übereinstimmung auch innerhalb einer programmgesteuerten Einheit oder innerhalb eines Mehrprozessorsystems zu verbessern. - A -The object of the invention, starting from software-based concepts such as UML, is to bring the processing of computational instructions by a processor into better agreement with the actual time sequences. A subtask is also to improve this timing even within a programmable unit or within a multiprocessor system. - A -
Die oben genannte Aufgabe wird durch Prozessoren gemäß den beigefügten Ansprüchen 1 und 2 sowie durch Verfahren gemäß den beigefügtem Ansprüchen 13 und 14 sowie durch ein Datenverarbeitungsprogramm gemäß dem beigefügten Anspruch 24 gelöst. Die genannte Teilaufgabe wird durch eine programmgesteuerte Einheit gemäß dem beigefügten Anspruch 10 und durch ein Verfahren gemäß dem beigefügten Anspruch 21 gelöst.The above object is achieved by processors according to the appended claims 1 and 2 as well as by methods according to the attached claims 13 and 14 as well as by a data processing program according to the appended claim 24. The said sub-task is solved by a program-controlled unit according to the appended claim 10 and by a method according to the appended claim 21.
Der erfindungsgemäße Prozessor weist zunächst ein Steuerwerk zur Bereitstellung einer Abfolge von Rechenbefehlen auf. Ein solches Steuerwerk wird auch als Leitwerk oder als Control Unit (CU) bezeichnet und ist oft der Kern eines Mikroprozessors. Weiterhin weist der erfindungsgemäße Prozessor ein Rechenwerk zur Abarbeitung der Rechenbefehle auf. Ein solches Rechenwerk wird auch als zentrale Recheneinheit, als Datenprozessor oder als Arithmetic Logic Unit (ALU) bezeichnet. Der erfindungsgemäße Prozessor weist einen steuerbaren Prozessortaktgeber zur Bereitstellung eines Prozessortaktes auf. Dieser Prozessortaktgeber kann einen internen Oszillator, beispielsweise einen Quarz-Oszillator umfassen oder er kann durch einen externen Takt gespeist sein. Erfindungsgemäß muss der steuerbare Prozessortaktgeber die Möglichkeit bieten, den Prozessortakt, d. h. den Takt, mit welchem dass Rechenwerk arbeitet, steuerbar bereitzustellen. Der erfindungsgemäße Prozessor umfasst weiterhin eine Zeitverwaltungseinheit, welche auch als Time Management Unit (TMU) bezeichnet wird. Die Zeitverwaltungseinheit umfasst einen Zeittaktgeber zur Bereitstellung eines Zeittaktes. Die Zeitverwaltungseinheit umfasst weiterhin einen Vergleicher zum Vergleich eines zuvor festgelegten Wertes für eine zulässige Zeitdauer zur Abarbeitung eines im Rechenwerk abzuarbeitenden Rechenbefehles mit einem Wert für eine durch den Zeittakt definierte seit Beginn der Abarbeitung des im Rechenwerk abzuarbeitenden Rechenbefehles verstrichene Zeitdauer. Folglich ist durch den Vergleicher während eines jeden Zeittaktes bekannt, ob der im Rechenwerk abzuarbeitende Rechenbefehl bislang eine Bearbeitungszeitdauer erforderte, die kleiner oder gleich der zulässigen Bearbeitungszeitdauer ist. Der Vergleicher kann auf Software- oder auf Hardwareebene implementiert sein. Schließlich umfasst der erfindungsgemäße Prozessor eine Koppelung der Zeitverwaltungseinheit mit dem steuerbaren Prozessortaktgeber. Durch diese Koppelung ist es möglich, den Prozessortakt an die tatsächlich vom Rechenwerk benötigte Zeitdauer zur Abarbeitung der dort befindlichen Rechenbefehle anzupassen. Somit kann ein Regelkreis gebildet werden, in welchem der Prozessortakt die geregelte Größe darstellt. Ergibt der Vergleich der Zeitwerte, dass die zulässige Zeitdauer zur Abarbeitung eines im Rechenwerk abzuarbeitenden Rechenbefehles überschritten ist, ist der Prozessortakt zu erhöhen. Anderenfalls kann der Prozessortakt konstant bleiben oder verringert werden.The processor according to the invention initially has a control unit for providing a sequence of arithmetic instructions. Such a control unit is also referred to as a tail unit or control unit (CU) and is often the core of a microprocessor. Furthermore, the processor according to the invention has an arithmetic unit for processing the arithmetic instructions. Such an arithmetic unit is also referred to as a central processing unit, as a data processor or as an arithmetic logic unit (ALU). The processor according to the invention has a controllable processor clock for providing a processor clock. This processor clock may include an internal oscillator, such as a quartz oscillator, or may be powered by an external clock. According to the invention, the controllable processor clock has to offer the possibility of controllably providing the processor clock, ie the clock with which the arithmetic unit is operating. The processor according to the invention further comprises a time management unit, which is also referred to as Time Management Unit (TMU). The time management unit includes a clock for providing a clock. The time management unit furthermore comprises a comparator for comparing a previously defined value for a permissible time duration for executing a computation instruction to be processed in the arithmetic unit with a value for an elapsed time defined by the clock since the execution of the arithmetic unit instruction to be processed Period of time. Consequently, it is known by the comparator during each time clock whether the arithmetic operation to be processed in the arithmetic unit previously required a processing time duration which is less than or equal to the allowable processing time duration. The comparator may be implemented at the software or hardware level. Finally, the processor according to the invention comprises a coupling of the time management unit with the controllable processor clock generator. By means of this coupling, it is possible to adapt the processor clock to the time actually required by the arithmetic unit for processing the arithmetic instructions located there. Thus, a control loop can be formed in which the processor clock represents the controlled variable. If the comparison of the time values reveals that the permissible time duration has been exceeded for executing a calculation instruction to be processed in the arithmetic unit, the processor clock cycle must be increased. Otherwise, the processor clock can remain constant or reduced.
Der erfindungsgemäße Prozessor weist den Vorteil auf, dass die zeitlichen Abläufe bei der Abarbeitung der Rechenbefehle nicht mehr an begrenzt genaue Schätzungen gebunden sind. Ein weiterer Vorteil besteht darin, dass während derjenigen Zeiten, in denen keine oder nur wenige Rechenbefehle abgearbeitet werden, der Prozessortakt deutlich gesenkt ist, wodurch eine deutliche Energieersparnis ermöglicht ist. Dies wirkt sich auch mindernd auf die effektive Wärmeverlustleistung aus, womit Kühlsysteme ggf. kleiner dimensioniert werden können.The processor according to the invention has the advantage that the time sequences during the processing of the arithmetic instructions are no longer bound to limited exact estimates. Another advantage is that during those times in which no or only a few computational instructions are processed, the processor clock is significantly reduced, whereby a significant energy savings is possible. This also has a detrimental effect on the effective heat loss performance, whereby cooling systems can possibly be dimensioned smaller.
Ein weiterer erfindungsgemäßer Prozessor weist zunächst ebenfalls ein Steuerwerk zur Bereitstellung einer Abfolge von Rechenbefehlen und ein Rechenwerk zur Abarbeitung der Rechenbefehle auf. Der Prozessor umfasst weiterhin eine Zeitverwaltungseinheit mit einem Zeittaktgeber zur Bereitstellung eines Zeittaktes. Die Zeitverwaltungseinheit umfasst weiterhin einen Vergleicher zum Vergleich eines zuvor festgelegten Wertes für eine zulässige Zeitdauer zur Abarbeitung eines im Rechenwerk abzuarbeitenden Rechenbefehles mit einem Wert für eine durch den Zeittakt definierte seit Beginn der Abarbeitung des im Rechenwerk abzuarbeitenden Rechenbefehles verstrichene Zeitdauer. Schließlich weist die Zeitverwaltungseinheit einen Ereigniskontrollspeicher zur Speicherung von Werten für die zur Abarbeitung eines Rechenbefehles im Rechenwerk benötigte Zeitdauer auf. Die im Ereigniskontrollspeicher gespeicherten Werte lassen sich als Speicherliste (Event Memory List) auffassen. Durch den Ereigniskontrollspeicher ist ein Monitoring der für die Abarbeitung der Rechenbefehle im Rechenwerk benötigten Zeitdauer ermöglicht. Dies ist insbesondere für den Entwickler von Software von Vorteil, da er die tatsächlich zur Abarbeitung der einzelnen Rechenbefehle benötigte Zeitdauer ermitteln kann.Another processor according to the invention initially also has a control unit for providing a sequence of arithmetic instructions and an arithmetic unit for processing the arithmetic instructions. The processor further comprises a time management unit with a clock for providing a Time clock. The time management unit further comprises a comparator for comparing a predetermined value for a permissible time duration for processing a computation instruction to be processed in the arithmetic unit with a value for a time period defined by the time clock since the processing of the arithmetic unit to be processed arithmetic operation elapsed time duration. Finally, the time management unit has an event control memory for storing values for the time required to execute a calculation instruction in the arithmetic unit. The values stored in the event control memory can be understood as a memory list (Event Memory List). The event control memory allows monitoring of the time required for processing the arithmetic commands in the arithmetic unit. This is particularly advantageous for the developer of software, since he can determine the time actually required for processing the individual arithmetic instructions.
Bei einer einfachen Ausführungsform der erfindungsgemäßen Prozessoren ist der Zeittaktgeber durch die Erfassung eines externen Systemtaktes gebildet. Bei einer bevorzugten Ausführungsform ist der Zeittaktgeber als eine Realzeituhr ausgeführt. Die Realzeituhr gibt eine Zeit, beispielsweise im Format hh :mm: ss :ms :μs oder auch mit Datum aus. Der Zeittakt in Form eines einfachen Systemtaktes oder einer Realzeit ist absolut, d. h. unabhängig von dem Prozessortakt.In a simple embodiment of the processors according to the invention, the clock generator is formed by the detection of an external system clock. In a preferred embodiment, the clock is implemented as a real time clock. The real-time clock outputs a time, for example in the format hh: mm: ss: ms: μs or also with date. The time clock in the form of a simple system clock or a real time is absolute, d. H. regardless of the processor clock.
Die Zeitverwaltungseinheit weist bevorzugt einen Ereignisspeicher zur Speicherung der zuvor festgelegten Werte für die jeweils zulässige Zeitdauer der im Rechenwerk abzuarbeitenden Rechenbefehle auf. Der Inhalt dieses Ereignisspeichers kann als eine Ereignisliste (Event List) aufgefasst werden, welche relative Zeiten enthält. Der Ereignisspeicher ermöglicht es, dem Vergleicher die festgelegten Werte für die jeweils zulässige Zeitdauer der im Rechenwerk abzuarbeitenden Rechenbefehle bereitzustellen.The time management unit preferably has an event memory for storing the previously defined values for the respective permissible time duration of the arithmetic unit instructions to be processed. The contents of this event memory can be construed as an event list containing relative times. The event memory allows To provide the comparator with the specified values for the respectively permissible time duration of the arithmetic instructions to be processed in the arithmetic unit.
Die Zeitverwaltungseinheit eines erfindungsgemäßen Prozessors mit einem steuerbaren Prozessortaktgeber weist bevorzugt weiterhin einen Ereigniskontrollspeicher zur Speicherung von Werten für die zur Abarbeitung eines Rechenbefehles im Rechenwerk benötigte Zeitdauer auf.The time management unit of a processor according to the invention with a controllable processor clock generator preferably also has an event control memory for storing values for the time duration required for processing a calculation instruction in the arithmetic unit.
Die Zeitverwaltungseinheit der erfindungsgemäßen Prozessoren weist bevorzugt weiterhin eine Schnittstelle zur Ausgabe von Hardwaresignalen an das Steuerwerk auf. Hierdurch ist es möglich, die Überschreitung von festlegbaren Zeitwerten zur Erzeugung eines Hardwaresignals zu nutzen. Diese Hardwaresignale generieren beispielsweise einen Interrupt Request (IRQ) beim Prozessor, der als Exception (Ausnahme) behandelt wird. Diese Exception signalisiert dem Prozessor, dass das zeitliche Gefüge des Programms verletzt wurde, wofür der Systemdesigner entsprechende Reaktionsmöglichkeiten vorsehen kann.The time management unit of the processors according to the invention preferably also has an interface for outputting hardware signals to the control unit. This makes it possible to use the exceeding of definable time values for generating a hardware signal. These hardware signals generate, for example, an interrupt request (IRQ) at the processor, which is treated as an exception. This exception signals to the processor that the program's timing has been violated, for which the system designer can provide appropriate response capabilities.
Der steuerbare Prozessortaktgeber umfasst bevorzugt einen spannungsgesteuerten Oszillator. Hierdurch lässt sich der Prozessortakt aufwandsarm in Abhängigkeit von der angelegten Betriebsspannung steuern. Die Kopplung der Zeitverwaltungseinheit mit dem steuerbaren Prozessortaktgeber kann beispielsweise über eine Regelungseinheit, in welcher der Regelungsalgorithmus implementiert ist, und über einen analogen Ausgang der Regelungseinheit, welchen den spannungsgesteuerten Oszillator steuert, erfolgen.The controllable processor clock preferably comprises a voltage controlled oscillator. As a result, the processor cycle can be controlled with little effort depending on the applied operating voltage. The coupling of the time management unit with the controllable processor clock can, for example, via a control unit in which the control algorithm is implemented, and via an analog output of the control unit, which controls the voltage controlled oscillator occur.
Das erfindungsgemäße Verfahren zur Regelung eines Taktes eines Prozessors umfasst zunächst einen Schritt zur Bereitstellung einer Abfolge von Rechenbefehlen, die im Prozessor abgearbeitet werden. Weiterhin ist ein Zeittakt bereitzustellen. Das erfindungsgemäße Verfahren sieht einen wiederholten Vergleich vor, in welchem ein zuvor festgelegter Wert für eine zulässige Zeitdauer zur Abarbeitung eines abzuarbeitenden Rechenbefehles mit einem Wert für eine durch den Zeittakt definierte seit Beginn der Abarbeitung des abzuarbeitenden Rechenbefehles verstrichene Zeitdauer verglichen wird. Ein Ergebnis des Vergleiches ist entsprechend bereitzustellen und dient der Steuerung des Taktes des Prozessors, welche in Abhängigkeit von diesem Ergebnis erfolgt. Somit kann eine Anpassung des Prozessortaktes an die vom Rechenwerk zur Abarbeitung des jeweiligen Rechenbefehles benötigte Zeitdauer erfolgen. Das erfindungsgemäße Verfahren ist weitgehend unabhängig von der zu verwendenden Rechnerarchitektur und kann teilweise oder vollständig im Prozessor implementiert sein. Das erfindungsgemäße Verfahren ermöglicht die Bildung eines Regelkreises, in welchem der Takt des Prozessors die geregelte Größe darstellt.The method according to the invention for controlling a cycle of a processor initially comprises a provisioning step a sequence of computational instructions that are executed in the processor. Furthermore, a time clock is to be provided. The method according to the invention provides for a repeated comparison, in which a previously defined value for a permissible time duration for executing a calculation instruction to be processed is compared with a value for a time period defined by the time interval since the processing of the arithmetic instruction to be processed has elapsed. A result of the comparison is to be provided accordingly and serves to control the clock of the processor, which is done in response to this result. Thus, an adaptation of the processor clock to the time required by the arithmetic unit for processing the respective arithmetic command can take place. The inventive method is largely independent of the computer architecture to be used and may be partially or completely implemented in the processor. The inventive method allows the formation of a control loop in which the clock of the processor represents the controlled variable.
Das erfindungsgemäße Verfahren zum Monitoring von Zeiten zur Abarbeitung von Rechenbefehlen in einem Prozessor umfasst zunächst einen Schritt zur Bereitstellung einer Abfolge von Rechenbefehlen, die im Prozessor abgearbeitet werden. Weiterhin ist ein Zeittakt bereitzustellen. Schließlich wird eine durch den Zeittakt definierte insgesamt zur Abarbeitung des abzuarbeitenden Rechenbefehles benötigte Zeitdauer gespeichert. Dies geschieht dann, wenn ein aufgerufener Programmbefehl dazu auffordert, was einem manuellen Monitoring entspricht, oder wenn die durch den Zeittakt definierte insgesamt zur Abarbeitung des abzuarbeitenden Rechenbefehles benötigte Zeitdauer größer als eine zulässige Zeitdauer zur Abarbeitung dieses Rechenbefehles ist, was einem automatischen Monitoring entspricht. Der gespeicherte Wert kann beispiels- weise durch den Entwickler einer Software ausgelesen werden, um hieraus Rückschlüsse über die zeitlichen Abläufe bei der Abarbeitung des Programms ziehen zu können. Der gespeicherte Wert kann aber auch durch einen Programmbefehl ausgelesen werden, um die weitere Abarbeitung des Programms in Abhängigkeit von diesem Wert zu beeinflussen. Das erfindungsgemäße Verfahren ist weitgehend unabhängig von der zu verwendenden Rechnerarchitektur und kann teilweise oder vollständig im Prozessor implementiert sein.The method according to the invention for monitoring times for the execution of arithmetic instructions in a processor initially comprises a step for providing a sequence of arithmetic instructions which are executed in the processor. Furthermore, a time clock is to be provided. Finally, a time period defined by the time clock is stored in total for the processing of the arithmetic command to be processed. This happens when a called program command requests this, which corresponds to a manual monitoring, or if the total time required for the processing of the arithmetic command to be processed by the time clock is greater than a permissible time for processing this arithmetic command, which corresponds to an automatic monitoring. The stored value can be wise be read by the developer of a software to draw conclusions about the timing of the execution of the program. However, the stored value can also be read out by a program command in order to influence the further execution of the program as a function of this value. The inventive method is largely independent of the computer architecture to be used and may be partially or completely implemented in the processor.
Bei einer bevorzugten Ausführungsform der erfindungsgemäßen Verfahrenen wird der Zeittakt als Realzeit bereitgestellt, wodurch erweiterte Vergleichsmöglichkeiten gegeben sind.In a preferred embodiment of the methods according to the invention, the time clock is provided as real time, whereby extended comparison possibilities are given.
Bei einer weiteren bevorzugten Ausführungsform der erfindungsgemäßen Verfahren nimmt vor der Abarbeitung eines Rechenbefehles eine Variable den Wert für die zulässige Zeitdauer zur Abarbeitung des Rechenbefehles an. Die Variable wird während der Abarbeitung des Rechenbefehles mit dem Zeittakt dekremen- tiert. Der wiederholte Vergleich besteht darin, dass die Variable wiederholt mit Null verglichen wird. Diese Ausführungsform erlaubt einen aufwandsarmen Vergleich, da sowohl die Dekrementierung der Variablen als auch deren Vergleich mit Null leicht in Hardware zu implementieren sind.In a further preferred embodiment of the method according to the invention, before processing a calculation instruction, a variable assumes the value for the permissible time duration for processing the calculation instruction. The variable is decremented during execution of the arithmetic command with the timing. The repeated comparison is that the variable is repeatedly compared to zero. This embodiment allows a low-cost comparison, since both the decrementation of the variables and their comparison with zero are easy to implement in hardware.
Bei einer weiteren bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens zur Regelung des Prozessortaktes wird weiterhin eine durch den Zeittakt definierte insgesamt zur Abarbeitung des abzuarbeitenden Rechenbefehles benötigte Zeitdauer gespeichert. Dies geschieht dann, wenn ein aufgerufener Programmbefehl dazu auffordert, was einem manuellen Monitoring entspricht, oder wenn die durch den Zeittakt definierte insgesamt zur Abarbeitung des abzuarbeitenden Rechenbefehles benö- tigte Zeitdauer größer als die zulässige Zeitdauer zur Abarbeitung dieses Rechenbefehles ist, was einem automatischen Monitoring entspricht.In a further preferred embodiment of the method according to the invention for controlling the processor clock, a time duration defined by the clock cycle is generally stored in total for the processing of the arithmetic command to be processed. This happens when a called program command requests this, which corresponds to a manual monitoring, or if the total time defined by the clock cycle is required for processing the computational command to be processed. Taken time period is greater than the permissible time for processing this arithmetic command, which corresponds to an automatic monitoring.
Bevorzugt wird ein hardwarebasiertes Interrupt-Signal ausgelöst, wenn der Wert für die durch den Zeittakt definierte bislang zur Abarbeitung des Rechenbefehles benötigte Zeitdauer einen zuvor festgelegten Wert überschreitet. Dadurch ist es einem Softwareentwickler erleichtert, entsprechende Programmbefehle bei derartigen Überschreitungen der festgelegten Zeitdauer vorzusehen. Es könne mehrere Interrupt-Signale verwendet werden, die entsprechend maskiert werden können.Preferably, a hardware-based interrupt signal is triggered when the value for the time period defined by the time clock previously required for processing the arithmetic command exceeds a predetermined value. This makes it easier for a software developer to provide appropriate program instructions in case of such exceeding of the specified period of time. It can be used several interrupt signals that can be masked accordingly.
Bevorzugt wird eine Variable zur Zählung des Zeittaktes durch einen Programmbefehl definiert. Beispielsweise kann ein Befehl „settim Rx" festgelegt werden, mit dem die Variable zur Zählung des Zeittaktes durch den Inhalt des Registers Rx festgelegt wird. Insofern der Zeittakt durch eine Realzeit repräsentiert wird, muss der Inhalt des Registers Rx das Format der Realzeit aufweisen.Preferably, a variable for counting the timing is defined by a program instruction. For example, a command "settim Rx" may be set that sets the variable for counting the clock by the contents of the register Rx. If the clock is represented by a real time, the contents of the register Rx must be in real-time format.
Bei einer weiteren bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird der Wert der Variable zur Zählung des Zeittaktes in einen festgelegten Speicherbereich abgelegt, wenn ein aufgerufener Programmbefehl dazu auffordert. Beispielsweise kann ein Befehl „gettim Rx" definiert werden, mit welchem der Wert der Variable zur Zählung des Zeittaktes in das Register Rx bzw. die folgenden Register kopiert wird. Insofern der Zeittakt durch eine Realzeit repräsentiert wird, wird der Wert in dem entsprechenden Format in das Register kopiert . Die zuvor festgelegten Werte für die jeweils zulässige Zeitdauer zur Abarbeitung der abzuarbeitenden Rechenbefehle werden bevorzugt in einem festgelegten Speicherbereich gespeichert. Diese Werte sind als Ereignisliste (Event List) auffassbar.In a further preferred embodiment of the method according to the invention, the value of the variable for counting the time clock is stored in a specified memory area when a program command invoked requests it. For example, a command "gettim Rx" can be defined, with which the value of the variable for counting the time clock is copied into the register Rx or the following registers.If the time clock is represented by a real time, the value in the corresponding format becomes copied the register. The previously defined values for the respective permissible time duration for processing the arithmetic commands to be processed are preferably stored in a defined memory area. These values can be understood as an event list.
Die Größe einer Variablen wird bevorzugt durch eine maximale Anzahl von Werten für die jeweils zulässige Zeitdauer zur Abarbeitung der abzuarbeitenden Rechenbefehle, die in dem dafür festgelegten Speicherbereich gespeichert werden können, definiert, wenn ein aufgerufener Programmbefehl dazu auffordert. Diese maximale Anzahl ist als Anzahl der möglichen Einträge in der Ereignisliste auffassbar. Beispielsweise ist ein Befehl „ldnelm Rx" definierbar, der die Variable mit dem Wert dieser Anzahl in das Register Rx kopiert.The size of a variable is preferably defined by a maximum number of values for the respective permissible time duration for processing the arithmetical commands to be processed, which can be stored in the memory area specified for this purpose, when a program command invoked requests this. This maximum number is understandable as the number of possible entries in the event list. For example, an instruction "ldnelm Rx" can be defined, which copies the variable with the value of this number into the register Rx.
Bei einer weiteren bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird ein Moduswert verwendet. Der Moduswert wird zu jedem der festgelegten Werte für die jeweils zulässige Zeitdauer zur Abarbeitung der abzuarbeitenden Rechenbefehle in dem festgelegten Speicherbereich gespeichert. Somit sind für jeden Rechenbefehl die jeweils zulässige Zeitdauer sowie der dafür vorgesehene Moduswert gespeichert. Durch den Moduswert ist definiert, bei welchem Signal aus einer Gruppe vorbestimmter Signale die Bestimmung der durch den Zeittakt definierten zur Abarbeitung des Rechenbefehles benötigten Zeitdauer beginnt. Somit kann beispielsweise festgelegt werden, durch welchen Interrupt Request eine Aktivierung erfolgen kann.In a further preferred embodiment of the method according to the invention, a mode value is used. The mode value is stored in the designated memory area at each of the set values for the respective allowable period of time for processing the arithmetic instructions to be processed. Thus, the respective permissible time duration and the mode value provided for each arithmetic command are stored. The mode value defines at which signal from a group of predetermined signals the determination of the time duration defined by the time clock to process the arithmetic command begins. Thus, for example, it can be determined by which interrupt request an activation can take place.
Bevorzugt wird eine Variable durch den Moduswert definiert, wenn ein aufgerufener Programmbefehl dazu auffordert. In gleicher Weise wird der Moduswert durch den Wert einer Variablen definiert, wenn ein anderer aufgerufener Programmbefehl dazu auffordert. Beispielsweise kann ein Befehl „stemc Rx, Ry, Rz" definiert werden, durch welchen eine Konfiguration in dem Element der Ereignisliste [Rx] , dem Konfigurationswert in Ry und dem Moduswert in Rz gespeichert wird. Für den Moduswert können beispielsweise folgende Entsprechungen definiert werden: Ist das Bit 7 gleich 1, wird ein One Shot Mode gesetzt, wohingegen ein kontinuierlicher Modus mit Auto Reload gesetzt wird, wenn das Bit 7 gleich 0 ist. Ist das Bit 6 gleich 1, erfolgt die Aktivierung durch einen aktiven Interrupt Request, wohingegen eine sofortige Aktivierung erfolgt, wenn das Bit 6 gleich 0 ist. Die Bits 5 bis 0 entsprechen der Nummer des Interrupt Request, falls das Bit 6 gleich 1 ist.Preferably, a variable is defined by the mode value when a called program command prompts. Similarly, the mode value is defined by the value of a variable when prompted by another invoked program command. For example, a command "stemc Rx, Ry, Rz" are defined by which a configuration is stored in the element of the event list [Rx], the configuration value in Ry and the mode value in Rz. For the mode value, for example, the following equivalents can be defined: If bit 7 is 1, a one shot mode is set, whereas a continuous mode with auto reload is set if bit 7 is 0. If bit 6 is equal to 1, the activation takes place via an active interrupt request, whereas an immediate activation takes place when bit 6 is equal to 0. Bits 5 to 0 correspond to the number of the interrupt request if bit 6 is equal to 1.
Beispielsweise wird durch den ProgrammbefehlFor example, by the program command
„stemc Rx, Ry, #mode" dazu aufgefordert, dass in dem Element der Ereignisliste [Rx] , dem Konfigurationswert in Ry und dem Moduswert in mode eine Konfiguration gespeichert wird. Durch den Befehl „stemc Rx, #value, #mode" wird dazu aufgefordert, dass in dem Element der Ereignisliste [Rx] , dem Konfigurationswert in value und dem Moduswert in mode eine Konfiguration gespeichert wird. Durch den Programmbefehl"Stemc Rx, Ry, #mode" is prompted for a configuration to be stored in the element of the event list [Rx], the configuration value in Ry, and the mode value in mode The command "stemc Rx, #value, #mode" will prompted for a configuration to be stored in the element of the event list [Rx], the configuration value in value, and the mode value in mode. By the program command
„stemc #tim, #value, #mode" wird dazu aufgefordert, dass in dem Element tim der Ereignisliste, dem Konfigurationswert in value und dem Moduswert in mode eine Konfiguration gespeichert wird. Unmittelbare Konfigurationswerte können ggf. entfallen, falls sie das Befehlsformat überschreiten, beispielsweise aufgrund der hohen Anzahl der zu codierenden Bits in den Konstanten ."Stemc #tim, #value, #mode" is prompted to store a configuration in the tim element of the event list, the configuration value in value, and the mode value in mode. for example due to the high number of bits to be coded in the constants.
Bei einer weiteren bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird ein Kontrollmoduswert verwendet. Jeweils ein Kontrollmoduswert wird zu jedem der festgelegten Werte für die jeweils zulässige Zeitdauer zur Abarbeitung der abzuarbeitenden Rechenbefehle gespeichert. Durch den Kontroll- moduswert ist definiert, ob die insgesamt zur Abarbeitung des abzuarbeitenden Rechenbefehles benötigte Zeitdauer gespeichert wird, und ob ein hardwarebasiertes Interrupt-Signal ausgelöst wird, wenn die zulässige Zeitdauer zur Abarbeitung des abzuarbeitenden Rechenbefehles überschritten wurde. Der Kontrollmoduswert ermöglicht es, die Art der Reaktion festzulegen, wenn die für einen Rechenbefehl zulässige Zeitdauer überschritten wird .In a further preferred embodiment of the method according to the invention, a control mode value is used. One control mode value is stored for each of the specified values for the respective permissible time duration for processing the arithmetic commands to be processed. Through the control a mode value is defined as to whether the total time required for processing the arithmetic command to be processed is stored, and whether a hardware-based interrupt signal is triggered when the permissible time for processing the arithmetic command to be processed has been exceeded. The control mode value allows the type of response to be set when the time allowed for a calculation command is exceeded.
Bevorzugt wird eine Variable durch den Kontrollmoduswert definiert, wenn ein aufgerufener Programmbefehl dazu auffordert. In gleicher Weise wird der Kontrollmoduswert durch den Wert einer Variablen definiert, wenn ein anderer aufgerufener Programmbefehl dazu auffordert. Beispielsweise kann ein Programmbefehl „strcm Rx, Ry" definiert werden, durch welchen für das Element [Rx] der Kontrollmoduswert [Ry] konfiguriert wird. Der Kontrollmoduswert kann folgende Entsprechung aufweisen: Ist das Bit 1 gleich 1, wird die insgesamt zur Abarbeitung des abzuarbeitenden Rechenbefehles benötigte Zeitdauer in der Ereignisspeicherliste gespeichert, wohingegen keine Speicherung erfolgt, wenn das Bit 1 gleich 0 ist. Wenn das Bit 0 gleich 1 ist, wird ein hardwarebasiertes Interrupt-Signal ausgelöst, wohingegen dieses nicht ausgelöst wird, wenn das Bit 0 gleich 0 ist. Weiterhin kann ein Programmbefehl „strcm Rx, #react_mode" definiert werden, durch welchen für das Element [Rx] der Kontrollmoduswert react_mode konfiguriert wird .Preferably, a variable is defined by the control mode value when prompted by a called program command. Similarly, the control mode value is defined by the value of a variable when prompted by another invoked program command. For example, a program command "strcm Rx, Ry" may be defined by which the control mode value [Ry] is configured for the element [Rx] The control mode value may have the following correspondence: If bit 1 is equal to 1, the total is to be processed Arithmetic instructions store the required amount of time in the event storage list whereas no storage occurs when bit 1 equals 0. If bit 0 is equal to 1, a hardware-based interrupt signal is triggered, whereas if the 0 bit is 0, it is not triggered Furthermore, a program command "strcm Rx, #react_mode" can be defined by which the control mode value react_mode is configured for the element [Rx].
Weitere mögliche Programmbefehle sind: „ldemv", „ldemm", „ldemc" und „rstelm" . Durch den Befehl „ldemv Rx, Ry" wird der aktuell eingestellte Wert des Elementes [Ry] in Rx geladen. Durch den Befehl „ldemm Rx, Ry" wird der aktuell eingestellte Moduswert des Elementes [Ry] in Rx geladen. Durch den Befehl „ldemc Rx, Ry" wird der Kontrollmoduswert des Elementes [Ry] in das Register Rx geladen. Durch den Befehl „rstelm Rx, Ry" wird die aktuelle Überwachung des Elementes [Rx] zurückgesetzt. Ein Neustart wird je nach eingestelltem Modus ggf. durchgeführt. Die Notation [Rx] bedeutet eine Indirektion, d. h. ein Zugriff auf den Inhalt von Rx.Other possible program commands are: "ldemv", "ldemm", "ldemc" and "rstelm". The command "ldemv Rx, Ry" loads the currently set value of the element [Ry] in Rx. The command "ldemm Rx, Ry" loads the currently set mode value of the element [Ry] in Rx. By the command "Ldemc Rx, Ry" the control mode value of the element [Ry] is loaded into the register Rx The command "rstelm Rx, Ry" resets the current monitoring of the element [Rx]. A restart may be performed depending on the mode set. The notation [Rx] implies an indirection, ie an access to the contents of Rx.
Im Weiteren sind beispielsweise die Befehle „ldmv", „ldnmv" und „monit" zur Verwaltung der Ereignisspeicherliste definierbar. Der Programmbefehl „ldmv Rx" führt dazu, dass die Anzahl der in der Ereignisspeicherliste gespeicherten Ereignisse geladen wird. Diese Liste kann als first-in-first-out-Speicher in Ringpufferform aufgebaut sein. Es sind aber auch andere Organisationsformen denkbar. Der Befehl „ldnmv Rx" führt dazu, dass das nächste Ereignis in das Register Rx geladen wird. Dies könnte beispielsweise das älteste gespeicherte Ereignis sein, welches noch nicht ausgelesen wurde, wobei die Anzahl der verfügbaren Einträge um 1 dekrementiert wird. Der Befehl „monit" führt dazu, dass der aktuelle Wert des Zeittaktes in die Ereignisspeicherliste geschrieben wird. Hierdurch ist das Setzen von Marken in dieser Liste ermöglicht.For example, ldmv, ldnmv, and monit commands can be defined to manage the event store list, and the ldmv Rx program command loads the number of events stored in the event store list. This list can be constructed as a first-in-first-out memory in ring buffer form. But other forms of organization are conceivable. The command "ldnmv Rx" causes the next event to be loaded into register Rx, which could, for example, be the oldest stored event that has not yet been read, decrementing the number of available entries by 1. The command "monit "causes the current value of the clock to be written to the event log. This allows you to place marks in this list.
Ein weiterer Aspekt der Erfindung ist durch eine programmgesteuerte Einheit gegeben. Die erfindungsgemäße programmgesteuerte Einheit weist zumindest mehrere Rechenwerke zur Abarbeitung von Rechenbefehlen und ein Steuerwerk zur Bereitstellung einer Abfolge von Rechenbefehlen auf. Das Steuerwerk dient weiterhin der Verteilung der Rechenbefehle auf die Rechenwerke. Die programmgesteuerte Einheit weist weiterhin einen Zeittaktgeber zur Bereitstellung eines Zeittaktes auf. Jedem Rechenwerk der programmgesteuerten Einheit ist ein Vergleicher zum Vergleich eines zuvor festgelegten Wertes für eine zulässige Zeitdauer zur Abarbeitung eines abzuarbeitenden Rechenbefehles mit einem Wert für eine durch den Zeittakt definierte seit Beginn der Abarbeitung des abzuarbeitenden Rechenbefehles verstrichene Zeitdauer zugeordnet. Die Vergleicher sind mit dem Steuerwerk gekoppelt. Die erfindungsgemäße programmgesteuerte Einheit erlaubt die Bildung eines Regelkreises, in welchem die Verteilung der Rechenbefehle auf die Rechenwerke geregelt wird.Another aspect of the invention is given by a program controlled unit. The program-controlled unit according to the invention has at least several arithmetic units for processing arithmetic instructions and a control unit for providing a sequence of arithmetic instructions. The control unit also serves to distribute the computation commands to the arithmetic units. The program-controlled unit furthermore has a time clock for providing a time clock. Each arithmetic unit of the program-controlled unit is a comparator for comparing a predetermined value for a permissible period of time for processing a to be processed Arithmetic commands associated with a value for a defined by the time clock since the beginning of the processing of the processing arithmetic command elapsed time allocated. The comparators are linked to the control unit. The program-controlled unit according to the invention permits the formation of a control loop in which the distribution of the arithmetic commands to the arithmetic units is regulated.
Bei einer bevorzugten Ausführungsform der erfindungsgemäßen programmgesteuerten Einheit sind die Rechenwerke als vollständige Prozessoren ausgebildet. Es handelt sich um ein System aus eigenständigen Prozessoren, sodass die programmgesteuerte Einheit ein Mehrprozessorsystem darstellt. Vorzugsweise sind die den Prozessoren zugeordneten Zeitverwaltungseinheiten in die Prozessoren integriert. Dieses Mehrprozessorsystem erlaubt die Bildung eines Regelkreises, in welchem die Verteilung der Rechenbefehle auf die Prozessoren geregelt wird. Das Prinzip einer solchen Verteilung kann durch ein Space-Time-Mapping- Verfahren gegeben sein, bei welchem von der Ausführungsdimension Time (Zeitsequenz) auf Space (Konfiguration von Rechenelementen zur maximalen Parallelität) umgeschaltet werden kann. Die Ausführung im Raum bindet wesentlich mehr Ressourcen und wird so weitgehend vermieden. Sie besitzt aber ein erheblich höheres Beschleunigungspotenzial. Das Steuerwerk kann teilweise oder vollständig durch die Prozessoren selbst gebildet sein.In a preferred embodiment of the program-controlled unit according to the invention, the arithmetic units are designed as complete processors. It is a stand-alone processor system, so the programmable unit is a multiprocessor system. Preferably, the time management units associated with the processors are integrated into the processors. This multiprocessor system allows the formation of a control loop in which the distribution of the arithmetic commands to the processors is controlled. The principle of such a distribution can be given by a space-time mapping method in which the execution dimension Time (time sequence) can be switched to Space (configuration of computing elements for maximum parallelism). The execution in the room binds much more resources and is thus largely avoided. But it has a much higher acceleration potential. The control unit may be partially or completely formed by the processors themselves.
Bei einer besonderen Ausführungsform der als Mehrprozessorsystem ausgebildeten programmgesteuerten Einheit weist diese weiterhin einen steuerbaren Prozessortaktgeber zur Bereitstellung eines Prozessortaktes auf, wobei dieser Prozessortaktgeber mit mindestens einem der Vergleicher gekoppelt ist. Bei dieser Ausführungsform des Mehrprozessorsystems ist eine Rege- lung sowohl der Verteilung der Rechenbefehle auf die Prozessoren als auch eine Regelung des Prozessortaktes eines oder mehrerer Prozessoren möglich. Hierdurch kann das Mehrprozessorsystem der Menge an abzuarbeitenden Rechenbefehlen in einem sehr großen Dynamikbereich angepasst werden.In a particular embodiment of the program-controlled unit designed as a multiprocessor system, the latter furthermore has a controllable processor clock generator for providing a processor clock, wherein this processor clock generator is coupled to at least one of the comparators. In this embodiment of the multiprocessor system, a regulation Both the distribution of the arithmetic instructions to the processors and a control of the processor clock of one or more processors possible. This allows the multiprocessor system to be adapted to the amount of computation instructions to be processed in a very wide dynamic range.
Gemäß der vorliegenden Erfindung wird weiterhin ein Verfahren zur Verteilung von Rechenbefehlen auf Rechenwerke einer programmgesteuerten Einheit aufgezeigt, welches zunächst eine Bereitstellung einer Abfolge von Rechenbefehlen, welche in den Rechenwerken abgearbeitet werden, vorsieht. Weiterhin wird ein Zeittakt bereitgestellt. Es erfolgt ein wiederholter Vergleich eines zuvor festgelegten Wertes für eine zulässige Zeitdauer zur Abarbeitung eines abzuarbeitenden Rechenbefehles mit einem Wert für eine durch den Zeittakt definierte seit Beginn der Abarbeitung dieses Rechenbefehles verstrichene Zeitdauer. Die Ergebnisse der Vergleiche werden bereitgestellt und dienen zur Bestimmung der Aufteilung der abzuarbeitenden Rechenbefehle auf die Rechenwerke, welche nachfolgend in Abhängigkeit von diesen Ergebnissen erfolgt. Somit kann die Verteilung der Rechenbefehle auf die Rechenwerke an die von den Rechenwerken zur Abarbeitung des jeweiligen Rechenbefehles benötigte Zeitdauer angepasst werden.In accordance with the present invention, a method for distributing arithmetic instructions to arithmetic units of a program-controlled unit is also shown, which first provides for a provision of a sequence of arithmetic instructions which are executed in the arithmetic units. Furthermore, a time clock is provided. There is a repeated comparison of a predetermined value for a permissible period of time for processing a computational command to be processed with a value for a defined by the time clock since the start of processing of this arithmetic command elapsed time duration. The results of the comparisons are provided and serve to determine the division of the arithmetic commands to be processed into the arithmetic units, which subsequently takes place as a function of these results. Thus, the distribution of the arithmetic commands can be adapted to the arithmetic units to the time required by the arithmetic units for processing the respective arithmetic command.
Das erfindungsgemäße Verfahren kann ebenso zur Verteilung von Rechenbefehlen auf Prozessoren eines Mehrprozessorsystems genutzt werden. Das erfindungsgemäße Verfahren ist unabhängig von der Architektur des Mehrprozessorsystems anwendbar. Ebenso ist es weitgehend unabhängig von der Architektur der einzelnen Prozessoren des Mehrprozessorsystems. Diese können beispielsweise durch Mikroprozessoren gebildet sein. Gemäß der vorliegenden Erfindung können die Schritte des Verfahrens zur Regelung eines Taktes eines Prozessors mit Schritten des Verfahrens zur Verteilung der Rechenbefehle innerhalb eines Mehrprozessorsystems kombiniert werden, wodurch ein Mehrprozessorsystem in einer großen Variabilität an die Menge und die Art der abzuarbeitenden Rechenbefehle angepasst werden kann.The inventive method can also be used for the distribution of arithmetic instructions on processors of a multiprocessor system. The inventive method is applicable regardless of the architecture of the multiprocessor system. Likewise, it is largely independent of the architecture of the individual processors of the multiprocessor system. These may be formed for example by microprocessors. In accordance with the present invention, the steps of the method of controlling a clock of a processor may be combined with steps of the method of distributing the arithmetic instructions within a multiprocessor system, whereby a multiprocessor system can be adapted in a large variability to the amount and type of arithmetic instructions to be processed.
Die oben beispielhaft genannten Programmbefehle, wie „settim", „gettim", „ldnelm", „stemc", „ldemv" und „monit", sind bevorzugt in einer Assemblersprache zu codieren. Hierdurch können sie unmittelbar in Maschinensprache übersetzt werden, wodurch eine hardwarenahe und effiziente Programmierung ermöglicht ist. Neben den genannten Beispielen für Programmbefehle sind weitere Programmbefehle, welche insbesondere das Verhalten der Zeitverwaltungseinheit steuern, definierbar.The program instructions mentioned above by way of example, such as "settim", "gettim", "ldnelm", "stemc", "ldemv" and "monit", are preferably to be encoded in an assembly language. This allows them to be translated directly into machine language, allowing low-level and efficient programming. In addition to the examples given for program instructions, further program instructions, which in particular control the behavior of the time management unit, can be defined.
Ein weiterer Aspekt der Erfindung ist in einem Programm zu sehen, welches in einer Hochsprache, beispielsweise in einer imperativen Sprache wie C, codiert ist und nach dessen Übersetzung (Kompilierung) zur Abarbeitung auf einem erfindungsgemäßen Prozessor vorgesehen ist. Das Programm weist zumindest einen in der Hochsprache codierten Programmbefehl auf, in welchem verschiedene Maschinenbefehle zur Verwaltung der Zeitverwaltungseinheit zusammengefasst sind. Die Programmbefehle können als „wesentliche Kommentare" oder in Form bedingter Kompilierung in den Quelltext eingebunden werden. Hierdurch entstehen keine Kompatibilitätsprobleme auf der Quelltextebene. Eine Einbindung als bedingte Kompilierung kann wie folgt in C vorgenommen werden:A further aspect of the invention can be seen in a program which is coded in a high-level language, for example in an imperative language such as C, and after its translation (compilation) is provided for execution on a processor according to the invention. The program has at least one program command encoded in the high-level language in which various machine commands for managing the time management unit are combined. The program commands can be included in the source text as "essential comments" or in the form of conditional compilation.This does not cause any compatibility problems at the source code level.The conditional compilation can be done in C as follows:
#ifdef TMU_integrated foreveryloop ( timeValue ) ; #endif#ifdef TMU_integrated foreveryloop (timeValue); #endif
Eine Einbindung als wesentlicher Kommentar kann wie folgt vorgenommen werden:An involvement as an essential commentary can be done as follows:
/*@@ foreveryloop ( timeValue ) ; *// * @@ foreveryloop (timeValue); * /
Beispielsweise kann eine Basisfunktion:For example, a basic function can be:
int start_oneshot_timemonitoring ( confValue, timeValue )int start_oneshot_timemonitoring (confValue, timeValue)
definiert werden, welche einen einmaligen Vorgang der Zeitüberwachung an dieser Stelle startet. Der Rückgabewert dieser Funktion ist die Nummer des Elementes in der Ereignisliste.be defined, which starts a one-time process of time monitoring at this point. The return value of this function is the number of the item in the event list.
Eine weitere mögliche Basisfunktion ist:Another possible basis function is:
int start_continuous_timemonitoring ( confValue, timeValueint start_continuous_timemonitoring (confValue, timeValue
Durch diese Basisfunktion wird ein permanenter Vorgang der Zeitüberwachung an dieser Stelle gestartet. Rückgabewert dieser Funktion ist die Nummer des Elementes in der Ereignisliste. Weiterhin kann eine Basisfunktion:This basic function starts a permanent process of time monitoring at this point. The return value of this function is the number of the element in the event list. Furthermore, a basic function can be:
void reset_timer( elemNumber )void reset_timer (elemNumber)
definiert werden, durch welche die durch den Zeittakt bestimmte Zeitdauer zurückgesetzt wird, wenn das Programm an dieser Stelle durchlaufen wird. Anderenfalls wird eine konfigurierte Aktion ausgelöst.be defined, by which the time period determined by the clock cycle is reset when the program is run through at this point. Otherwise, a configured action is triggered.
Weiterhin kann eine Basisfunktion: void switch_off_timer ( elemNumber )Furthermore, a basic function can be: void switch_off_timer (elemNumber)
definiert werden, durch welche die Bestimmung einer durch den Zeittakt bestimmten Zeitdauer deaktiviert wird. Die Basisfunktionen können als Funktionsaufrufe oder als Makros implementiert werden.be defined by which the determination of a time period determined by the time clock is deactivated. The basic functions can be implemented as function calls or as macros.
Neben den beispielhaft genannten Basisfunktionen sind weitere Hochsprachenkonstrukte definierbar, deren Übersetzung in mehrere, nicht konsekutive Anweisungen erfolgen muss. Beispielsweise ist das Hochsprachenelement:In addition to the basic functions exemplified, further high-level language constructs can be defined whose translation must be carried out in a number of non-consecutive statements. For example, the high-level language element is:
for_every_loop ( &elemNumber, confValue, timeValue )for_every_loop (& elemNumber, confValue, timeValue)
definierbar, welches sich auf eine Schleife bezieht, auf deren Ebene es definiert wird. Dieses Element kann wie folgt aufgerufen werden:definable, which refers to a loop at the level of which it is defined. This element can be called as follows:
int element_number ; for ( <init>; <condition>; <update> )int element_number; for (<init>; <condition>; <update>)
{ for_every_loop ( &element_number, time_value ) ;{for_every_loop (& element_number, time_value);
<list_of_statements> }<list_of_statements>}
Dieses gegenüber dem Standard-C neue Hochsprachenelement wird wie folgt in in der Norm definierte Hochsprachenanweisungen übersetzt :This high-level language element, new to the standard C, is translated into standard-defined high-level language statements as follows:
int element_number ; for ( <init>, element_number = start_continuous_timemonitoring ( confValue, timeValue); <Condition>; <update>, reset_timer (element_number ) )int element_number; for (<init>, element_number = start_continuous_timemonitoring (confValue, timeValue); <Condition>;<update>, reset_timer (element_number))
{{
<list_of_statements> } switch_off_timer ( element_number ) ;<list_of_statements>} switch_off_timer (element_number);
Ein weiteres beispielhaftes Hochsprachenelement ist:Another exemplary high level language element is:
max_react_time ( timeValue )max_react_time (timeValue)
Hierdurch wird die maximal zulässige Reaktionszeit definiertThis defines the maximum allowable response time
Weitere Vorteile, Einzelheiten und Weiterbildungen der vorliegenden Erfindung ergeben sich aus der nachfolgenden Beschreibung bevorzugter Ausführungsformen, unter Bezugnahme auf die Zeichnung. Es zeigen:Further advantages, details and developments of the present invention will become apparent from the following description of preferred embodiments, with reference to the drawings. Show it:
Fig. 1: ein Blockdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Prozessors; undFig. 1 is a block diagram of a preferred embodiment of the processor according to the invention; and
Fig. 2: ein Blockdiagramm einer in Fig. 1 gezeigten Zeitverwaltungseinheit .FIG. 2 is a block diagram of a time management unit shown in FIG.
Fig. 1 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Prozessors einschließlich seiner Peripherie. Das Blockdiagramm gibt die Architektur eines erweiterten Von-Neumann-Modells wieder. Die Architektur zeigt zunächst die Komponenten eines Von-Neumann-Modells. Hierzu gehört ein Hauptprozessor Ol, der auch als Central Processing Unit (CPU) bezeichnet wird, sowie ein Steuerwerk 02, welches auch als Control Unit (CU) bezeichnet wird, und ein Rechenwerk 03, welches auch als Arithmetical Logical Unit (ALU) bezeichnet wird. Weiterhin gehören zu dem Von-Neumann-Modell ein Speicherwerk 04, welches auch als Memory (MEM) bezeichnet wird, sowie ein Eingabe-/Ausgabewerk 06, das auch als Input/Output (I/O) bezeichnet wird. Ein Datenaustausch des Hauptprozessors 01 mit dem Speicherwerk 04 und dem Eingabe- /Ausgabewerk 06 erfolgt über ein Bussystem 07.Fig. 1 shows a block diagram of a preferred embodiment of the processor according to the invention, including its periphery. The block diagram reflects the architecture of an extended Von Neumann model. The architecture first shows the components of a Von Neumann model. This includes a main processor Ol, which is also referred to as a central processing unit (CPU), and a control unit 02, which is also referred to as a control unit (CU), and an arithmetic unit 03, which is also called the Arithmetical Logical Unit (ALU). Furthermore, the Von Neumann model includes a storage device 04, which is also referred to as memory (MEM), and an input / output device 06, which is also referred to as input / output (I / O). A data exchange of the main processor 01 with the memory unit 04 and the input / output unit 06 via a bus system 07th
Die erfindungsgemäße Erweiterung des Von-Neumann-Modells besteht darin, dass der Hauptprozessor 01 weiterhin eine Zeitverwaltungseinheit 08 umfasst, welche auch als Time Management Unit (TMU) bezeichnet wird. Die Zeitverwaltungseinheit 08 hat die Aufgabe, die Zeit kontinuierlich, d. h. im Rahmen eines Zählers, zu messen und per Programm bestimmte oder konfigurierte Zeitwerte in einem speziell dafür ausgelegten Speicher innerhalb der Zeitverwaltungseinheit 08 zu sichern. Weiterhin wird der Zeitverwaltungseinheit 08 die Aufgabe zuteil, bei Überschreitung von konfigurierten Zeitwerten Ereignisse im Hauptprozessor 01 auszulösen.The inventive extension of the von Neumann model consists in that the main processor 01 further comprises a time management unit 08, which is also referred to as a Time Management Unit (TMU). The time management unit 08 has the task of continuously time, d. H. in the context of a counter, to measure and to secure by program certain or configured time values in a specially designed memory within the time management unit 08. Furthermore, the time management unit 08 is assigned the task of triggering events in the main processor 01 when configured time values are exceeded.
Fig. 2 zeigt ein Blockdiagramm der in Fig. 1 gezeigten Zeitverwaltungseinheit 08. Die Zeitverwaltungseinheit 08 umfasst zunächst einen zentralen Zustandsautomaten 09, der auch als Central State Machine (CSM) bezeichnet wird. An den zentralen Zustandsautomaten 09 ist eine zentrale Zeiteinheit 11 angekoppelt. Die zentrale Zeiteinheit 11, die auch als Central Timer Unit (CTU) bezeichnet wird, umfasst vorzugsweise eine Realzeituhr und erlaubt eine kontinuierliche Zeitmessung. Die zentrale Zeiteinheit 11 gibt das Ergebnis der Zeitmessung permanent an den zentralen Zustandsautomaten 09 aus. Insofern die zentrale Zeiteinheit 11 eine Realzeituhr umfasst, übergibt sie ihr Ergebnis im Format einer Uhrzeit an den zentralen Zustandsautomaten 09. Die Zeitverwaltungseinheit 08 umfasst weiterhin einen Ereignisspeicher 12 zur Speicherung zuvor festgelegter Werte für die jeweils zulässige Zeitdauer eines im Rechenwerk 03 abzuarbeitenden Rechenbefehls. Der Ereignisspeicher 12 enthält eine Ereignisliste (Event List). Die Ereignisliste enthält relative Zeiten, die, falls das Element der Ereignisliste aktiv ist, dekrementiert wird. Bei Erreichen des Wertes Null wird eine Aktion ausgelöst.FIG. 2 shows a block diagram of the time management unit 08 shown in FIG. 1. The time administration unit 08 initially comprises a central state machine 09, which is also referred to as a central state machine (CSM). At the central state machine 09 a central time unit 11 is coupled. The central time unit 11, which is also referred to as the central timer unit (CTU), preferably comprises a real time clock and allows a continuous time measurement. The central time unit 11 permanently outputs the result of the time measurement to the central state machine 09. Insofar as the central time unit 11 comprises a real-time clock, it transfers its result in the format of a time to the central state machine 09. The time management unit 08 further includes an event memory 12 for storing previously defined values for the respective permissible time duration of a computing instruction to be processed in the arithmetic unit 03. The event memory 12 contains an event list. The event list contains relative times which, if the element of the event list is active, are decremented. When the value reaches zero, an action is triggered.
Die Zeitverwaltungseinheit 08 umfasst weiterhin einen Ereigniskontrollspeicher 13 zur Speicherung von Werten für die zur Abarbeitung eines Rechenbefehles im Rechenwerk 08 benötigte Zeitdauer. Der Ereigniskontrollspeicher 13 beinhaltet eine Speicherliste (Event Memory List), welche für ein manuelles oder automatisches Monitoring der Zeitwerte benutzt werden kann. Beim manuellen Monitoring wird durch einen Programmbefehl die Speicherung des aktuellen Zeitwertes der zentralen Zeiteinheit 11 im Ereigniskontrollspeicher 13 initiiert. Das automatische Monitoring kann so eingerichtet sein, dass jeweils bei Überschreitung eines gesetzten Zeitwertes ein Eintrag in die Speicherliste des Ereigniskontrollspeichers 13 erfolgt. Dieser Eintrag enthält die jeweils gültige absolute Zeit der zentralen Zeiteinheit 11. Die Speicherliste des Ereigniskontrollspeichers 13 kann durch den zentralen Zustandsautomaten 09 ausgelesen werden.The time management unit 08 further comprises an event control memory 13 for storing values for the time required to execute a calculation instruction in the arithmetic unit 08. The event control memory 13 contains a memory list (Event Memory List), which can be used for manual or automatic monitoring of the time values. During manual monitoring, the storage of the current time value of the central time unit 11 in the event control memory 13 is initiated by a program command. The automatic monitoring can be set up such that an entry into the memory list of the event control memory 13 takes place whenever a set time value is exceeded. This entry contains the respectively valid absolute time of the central time unit 11. The memory list of the event control memory 13 can be read out by the central state machine 09.
Die Zeitverwaltungseinheit 08 umfasst weiterhin eine Schnittstelle 14 zum Steuerwerk 02. Diese Schnittstelle 14 kann auch als Interface to CU (I/CU) bezeichnet werden. Mithilfe der Schnittstelle 14 können Hardwaresignale zur Signalisierung von Ereignissen an das Steuerwerk 02 übertragen werden. Beispielsweise führt die Überschreitung von konfigurierten Zeitwerten in der Ereignisliste zur Erzeugung eines Hardwaresignals, insofern dies konfiguriert ist. Diese Hardwaresignale generieren beim Hauptprozessor Ol einen Interrupt Request, der hier, weil es sich nicht um eine gewollte Unterbrechung bzw. ein äußeres Signal handelt, als Exception bezeichnet wird. Diese Exception signalisiert dem Prozessor, dass das zeitliche Gefüge des Programms verletzt wurde, und gibt dem Systemdesigner die Möglichkeit zu reagieren. Die Rücksetzung von Zeitwerten, beispielsweise in der Ereignisliste, zur Vermeidung der Auslösung einer Exception kann durch den Hauptprozessor Ol während eines Programms erfolgen. Hierbei entspricht die Funktionalität der Zeitverwaltungseinheit 08 in etwa dem Verhalten einer Watch-Dog-Schaltung, wobei diese eine allgemeine Rücksetzung bei einer Zeitüberschreitung auslöst. Hingegen überwacht die Zeitverwaltungseinheit 08 das Zeitgefüge sehr fein- gliedrig und die Behandlung der Exceptions kann ebenfalls sehr ausgewogene Reaktionen enthalten und steht in der Verantwortung der Softwareentwicklung. Die Steuerung der Zeitverwaltungseinheit 08 erfolgt ebenfalls durch das Steuerwerk 02, wofür das Steuerwerk 02 neue Programmbefehle unterstützen muss. Diese Programmbefehle dienen beispielsweise dem Ein- und Auslesen des Ereignisspeichers 12 und des Ereigniskontrollspeichers 13. Die für die Steuerung der Zeitverwaltungseinheit 08 erforderlichen Programmbefehle haben wenig oder keinen Bezug zum Rechenwerk 03, sodass das Rechenwerk 03 gegenüber einem herkömmlichen Rechenwerk gemäß dem Von-Neumann-Modell nicht erweitert werden muss.The time management unit 08 further comprises an interface 14 to the control unit 02. This interface 14 may also be referred to as Interface to CU (I / CU). With the aid of the interface 14, hardware signals for signaling events can be transmitted to the control unit 02. For example, exceeding this results in configured time values in the event list for generating a hardware signal, if so configured. These hardware signals generate an interrupt request to the main processor Ol, which is called an exception because it is not a wanted interruption or an external signal. This exception signals to the processor that the program's timing has been violated and allows the system designer to respond. The resetting of time values, for example in the event list, to avoid the triggering of an exception can be done by the main processor O1 during a program. Here, the functionality of the time management unit 08 corresponds approximately to the behavior of a watchdog circuit, which triggers a general reset on a timeout. On the other hand, the time management unit 08 monitors the time structure very finely and the handling of the exceptions can also contain very balanced reactions and is the responsibility of the software development. The control of the time management unit 08 is also carried out by the control unit 02, for which the control unit 02 must support new program commands. These program instructions are used, for example, to read in and read out the event memory 12 and the event control memory 13. The program instructions required for controlling the time management unit 08 have little or no relation to the arithmetic unit 03, so that the arithmetic unit 03 compared to a conventional arithmetic unit according to the Von Neumann model does not need to be extended.
Die Integration der neuen Programmbefehle kann beispielsweise dadurch erfolgen, dass diese eine entsprechende Ausführungszeit im Programm in Anspruch nehmen. Dies ist dann möglich, wenn sich noch Raum im Codierungsformat befindet, also noch nicht alle Varianten zur Codierung eines Befehls ausgeschöpft sind. Der Vorteil einer solchen Integration besteht in der universellen Anwendbarkeit. Die Integration der weiteren Programmbefehle kann auch dadurch erfolgen, dass sie in andere Befehle integriert werden. Dies ist möglich, wenn die bislang verwendeten Befehle auch noch Raum für zusätzliche Angaben aufweisen, d. h. ungenutzte Bits im Code. Eine solche Integration der neuen Programmbefehle weist den Vorteil auf, dass keine zusätzliche Laufzeit benötigt wird.The integration of the new program instructions can be done, for example, by using a corresponding execution time in the program. This is possible if there is still space in the coding format, so not all variants for coding a command have been exhausted are. The advantage of such integration is universal applicability. The integration of the further program instructions can also be done by being integrated into other commands. This is possible if the commands used so far also have room for additional information, ie unused bits in the code. Such an integration of the new program instructions has the advantage that no additional runtime is required.
Prinzipiell handelt es sich bei dem zentralen Zustandsautomaten 09 um einen endlichen Zustandsautomaten (Finit State Machine) . Der zentrale Zustandsautomat 09 wird aus Komplexitätsgründen nicht als einfacher endlicher Zustandsautomat, sondern in kooperierender Weise ausgeführt. Eine Möglichkeit der Implementierung besteht in einem kleinen Mikroprozessor mit einer Verarbeitungsbreite von beispielsweise 8 Bit, welcher die Eingaben seitens des Steuerwerks 02 und die Vergleiche zwischen den von der zentralen Zeiteinheit 11 ausgegebenen Zeitwerten und den Werten in der Ereignisliste 12 durchführt und entsprechende Aktionen einleitet. Die Verwendung eines Mikroprozessors für die Realisierung der Zeitverwaltungseinheit 08 weist den Vorteil auf, dass die Zeitverwaltungseinheit 08 sehr flexibel ist, da sie selbst programmierbar ist. Alternativ ist die Zeitverwaltungseinheit 08 in vorhandene Hardware zu implementieren, beispielsweise als integraler Bestandteil eines Mikroprozessors.In principle, the central state machine 09 is a finite state machine. For reasons of complexity, the central state machine 09 is not executed as a simple finite state machine, but in a cooperative manner. One possibility of implementation is a small microprocessor with a processing width of, for example, 8 bits, which makes the inputs from the controller 02 and the comparisons between the time values output by the central time unit 11 and the values in the event list 12 and initiates corresponding actions. The use of a microprocessor for implementing the time management unit 08 has the advantage that the time management unit 08 is very flexible, since it is itself programmable. Alternatively, the time management unit 08 is to be implemented in existing hardware, for example as an integral part of a microprocessor.
Die Architektur des erfindungsgemäßen erweiterten Von-Neumann- Modells kann beispielsweise als Grundlage dazu dienen, ein adaptives System zu realisieren. Beispielsweise können so Reaktionszeiten für Interrupt Requests überwacht werden. Eine solche Reaktionszeit, d. h. die Differenz zwischen Auftritt eines Interrupt Requests und der finalen Reaktion, kann bei Realzeitsystemen eine signifikante Größe sein, wobei die Überschreitung einer vorgegebenen Grenze nicht zulässig ist. Die Messung einer solchen Reaktionszeit zeigt in dem jeweiligen Fall die Realzeitfähigkeit des Systems. Beispielsweise können auch Durchlaufzeiten in Systemen mit einem zyklischen Design bestimmt werden. In zeitgesteuerten Systemen sind Durchlaufzeiten eines Zyklus häufig die Größe, welche die Realzeitfähigkeit des Systems bestimmt. Es können aber auch Einzellaufzeiten in Systemen in einem nichtzyklischen Design bestimmt werden, welche zur Bewertung der Realzeitfähigkeit herangezogen werden können.For example, the architecture of the extended von Neumann model of the invention may serve as a basis for implementing an adaptive system. For example, response times for interrupt requests can be monitored. Such a reaction time, ie the difference between the occurrence of an interrupt request and the final reaction, can occur at Real time systems are a significant size, the exceeding of a given limit is not allowed. The measurement of such a reaction time shows in each case the real-time capability of the system. For example, cycle times in systems with a cyclic design can also be determined. In timed systems, cycle times are often the size that determines the real-time capability of the system. However, single run times can also be determined in systems in a non-cyclic design, which can be used to evaluate real-time capability.
Die genannten Zeitmessungen haben nur einen sehr geringen möglichen Einfluss auf die eigentliche Berechnung in der Zeitverwaltungseinheit 08. Im Gegensatz zu einem Zeitmonitoring auf Softwareebene, d. h. beispielsweise auf Betriebssystemebene, welches etwa im Millisekundenbereich einsetzt, kann die prozessorbasierte Zeitverwaltungseinheit 08 auch im Mikrose- kundenbereich und darunter genutzt werden. Diese Eigenschaft erlaubt die Verwendung des erfindungsgemäßen Hauptprozessors 01 beispielsweise im Bereich der eingebetteten Systeme, wo sehr kurze Reaktionszeiten erforderlich sind. The time measurements referred to have only a very small possible influence on the actual calculation in the time management unit 08. In contrast to time monitoring at the software level, ie, for example, at the operating system level, which uses approximately in the millisecond range, the processor-based time management unit 08 can also be in the microsecond range and below be used. This feature allows the use of the main processor 01 according to the invention, for example in the field of embedded systems, where very short reaction times are required.
BezugszeichenlisteLIST OF REFERENCE NUMBERS
01 - Hauptprozessor01 - main processor
02 - Steuerwerk02 - Control unit
03 - Rechenwerk03 - Calculator
04 - Speicherwerk04 - storage plant
05 -05 -
06 - Eingabe-/Ausgabewerk06 - Input / output unit
07 - Bussystem07 - Bus system
08 - Zeitverwaltungseinheit08 - time management unit
09 - zentraler Zustandsautomat09 - central state machine
10 -10 -
11 - zentrale Zeiteinheit11 - central time unit
12 - Ereignisspeicher12 - event memory
13 - Ereigniskontrollspeicher13 - Event Control Memory
14 - Schnittstelle zum Steuerwerk 14 - Interface to the control unit

Claims

Patentansprüche claims
1. Prozessor (Ol) für eine Rechenmaschine, mit:1. Processor (Ol) for a calculator, comprising:
- einem steuerbaren Prozessortaktgeber zur Bereitstellung eines Prozessortaktes;a controllable processor clock for providing a processor clock;
- einem Steuerwerk (02) zur Bereitstellung einer Abfolge von Rechenbefehlen;- a control unit (02) for providing a sequence of computational instructions;
- einem Rechenwerk (03) zur Abarbeitung der Rechenbefehle;- an arithmetic unit (03) for processing the arithmetic instructions;
- einer Zeitverwaltungseinheit (08), umfassend einen Zeittaktgeber (11) zur Bereitstellung eines Zeittaktes und einen Vergleicher (09) zum Vergleich eines vorbestimmten Wertes für eine zulässige Zeitdauer zur Abarbeitung eines im Rechenwerk (03) abzuarbeitenden Rechenbefehles mit der durch den Zeittakt definierten seit Beginn der Abarbeitung des Rechenbefehles verstrichenen Zeitdauer; dadurch gekennzeichnet, dass zwischen der Zeitverwaltungseinheit (08) und dem steuerbaren Prozessortaktgeber eine Koppelung zur Anpassung des Prozessortaktes an die vom Rechenwerk (03) zur Abarbeitung des jeweiligen Rechenbefehles benötigte Zeitdauer vorhanden ist.- A time management unit (08), comprising a timing clock (11) for providing a timing and a comparator (09) for comparing a predetermined value for a permissible period of time for processing an arithmetic unit (03) to be processed arithmetic command with the time clock defined by the beginning the processing of the arithmetic command elapsed time; characterized in that between the time management unit (08) and the controllable processor clock a coupling for adapting the processor clock to the time required by the arithmetic unit (03) for processing the respective Rechenbefehles is present.
2. Prozessor (01) für eine Rechenmaschine, mit:2. Processor (01) for a calculating machine, with:
- einem Steuerwerk (02) zur Bereitstellung einer Abfolge von Rechenbefehlen;- a control unit (02) for providing a sequence of computational instructions;
- einem Rechenwerk (03) zur Abarbeitung der Rechenbefehle;- an arithmetic unit (03) for processing the arithmetic instructions;
- einer Zeitverwaltungseinheit (08), umfassend einen Zeittaktgeber (11) zur Bereitstellung eines Zeittaktes und einen Vergleicher (09) zum Vergleich eines vorbestimmten Wertes für eine zulässige Zeitdauer zur Abarbeitung eines im Rechenwerk (03) abzuarbeitenden Rechenbefehles mit der durch den Zeittakt definierten seit Beginn der Abarbeitung des Rechenbefehles verstrichenen Zeitdauer; dadurch gekennzeichnet, dass die Zeitverwaltungseinheit (08) weiterhin einen Ereigniskontrollspeicher (13) zur Speicherung der tatsächlich zur Abarbeitung eines Rechenbefehles im Rechenwerk (03) benötigten Zeitdauer umfasst.- A time management unit (08), comprising a timing clock (11) for providing a timing and a comparator (09) for comparing a predetermined value for a permissible period of time for processing an arithmetic unit (03) to be processed arithmetic command with the time clock defined by the beginning the processing of the arithmetic command elapsed time; characterized in that the time management unit (08) further comprises an event control memory (13) for storing the time actually required for processing a calculation command in the arithmetic unit (03).
3. Prozessor (01) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Zeittaktgeber als eine Realzeituhr (11) ausgeführt ist.3. Processor (01) according to claim 1 or 2, characterized in that the clock is designed as a real-time clock (11).
4. Prozessor (01) nach Anspruch 1 oder nach dem auf den Anspruch 1 rückbezogenen Anspruch 3, dadurch gekennzeich- net, dass die Zeitverwaltungseinheit (08) weiterhin einen Ereigniskontrollspeicher (13) zur Speicherung der tatsächlich zur Abarbeitung eines Rechenbefehles im Rechenwerk (03) benötigten Zeitdauer umfasst.4. Processor (01) according to claim 1 or according to claim 1, characterized in that the time management unit (08) further comprises an event control memory (13) for storing the actual processing of a calculation instruction in the arithmetic unit (03). time required.
5. Prozessor (01) nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Zeitverwaltungseinheit (08) weiterhin einen Ereignisspeicher (12) zur Speicherung von vorbestimmten Werten für die jeweils zulässige Zeitdauer zur Abarbeitung der Rechenbefehle im Rechenwerk (03) aufweist .5. Processor (01) according to one of claims 1 to 4, characterized in that the time management unit (08) further comprises an event memory (12) for storing predetermined values for the respective permissible time duration for processing the arithmetic instructions in the arithmetic unit (03).
6. Prozessor (01) nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Zeitverwaltungseinheit (08) weiterhin eine Schnittstelle (14) zur Ausgabe von Hardwaresignalen an das Steuerwerk (02) aufweist.6. Processor (01) according to any one of claims 1 to 5, characterized in that the time management unit (08) further comprises an interface (14) for outputting hardware signals to the control unit (02).
7. Prozessor (01) nach einem auf den Anspruch 1 rückbezogenen vorhergehenden Anspruch, dadurch gekennzeichnet, dass der steuerbare Prozessortaktgeber einen spannungsgesteuerten Oszillator umfasst. 7. Processor (01) according to claim 1, characterized in that the controllable processor clock comprises a voltage controlled oscillator.
8. Prozessor (Ol) nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass der Prozessor (Ol) eine erweiterte Von-Neumann-Architektur aufweist, wobei die Erweiterung durch die Zeitverwaltungseinheit (08) gegeben ist.8. Processor (Ol) according to one of claims 1 to 7, characterized in that the processor (Ol) has an extended Von Neumann architecture, wherein the extension is given by the time management unit (08).
9. Prozessor nach Anspruch 8, dadurch gekennzeichnet, dass dieser als Mikroprozessor (01) ausgeführt ist und die Zeitverwaltungseinheit (08) als integraler Bestandteil des Mikroprozessors (01) ausgeführt ist.9. A processor according to claim 8, characterized in that it is designed as a microprocessor (01) and the time management unit (08) is designed as an integral part of the microprocessor (01).
10. Programmgesteuerte Einheit mit zumindest mehreren Rechenwerken, mindestens einem Steuerwerk zur Bereitstellung einer Abfolge von Rechenbefehlen sowie zur Verteilung der Rechenbefehle auf die Rechenwerke und mindestens einem Zeittaktgeber zur Bereitstellung eines Zeittaktes; wobei jedem Rechenwerk ein Vergleicher zum Vergleich eines vorbestimmten Wertes einer zulässigen Zeitdauer zur Abarbeitung eines abzuarbeitenden Rechenbefehles mit der durch den Zeittakt definierten seit Beginn der Abarbeitung des Rechenbefehles verstrichenen Zeitdauer zugeordnet ist; und wobei die Vergleicher mit dem Steuerwerk gekoppelt sind, um die Verteilung der Rechenbefehle auf die Rechenwerke an die von den Rechenwerken zur Abarbeitung des jeweiligen Rechenbefehles benötigte Zeitdauer anzupassen.10. program-controlled unit having at least a plurality of arithmetic units, at least one control unit for providing a sequence of arithmetic instructions and for distributing the arithmetic instructions to the arithmetic units and at least one time clock for providing a time clock; wherein each arithmetic unit is associated with a comparator for comparing a predetermined value of a permissible time duration for processing a computational command to be processed with the time period defined by the time clock since the start of processing of the arithmetic command; and wherein the comparators are coupled to the control unit in order to adapt the distribution of the arithmetic commands to the arithmetic units to the time required by the arithmetic units for processing the respective arithmetic command.
11. Programmgesteuerte Einheit nach Anspruch 10, dadurch gekennzeichnet, dass die Rechenwerke als einzelne Prozessoren ausgebildet sind, sodass die programmgesteuerte Einheit als ein Mehrprozessorsystem ausgebildet ist.11. Program-controlled unit according to claim 10, characterized in that the arithmetic units are designed as individual processors, so that the program-controlled unit is designed as a multiprocessor system.
12. Programmgesteuerte Einheit nach Anspruch 11, dadurch gekennzeichnet, dass sie weiterhin mindestens einen steuerbaren Prozessortaktgeber zur Bereitstellung eines Prozes- sortaktes aufweist, wobei der Prozessortaktgeber mit mindestens einem der Vergleicher gekoppelt ist.The program-controlled unit according to claim 11, characterized in that it further comprises at least one controllable processor clock for providing a process has clock act, wherein the processor clock is coupled to at least one of the comparators.
13. Verfahren zur Regelung eines Taktes eines Prozessors, die folgenden Schritte umfassend:13. A method of controlling a clock of a processor, comprising the steps of:
- Bereitstellung einer Abfolge von Rechenbefehlen;- providing a sequence of computational instructions;
- Abarbeitung der Rechenbefehle im Prozessor;- Processing the arithmetic instructions in the processor;
- Bereitstellung eines Zeittaktes;- providing a time clock;
- wiederholter Vergleich eines vorbestimmten Wertes einer zulässigen Zeitdauer zur Abarbeitung eines abzuarbeitenden Rechenbefehles mit der durch den Zeittakt definierten seit Beginn der Abarbeitung des Rechenbefehles verstrichenen Zeitdauer; und- Repeated comparison of a predetermined value of a permissible period of time for processing a computational command to be processed with the time period defined by the time clock since the start of the processing of the arithmetic command; and
- Steuerung des Taktes des Prozessors zur Anpassung des Prozessortaktes an die vom Rechenwerk zur Abarbeitung des jeweiligen Rechenbefehles benötigte Zeitdauer, in Abhängigkeit vom Ergebnis des Vergleiches.- Controlling the clock of the processor to adapt the processor clock to the time required by the arithmetic unit for processing the respective arithmetic command, depending on the result of the comparison.
14. Verfahren zum Monitoring von Zeiten zur Abarbeitung von Rechenbefehlen in einem Prozessor, die folgenden Schritte umfassend:14. A method for monitoring times for processing computational instructions in a processor, comprising the steps of:
- Bereitstellung einer Abfolge von Rechenbefehlen;- providing a sequence of computational instructions;
- Abarbeitung der Rechenbefehle im Prozessor;- Processing the arithmetic instructions in the processor;
- Bereitstellung eines Zeittaktes; und- providing a time clock; and
- Speicherung des Wertes einer durch den Zeittakt definierten insgesamt zur Abarbeitung des abzuarbeitenden Rechenbefehles benötigten Zeitdauer, wenn ein aufgerufener Programmbefehl dazu auffordert oder wenn die durch den Zeittakt definierte insgesamt zur Abarbeitung des abzuarbeitenden Rechenbefehles benötigte Zeitdauer größer als eine zulässige Zeitdauer zur Abarbeitung des abzuarbeitenden Rechenbefehles ist. - Storage of the value of a time defined by the clock total for processing the arithmetic command to be processed time required when an invoked program command prompts or if the time defined by the clock is a total time required for processing the arithmetic command to be processed is greater than an allowable time for processing the computational command to be processed ,
15. Verfahren nach Anspruch 13 oder 14, dadurch gekennzeichnet, dass der Zeittakt als Realzeit bereitgestellt wird.15. The method according to claim 13 or 14, characterized in that the timing is provided as real time.
16. Verfahren nach einem der Ansprüche 13 bis 15, dadurch gekennzeichnet, dass der wiederholte Vergleich dadurch erfolgt, dass vor der Abarbeitung eines Rechenbefehles eine Variable mit dem Wert der zulässigen Zeitdauer zur Abarbeitung dieses Rechenbefehles gleichgesetzt wird und die Variable während der Abarbeitung dieses Rechenbefehles mit dem Zeittakt dekrementiert wird, wobei die Variable während eines jeden Zeittaktes mit Null verglichen wird.16. The method according to any one of claims 13 to 15, characterized in that the repeated comparison takes place in that before processing a computational command, a variable is equated with the value of the permissible time duration for processing this arithmetic command and the variable during the execution of this arithmetic command is decremented, the variable being compared to zero during each time clock.
17. Verfahren nach einem auf den Anspruch 13 rückbezogenen vorhergehenden Anspruch, dadurch gekennzeichnet, dass weiterhin der Wert einer durch den Zeittakt definierten insgesamt zur Abarbeitung des abzuarbeitenden Rechenbefehles benötigten Zeitdauer gespeichert wird, wenn:17. The method according to claim 1, further comprising the value of a time duration, as defined by the time clock, required for processing the arithmetic command to be processed, when:
- ein aufgerufener Programmbefehl dazu auffordert; oder- invites a called program command to do so; or
- die durch den Zeittakt definierte insgesamt zur Abarbeitung des abzuarbeitenden Rechenbefehles benötigte Zeitdauer größer als die zulässige Zeitdauer zur Abarbeitung des abzuarbeitenden Rechenbefehles ist.- The time defined by the timing defined total for processing the arithmetic command to be processed time is greater than the permissible time for processing the computational command to be processed.
18. Verfahren nach einem der Ansprüche 13 bis 17, dadurch gekennzeichnet, dass ein hardwarebasiertes Interrupt-Signal ausgelöst wird, wenn der Wert der durch den Zeittakt definierten, seit Beginn der Abarbeitung des Rechenbefehles verstrichenen Zeitdauer einen vorbestimmten Wert überschreitet .18. The method according to any one of claims 13 to 17, characterized in that a hardware-based interrupt signal is triggered when the value of the defined by the timing, elapsed since the beginning of the processing of the arithmetic command time exceeds a predetermined value.
19. Verfahren nach einem der Ansprüche 13 bis 18, dadurch gekennzeichnet, dass jeweils der vorbestimmte Wert der zulässigen Zeitdauer zur Abarbeitung eines der Rechenbefehle gemeinsam mit einem Moduswert in einem festgelegten Speicherbereich gespeichert wird, wobei durch den Moduswert definiert ist, bei welchem Signal aus einer Gruppe vorbestimmter Signale die Bestimmung der durch den Zeittakt definierten zur Abarbeitung des Rechenbefehles benötigten Zeitdauer beginnt.19. The method according to any one of claims 13 to 18, characterized in that in each case the predetermined value of the permissible time duration for processing one of the arithmetic instructions together with a mode value in a fixed Memory area is stored, which is defined by the mode value, in which signal from a group of predetermined signals, the determination of the time interval defined by the timing required to process the arithmetic command begins.
20. Verfahren nach Anspruch 19, dadurch gekennzeichnet, dass weiterhin zu jedem der vorbestimmten Werte der jeweils zulässigen Zeitdauer zur Abarbeitung eines der Rechenbefehle ein Kontrollmoduswert in dem festgelegten Speicherbereich gespeichert wird, wobei durch den Kontrollmoduswert definiert ist, ob die insgesamt zur Abarbeitung des Rechenbefehles benötigte Zeitdauer gespeichert wird und ob ein hardwarebasiertes Interrupt-Signal ausgelöst wird, wenn die zulässige Zeitdauer zur Abarbeitung des Rechenbefehles überschritten wurde.20. The method according to claim 19, further comprising storing a control mode value in the specified memory area for each of the predetermined time durations for processing one of the arithmetic instructions, wherein the control mode value defines whether the total number of arithmetic instructions required to execute the arithmetic instruction is Time duration is stored and whether a hardware-based interrupt signal is triggered when the permissible time for processing the computational command has been exceeded.
21. Verfahren zur Verteilung von Rechenbefehlen auf Rechenwerke einer programmgesteuerten Einheit, die folgenden Schritte umfassend:21. A method for distributing computational instructions to arithmetic logic units of a program-controlled unit, comprising the following steps:
- Bereitstellung einer Abfolge von Rechenbefehlen;- providing a sequence of computational instructions;
- Abarbeitung der Rechenbefehle in den Rechenwerken;- processing the arithmetic commands in the arithmetic units;
- Bereitstellung eines Zeittaktes;- providing a time clock;
- wiederholter Vergleich eines vorbestimmten Wertes einer zulässigen Zeitdauer zur Abarbeitung eines Rechenbefehles mit dem Wert einer durch den Zeittakt definierten seit Beginn der Abarbeitung dieses Rechenbefehles verstrichenen Zeitdauer; und- Repeated comparison of a predetermined value of a permissible period of time for processing a computational command with the value of an elapsed time defined by the time clock since the start of processing this arithmetic command; and
- Aufteilung der abzuarbeitenden Rechenbefehle auf die Prozessoren, um die Verteilung der Rechenbefehle auf die Prozessoren in Abhängigkeit vom Ergebnis des Vergleiches an die von den Rechenwerken zur Abarbeitung des jeweiligen Rechenbefehles benötigte Zeitdauer anzupassen. - Division of the processing commands to be processed on the processors to adapt the distribution of the arithmetic commands to the processors depending on the result of the comparison to the time required by the arithmetic units for processing the respective arithmetic command.
22. Verfahren nach Anspruch 21, dadurch gekennzeichnet, dass es für die Verteilung von Rechenbefehlen auf Prozessoren eines Mehrprozessorsystems angewendet wird.22. The method according to claim 21, characterized in that it is used for the distribution of arithmetic instructions on processors of a multiprocessor system.
23. Verfahren nach Anspruch 22, dadurch gekennzeichnet, dass es weiterhin sämtliche Schritte eines Verfahrens nach einem der Ansprüche 11 bis 17 umfasst.23. The method according to claim 22, characterized in that it further comprises all the steps of a method according to any one of claims 11 to 17.
24. Datenverarbeitungsprogramm zur Abarbeitung auf einem Prozessor gemäß einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass es mindestens einen in einer Hochsprache codierten Programmbefehl enthält, in welchem mehrere Maschinenbefehle zur Verwaltung der Zeitverwaltungseinheit zusammengefasst sind. 24. Data processing program for processing on a processor according to one of claims 1 to 9, characterized in that it contains at least one encoded in a high-level language program command in which a plurality of machine commands for managing the time management unit are combined.
EP08760556A 2007-06-07 2008-06-05 Processor, and method for controlling the same Withdrawn EP2160670A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE200710026982 DE102007026982B4 (en) 2007-06-07 2007-06-07 Processor, program controlled unit and method for controlling a processor clock
PCT/EP2008/056978 WO2008148838A1 (en) 2007-06-07 2008-06-05 Processor, and method for controlling the same

Publications (1)

Publication Number Publication Date
EP2160670A1 true EP2160670A1 (en) 2010-03-10

Family

ID=39645469

Family Applications (1)

Application Number Title Priority Date Filing Date
EP08760556A Withdrawn EP2160670A1 (en) 2007-06-07 2008-06-05 Processor, and method for controlling the same

Country Status (3)

Country Link
EP (1) EP2160670A1 (en)
DE (1) DE102007026982B4 (en)
WO (1) WO2008148838A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104678820B (en) * 2013-11-29 2017-08-04 北汽福田汽车股份有限公司 Embedded back-fore ground system and its control method
EP3537293A1 (en) 2018-03-09 2019-09-11 Till I.D. GmbH Time-deterministic microprocessor and microcontroller

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU928360A1 (en) * 1979-11-28 1982-05-15 Предприятие П/Я В-2655 Device for monitoring time of execution of programmes
JP2520544B2 (en) * 1991-09-26 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション Method for monitoring task overrun status and apparatus for detecting overrun of task execution cycle
DE10034459A1 (en) 2000-07-15 2002-01-24 Bosch Gmbh Robert Method and device for measuring the runtime of a task in a real-time system
JP2002358139A (en) * 2001-06-01 2002-12-13 Ricoh Co Ltd Low power consumption processor
JP4139579B2 (en) * 2001-06-19 2008-08-27 株式会社ルネサステクノロジ Semiconductor device and operation mode control method of semiconductor device
GB2410344B (en) * 2004-01-26 2006-03-15 Toshiba Res Europ Ltd Dynamic voltage controller
JP2006127302A (en) * 2004-10-29 2006-05-18 Internatl Business Mach Corp <Ibm> Information processor, compiler and compiler program
US20060288194A1 (en) 2005-06-17 2006-12-21 Lewis Innovative Technologies Real-time processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2008148838A1 *

Also Published As

Publication number Publication date
DE102007026982B4 (en) 2009-04-02
DE102007026982A1 (en) 2008-12-11
WO2008148838A1 (en) 2008-12-11

Similar Documents

Publication Publication Date Title
DE68925615T2 (en) Digital computer system with low power consumption mode
DE4227345C2 (en) Process control process in a multiprocessor computer system
DE69933515T2 (en) peripheral processor
DE69121382T2 (en) Emulator for emulating a connectionless microcontroller and microcontroller for use in such an emulator
EP1402382B1 (en) Data processing method
DE10297596B4 (en) A method and apparatus for suspending execution of a thread until a specified memory access occurs
DE68924810T2 (en) Timer channel for use in a multi-channel time system.
DE3335145C2 (en)
DE112004001133T5 (en) Queue locks with monitor memory wait
DE68920929T2 (en) Timer channel with multiple timer reference features.
DE68915074T2 (en) Integrated timer circuit with several channels and assigned operating processor.
DE2953861C2 (en)
DE68922545T2 (en) Assigned service processor with transmission options between channels.
DE102013214756A1 (en) METHOD AND DEVICE FOR IMPROVING THE PROCESSING CAPACITY OF A MULTI-CORE PROCESSOR
DE68919018T2 (en) Timer channel with match recognition features.
DE3650165T2 (en) Bus state control circuit.
EP2504738A1 (en) Parallelized program control
DE3687893T2 (en) CONTROL SYSTEM FOR PROGRAM JUMP OPERATION.
DE69219848T2 (en) Method for handling data transfers in a computer system with a two-bus system
DE102014103139B4 (en) Parallelized execution of single-core control software on multi-core vehicle control units
DE102007051803A1 (en) Method and device for data processing
WO2011063869A1 (en) Method for enabling sequential, non-blocking processing of statements in concurrent tasks in a control device
EP2386949B1 (en) Method and device for allocating a number of sub-tasks from a task to a number of computing units in a pre-defined processor architecture
DE102007026982B4 (en) Processor, program controlled unit and method for controlling a processor clock
DE102019112301A1 (en) Instruction cache in a multithreaded processor

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20091228

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA MK RS

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20130103