WO2008148838A1 - Prozessor und verfahren zu seiner ansteuerung - Google Patents
Prozessor und verfahren zu seiner ansteuerung Download PDFInfo
- Publication number
- WO2008148838A1 WO2008148838A1 PCT/EP2008/056978 EP2008056978W WO2008148838A1 WO 2008148838 A1 WO2008148838 A1 WO 2008148838A1 EP 2008056978 W EP2008056978 W EP 2008056978W WO 2008148838 A1 WO2008148838 A1 WO 2008148838A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- time
- arithmetic
- processing
- processor
- clock
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3419—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring 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
Die Erfindung betrifft einen Prozessor (01) für eine Rechenmaschine, dessen Arbeitstakt regelbar ist. Der erfindungsgemäße Prozessor (01) weist ein Steuerwerk (02), ein Rechenwerk (03) zur Abarbeitung der Rechenbefehle und einen steuerbaren Prozessortaktgeber zur Bereitstellung eines Prozessortaktes auf. Der Prozessor (01) umfasst weiterhin eine Zeitverwaltungseinheit (08), welche einen Zeittaktgeber (11) zur Bereitstellung eines Zeittaktes aufweist. Die Zeitverwaltungseinheit (08) umfasst weiterhin einen Vergleicher zum Vergleich eines zuvor festgelegten Wertes für eine zulässige Zeitdauer zur Abarbeitung eines im Rechenwerk (03) abzuarbeitenden Rechenbefehles mit einem Wert für eine durch den Zeittakt definierte seit Beginn der Abarbeitung des im Rechenwerk (03) abzuarbeitenden Rechenbefehles verstrichene Zeitdauer. Schließlich umfasst der erfindungsgemäße Prozessor (01) eine Koppelung der Zeitverwaltungseinheit (08) mit dem steuerbaren Prozessortaktgeber. Durch die Kopplung kann ein Regelkreis gebildet werden, in welchem der Prozessortakt die geregelte Größe darstellt. Weiterhin betrifft die Erfindung ein Verfahren zur Regelung eines Prozessortaktes und ein Programm zur Abarbeitung auf dem Prozessor sowie ein Mehrprozessorsystem und ein Verfahren zur Verteilung von Rechenbefehlen auf Prozessoren des Mehrprozessorsystems.
Description
Prozessor und Verfahren zu seiner Ansteuerung
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.
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.
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.
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.
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.
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.
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.
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 -
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Bei einer bevorzugten Ausführungsform der erfindungsgemäßen Verfahrenen wird der Zeittakt als Realzeit bereitgestellt, wodurch erweiterte Vergleichsmöglichkeiten gegeben sind.
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.
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.
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.
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.
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.
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.
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.
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.
Beispielsweise wird durch den Programmbefehl
„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 #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 .
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 .
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 .
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.
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.
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.
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.
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.
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.
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.
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.
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:
#ifdef TMU_integrated foreveryloop ( timeValue ) ;
#endif
Eine Einbindung als wesentlicher Kommentar kann wie folgt vorgenommen werden:
/*@@ foreveryloop ( timeValue ) ; */
Beispielsweise kann eine Basisfunktion:
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.
Eine weitere mögliche Basisfunktion ist:
int 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:
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.
Weiterhin kann eine Basisfunktion:
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.
Neben den beispielhaft genannten Basisfunktionen sind weitere Hochsprachenkonstrukte definierbar, deren Übersetzung in mehrere, nicht konsekutive Anweisungen erfolgen muss. Beispielsweise ist das Hochsprachenelement:
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:
int element_number ; for ( <init>; <condition>; <update> )
{ for_every_loop ( &element_number, time_value ) ;
<list_of_statements> }
Dieses gegenüber dem Standard-C neue Hochsprachenelement wird wie folgt in in der Norm definierte Hochsprachenanweisungen übersetzt :
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 ) ;
Ein weiteres beispielhaftes Hochsprachenelement ist:
max_react_time ( timeValue )
Hierdurch wird die maximal zulässige Reaktionszeit definiert
Weitere Vorteile, Einzelheiten und Weiterbildungen der vorliegenden Erfindung ergeben sich aus der nachfolgenden Beschreibung bevorzugter Ausführungsformen, unter Bezugnahme auf die Zeichnung. Es zeigen:
Fig. 1: ein Blockdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Prozessors; und
Fig. 2: ein Blockdiagramm einer in Fig. 1 gezeigten Zeitverwaltungseinheit .
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.
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.
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.
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.
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.
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.
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.
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.
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.
Bezugszeichenliste
01 - Hauptprozessor
02 - Steuerwerk
03 - Rechenwerk
04 - Speicherwerk
05 -
06 - Eingabe-/Ausgabewerk
07 - Bussystem
08 - Zeitverwaltungseinheit
09 - zentraler Zustandsautomat
10 -
11 - zentrale Zeiteinheit
12 - Ereignisspeicher
13 - Ereigniskontrollspeicher
14 - Schnittstelle zum Steuerwerk
Claims
1. Prozessor (Ol) für eine Rechenmaschine, mit:
- einem steuerbaren Prozessortaktgeber zur Bereitstellung eines Prozessortaktes;
- einem Steuerwerk (02) zur Bereitstellung einer Abfolge von Rechenbefehlen;
- einem Rechenwerk (03) zur Abarbeitung der Rechenbefehle;
- 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.
2. Prozessor (01) für eine Rechenmaschine, mit:
- einem Steuerwerk (02) zur Bereitstellung einer Abfolge von Rechenbefehlen;
- einem Rechenwerk (03) zur Abarbeitung der Rechenbefehle;
- 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.
3. Prozessor (01) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Zeittaktgeber als eine Realzeituhr (11) ausgeführt ist.
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.
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 .
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.
7. Prozessor (01) nach einem auf den Anspruch 1 rückbezogenen vorhergehenden Anspruch, dadurch gekennzeichnet, dass der steuerbare Prozessortaktgeber einen spannungsgesteuerten Oszillator umfasst.
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.
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.
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.
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.
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.
13. Verfahren zur Regelung eines Taktes eines Prozessors, die folgenden Schritte umfassend:
- Bereitstellung einer Abfolge von Rechenbefehlen;
- Abarbeitung der Rechenbefehle im Prozessor;
- Bereitstellung eines Zeittaktes;
- 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
- 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.
14. Verfahren zum Monitoring von Zeiten zur Abarbeitung von Rechenbefehlen in einem Prozessor, die folgenden Schritte umfassend:
- Bereitstellung einer Abfolge von Rechenbefehlen;
- Abarbeitung der Rechenbefehle im Prozessor;
- Bereitstellung eines Zeittaktes; und
- 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.
15. Verfahren nach Anspruch 13 oder 14, dadurch gekennzeichnet, dass der Zeittakt als Realzeit bereitgestellt wird.
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.
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:
- ein aufgerufener Programmbefehl dazu auffordert; oder
- 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.
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 .
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.
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.
21. Verfahren zur Verteilung von Rechenbefehlen auf Rechenwerke einer programmgesteuerten Einheit, die folgenden Schritte umfassend:
- Bereitstellung einer Abfolge von Rechenbefehlen;
- Abarbeitung der Rechenbefehle in den Rechenwerken;
- Bereitstellung eines Zeittaktes;
- 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
- 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.
22. Verfahren nach Anspruch 21, dadurch gekennzeichnet, dass es für die Verteilung von Rechenbefehlen auf Prozessoren eines Mehrprozessorsystems angewendet wird.
23. Verfahren nach Anspruch 22, dadurch gekennzeichnet, dass es weiterhin sämtliche Schritte eines Verfahrens nach einem der Ansprüche 11 bis 17 umfasst.
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.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08760556A EP2160670A1 (de) | 2007-06-07 | 2008-06-05 | Prozessor und verfahren zu seiner ansteuerung |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200710026982 DE102007026982B4 (de) | 2007-06-07 | 2007-06-07 | Prozessor, programmgesteuerte Einheit und Verfahren zur Regelung eines Prozessortaktes |
DE102007026982.1 | 2007-06-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2008148838A1 true WO2008148838A1 (de) | 2008-12-11 |
Family
ID=39645469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2008/056978 WO2008148838A1 (de) | 2007-06-07 | 2008-06-05 | Prozessor und verfahren zu seiner ansteuerung |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2160670A1 (de) |
DE (1) | DE102007026982B4 (de) |
WO (1) | WO2008148838A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3537293A1 (de) | 2018-03-09 | 2019-09-11 | Till I.D. GmbH | Zeitlich deterministischer mikroprozessor und mikrocontroller |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104678820B (zh) * | 2013-11-29 | 2017-08-04 | 北汽福田汽车股份有限公司 | 嵌入式前后台系统及其的控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU928360A1 (ru) * | 1979-11-28 | 1982-05-15 | Предприятие П/Я В-2655 | Устройство дл контрол времени выполнени программ |
JP2002358139A (ja) * | 2001-06-01 | 2002-12-13 | Ricoh Co Ltd | 低消費電力プロセッサ |
US20020194513A1 (en) * | 2001-06-19 | 2002-12-19 | Hitachi, Ltd. | Semiconductor device and an operation control method of the semiconductor device |
EP1557743A2 (de) * | 2004-01-26 | 2005-07-27 | Kabushiki Kaisha Toshiba | Dynamische Spannungssteuerung |
US20060095902A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | Information processing device and compiler |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2520544B2 (ja) * | 1991-09-26 | 1996-07-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | タスクのオ―バ―ラン状態を監視する方法及びタスク実行サイクルのオ―バ―ランを検出する装置 |
DE10034459A1 (de) * | 2000-07-15 | 2002-01-24 | Bosch Gmbh Robert | Verfahren und Vorrichtung zur Messung der Laufzeit einer Task in einem Echtzeitsystem |
US20060288194A1 (en) * | 2005-06-17 | 2006-12-21 | Lewis Innovative Technologies | Real-time processor |
-
2007
- 2007-06-07 DE DE200710026982 patent/DE102007026982B4/de not_active Expired - Fee Related
-
2008
- 2008-06-05 EP EP08760556A patent/EP2160670A1/de not_active Withdrawn
- 2008-06-05 WO PCT/EP2008/056978 patent/WO2008148838A1/de active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU928360A1 (ru) * | 1979-11-28 | 1982-05-15 | Предприятие П/Я В-2655 | Устройство дл контрол времени выполнени программ |
JP2002358139A (ja) * | 2001-06-01 | 2002-12-13 | Ricoh Co Ltd | 低消費電力プロセッサ |
US20020194513A1 (en) * | 2001-06-19 | 2002-12-19 | Hitachi, Ltd. | Semiconductor device and an operation control method of the semiconductor device |
EP1557743A2 (de) * | 2004-01-26 | 2005-07-27 | Kabushiki Kaisha Toshiba | Dynamische Spannungssteuerung |
US20060095902A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | Information processing device and compiler |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3537293A1 (de) | 2018-03-09 | 2019-09-11 | Till I.D. GmbH | Zeitlich deterministischer mikroprozessor und mikrocontroller |
WO2019170851A1 (de) | 2018-03-09 | 2019-09-12 | Till I.D. Gmbh | Zeitlich deterministischer mikroprozessor und mikrocontroller |
Also Published As
Publication number | Publication date |
---|---|
DE102007026982B4 (de) | 2009-04-02 |
DE102007026982A1 (de) | 2008-12-11 |
EP2160670A1 (de) | 2010-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69228600T2 (de) | Kleinleistungs-rechnerarchitektur und verfahren | |
DE68925615T2 (de) | Digitalrechnersystem mit Niederstromverbrauchmodus | |
DE69224954T2 (de) | Verfahren und Vorrichtung zur Echtzeitverwaltung von einem System mit mindestens einem zur Verwaltung mehrerer Funktionen geeignetem Prozessor | |
DE4227345C2 (de) | Verfahren zur Ablaufsteuerung von Prozessen in einem Mehrprozessor-Computersystem | |
EP1402382B1 (de) | Verfahren zur bearbeitung von daten | |
DE69933515T2 (de) | Peripherieprozessor | |
DE10297596B4 (de) | Verfahren und Vorrichtung zum Suspendieren der Ausführung eines Threads, bis ein spezifizierter Speicherzugriff auftritt | |
DE69527210T2 (de) | Datenverarbeitungsschaltungen und -schnittstellen | |
DE69422448T2 (de) | Multi-tasking-steuerungsgerät mit geringem energieverbrauch | |
DE68924810T2 (de) | Zeitgeberkanal für die Verwendung in einem Mehrkanal-Zeitsystem. | |
DE69121382T2 (de) | Emulator zur Emulation eines verbindungsloses Mikrokontroller und Mikrokontroller zur Verwendung in einem solchen Emulator | |
DE112004001133T5 (de) | Warteschlangen-Sperren mit Monitor-Memory-Wait | |
DE68920929T2 (de) | Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. | |
DE68915074T2 (de) | Integrierte Zeitgeberschaltung mit mehreren Kanälen und zugeordnetem Bedienungsprozessor. | |
DE68922545T2 (de) | Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen. | |
DE69325321T2 (de) | Unterbrechungsvorrichtung für allgemeines Ein-/Ausgangstor | |
DE102013214756A1 (de) | Verfahren und vorrichtung zum verbessern des verarbeitungsleistungsvermögens eines mehrkernprozessors | |
DE68919018T2 (de) | Zeitgeberkanal mit Übereinstimmungserkennungsmerkmalen. | |
WO2011061046A1 (de) | Parallelisierte programmsteuerung | |
DE3650165T2 (de) | Buszustandssteuerungsschaltung. | |
DE3687893T2 (de) | Steuersystem fuer programmsprungoperation. | |
DE69424092T2 (de) | Fliessbandverarbeitungssystem mit der Fähigkeit die Fliessbandoperation, ohne Verwendung von Unterbrechungsverarbeitung, abzustellen und Wiederanzustellen | |
DE69219848T2 (de) | Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau | |
DE102007051803A1 (de) | Verfahren und Vorrichtung zur Datenverarbeitung | |
EP2386949B1 (de) | Verfahren und Vorrichtung zum zuweisen einer Mehrzahl von Teilaufgaben einer Aufgabe zu einer Mehrzahl von Recheneinheiten einer vorgegebenen Prozessorarchitektur |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08760556 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2008760556 Country of ref document: EP |