EP1639454A2 - Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit - Google Patents

Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit

Info

Publication number
EP1639454A2
EP1639454A2 EP04738748A EP04738748A EP1639454A2 EP 1639454 A2 EP1639454 A2 EP 1639454A2 EP 04738748 A EP04738748 A EP 04738748A EP 04738748 A EP04738748 A EP 04738748A EP 1639454 A2 EP1639454 A2 EP 1639454A2
Authority
EP
European Patent Office
Prior art keywords
operating mode
processor unit
execution units
memory area
programs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP04738748A
Other languages
English (en)
French (fr)
Inventor
Reinhard Weiberle
Bernd Mueller
Ralf Angerbauer
Rainer Gmehlich
Stefan Benz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from DE10332700A external-priority patent/DE10332700A1/de
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of EP1639454A2 publication Critical patent/EP1639454A2/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Definitions

  • the invention is based on a method for switching between at least two
  • Such processor units with at least two integrated execution units are also known as dual-core or multi-core architectures.
  • dual-core or multi-core architectures are proposed according to the current state of the art for two main reasons:
  • an increase in performance that is to say an increase in performance
  • the two execution units or gores process different programs or tasks. This enables an increase in performance, which is why this configuration is referred to as performance mode.
  • the second reason for realizing a dual-core or multi-core architecture is an increase in security in that the two execution units redundantly process the same program.
  • the results of the two execution units or CPUs, that is Cores are compared and an error can be identified in the comparison for a match.
  • this configuration is referred to as safety mode.
  • Multi-core architecture included d. H. the computer with the at least two execution units is in principle only operated in one mode, the performance mode or the safety mode.
  • the object of the invention is to combine operation of such a dual or multi
  • the invention is based on a method for switching between at least two operating modes of a processor unit with at least two execution units and a corresponding processor unit.
  • the switchover from a first to a second operating mode is advantageously achieved by accessing a predetermined memory address which acts as a switch trigger.
  • Hardware components such as switching means (mode selector) or comparison means and a corresponding method are presented, such as in operation between safety-critical programs, which are therefore executed redundantly in safety mode, and non-safety-critical programs, which are executed independently of one another on both execution units in performance mode can.
  • the same programs are processed synchronously in the first operating mode by the at least two execution units and checked by means of comparison means provided that the states of the execution units which arise when the same programs are processed match.
  • Deviations in this regard are then conceivable different error reactions from an error display to an emergency operation to the shutdown of the faulty unit.
  • the first operating mode corresponds to
  • a switchover from the second operating mode to the first operating mode is expediently carried out by an interrupt request, in particular triggered by an interrupt means, the interrupt request being triggered on the one hand by a time condition or also by a condition condition, i.e. a certain condition of at least one of the two execution units or also the Corresponds to the occurrence of a certain event.
  • a special division into at least three separate memory areas advantageously takes place, the execution units depending on the respective one
  • Operating mode have access to a first memory area or a second memory area, or are connected to it.
  • each of the at least two execution units is expediently assigned a first memory area on the processor unit with which the latter is used in the first operating mode, that is to say in particular
  • both execution units In the second operating mode, both execution units only have access to or are connected to a second memory area assigned to both execution units.
  • Monitoring means in particular the switching means themselves, are expediently provided in such a way that monitoring is carried out so that only the corresponding memory areas are accessed in the respective operating mode or the corresponding connection to the memory areas exists. I.e. grab in the second operating mode the evaluation means only to the second memory area and not to the first memory areas, and in the first operating mode the access is only to the respective first memory areas and not to the second memory area, which is checked by the aforementioned monitoring means and possibly in corresponding error reactions such as error messages, emergency operation or shutdown is sanctioned.
  • Each of the three memory areas mentioned is provided in a separate memory module, so that at least three memory modules are available on the processor unit.
  • the safety-critical programs are expediently stored in a first memory area, and the non-safety-critical programs are stored in the second memory area, the predetermined memory address which has the aforementioned trigger function with regard to the switchover being expediently contained in the second memory area.
  • a further advantage is obtained if explicit comparison means are provided on the processor unit for comparing the states of the execution units in the first operating mode and these comparison means are only functional in the first operating mode and are deactivated during the transition to the second operating mode, so that in the non-redundant manner , non-safety-critical operation, no comparison and therefore no possibly provoked error reaction.
  • FIG. 1 shows a processor unit according to the invention with at least two execution units and the hardware components according to the invention.
  • Figure 2 discloses switching from safety mode to power mode, whereas
  • Figure 3 illustrates a switch from power mode to safety mode.
  • control applications in particular in the field of motor vehicle control, such as engine control, brake control or steering and transmission, etc., but also in industrial applications such as automation or in
  • the processor unit of the system according to the invention consists of a dual-core architecture according to FIG. 1, that is to say a processor unit 100 with at least two execution units 101 and 102 (CPU1 and CPU2).
  • the two execution units 101, 102, ie CPU1 and CPU2 are each assigned a working memory 110 or 111, also referred to as RAM1 and RAM2. Both execution units 101 and 102 are with one
  • Comparison means a comparator 170 connected.
  • Each execution unit also has a connection to a switching means, a mode selector 130 or 131, to which the comparison module, the comparison means 170, also has connections.
  • the respective volatile working memory is via a bus 140 or 141 110 and 111 as well as the switching means 130 and 131 are each connected to a first storage means 150 and 151 and a second storage means 180.
  • two operating systems are used, one for the safety-critical programs or tasks and one for the non-safety-critical ones
  • OSEKtime OS for example, is used as the operating system for the safety-critical programs
  • OSEK OS for example, is used as the operating system for the non-safety-critical tasks.
  • the application software is divided into security-critical ones
  • the safety-relevant, that is to say the safety-critical, tasks or programs are executed redundantly on both execution units 101 and 102, that is to say both CPUs, CPU1 and CPU2. These programs are processed under the control of the first operating system, here OSEKtime OS.
  • the non-volatile memory area 150 and 151 shown in FIG. 1 is doubled in two parts, so that there are two first memory areas 150 and 151, corresponding to two execution devices.
  • the safety-critical programs or tasks are doubled in these first memory areas, ie redundant. I.e. each of the security-critical tasks is located on the one hand in the memory area 150 and on the other hand in the memory area 151.
  • the first operating system itself can be classified as security-critical and is therefore also stored in both memory areas.
  • the operating system OSEKtime OS is stored on the one hand in the memory area 150 and on the other hand in the memory area 151.
  • the first two memory areas are each in a special design as their own non-volatile Memory module ROM1 or ROM2 executed, which can be executed as ROM, PROM, EPROM, EEPROM, Flash-EPROM etc.
  • Double storage of the security-critical programs or tasks is not absolutely necessary. These can also be achieved by using an ECC code (Error Code and
  • Such methods for error detection in a memory are diverse, the basic requirement being security with an error detection or error correction code, ie a signature.
  • this signature can only consist of a signature bit, for example a parity bit.
  • protection can also be provided by more complex ED codes (error
  • Detection such as a Berger code or a Bose-Lin code, etc., or also by a more complex ECC code, such as a Hamming code, etc., in order to enable more reliable error detection using the corresponding number of bits.
  • a code generator for example a generator table (hard-wired or in software) to match certain input patterns
  • the programs or tasks which are not safety-relevant or safety-critical are calculated in a distributed manner on both execution units, that is to say CPUs, and are executed under the control of the respective sub-operating system, in this case the OSEK subsystem.
  • an independent operating system runs here on each of the two execution units, here an independent OSEK system.
  • the second memory area 180 in which the non-safety-critical programs or tasks are located, is simply present. He is from both
  • this second memory area can also be designed as a separate non-volatile memory module ROM3 and as a ROM, PROM, EPROM, EEPROM, Flash-EPROM etc.
  • the memory areas that is to say the first and second memory areas, can be designed such that the first memory areas or the first memory area (in the case of ECC protection), for example between 0 and X in relation to the addresses and the second memory area from X + 1 to Y also in relation to which addresses are trained.
  • a doubled first memory area is assumed, whereby, as previously explained, only a single first secured memory area can be used. Then, as already mentioned, the first memory area from 0 to X is present twice in a first memory area.
  • Each first memory area is specifically assigned to an execution unit.
  • the safety-critical programs or tasks run redundantly and in particular synchronously on both execution units, that is to say both CPUs 101 and 102.
  • the respective CPU states are compared with one another in the comparison means, the comparator 170.
  • Certain program phases can be assigned to certain program phases, which can then be compared in a time-uncritical manner, that is to say at any time, provided that these are stored temporarily and can be compared, for example, by an identifier.
  • the safety-critical programs or tasks are not only processed redundantly, but synchronously, so that a comparison of the respective states of the execution units can be carried out directly during operation.
  • the new commands and / or data are then correspondingly loaded and processed from the respectively assigned first memory area 150 or 151.
  • the CPU states are checked for agreement, and errors are identified if the states, which should correspond, deviate.
  • An error response is, on the one hand, an error display with regard to the respective system in which the processor unit is installed, and, on the other hand, error responses such as an emergency operation, i.e. the operation of the system in which the processor unit resides, in a secured emergency operation, for example with specially provided programs and / or data. It can also with a more extensive error evaluation, for. B.
  • n and m are natural numbers and n> 2 and m>n> m / 2 or also a 1 from k code, where k corresponds to a natural number> 1. If, for example, an execution unit is clearly identified as faulty by such a test, it can be used as a further fault reaction - 3 -
  • the execution units are only permitted access to addresses or data in the first memory areas. I.e. in the first operating mode, the respective execution unit may only access the first memory area, in particular its associated memory area. This is checked by monitoring means, in particular the switching means or mode selectors 130 or 131 or monitoring means in the mode selectors 130 and 131. If errors occur here, a comparable error reaction, as described above, is conceivable and foreseeable with regard to a comparison error when the CPU states match. I.e. but also that the switchover means, in this case the mode selectors 130 or 131 for this case of the first operating mode, establish a connection to the associated first memory area 150 or 151 via bus 140 or 141 or monitor a corresponding access violation.
  • the non-safety-critical programs or tasks are processed.
  • Various non-safety-critical programs run on both execution units, that is to say CPUs 1 and 2 (101, 102). This includes, for example, the operating system itself for the second operating mode, i.e. the OSEK subsystem.
  • the two execution units or CPUs thus share a non-volatile second memory area which, as described above, can be designed.
  • each CPU has its own volatile memory area RAM1 and RAM2, 110, respectively
  • the power mode according to our exemplary embodiment, no access to an address in the first memory area is permitted.
  • the checking is carried out by checking means, in particular by the switching means, the mode selectors, or else the checking means are carried out separately in the mode selectors.
  • an incorrect access is detected in the second operating mode, a corresponding error reaction can also be initiated here.
  • an error response corresponding to the first operating mode is conceivable and can be predetermined. This is particularly useful because, in the event of incorrect access, security-critical memory areas may be accessed. On the one hand, this can be realized in that a connection to the second memory area is only established in the second operating mode and the connection to the first memory areas is capped in this operating mode or access to the first memory area is prevented in some other way and only allowed in the second memory area.
  • Address can appear in the first memory area during program execution or can be appropriately supplied from the outside. I.e. in the first operating mode or security mode, only addresses or a program in the first memory area may be accessed; if in this security mode to another address e.g. is accessed in the second memory area, there is an error with a possible corresponding error response, as described above. This is illustrated once again in FIG. In block 200, both execution units 101 and 102 are in the first operating mode, that is to say the safety mode. In query 210 it is checked whether the address of the next command is equal to the trigger address of the corresponding excellent changeover address. If not, both are
  • Processing units continue to be in the first operating mode and thus each access the first memory areas 150, 151. However, if the address of the next command and / or date corresponds to the trigger address, then in block 220 there is a switchover or change to the second operating mode, the performance or performance Fashion. Each execution unit also receives an address in the second memory area at which processing in the second operating mode is to be continued. In this case, the comparison unit or the comparison means 170 is switched off, ie deactivated (disabled). In block 230, the first processing unit 101 is thus in the second operating mode and in block 231 the second execution unit 102 is also in the second operating mode, the performance mode. I.e.
  • the safety mode to the performance mode is in the specific example, for example, to call a special OSEKtime task T r jgg er such as the ttidle task of the OSEKtime operating system or the one contained therein, as the trigger address, especially the address
  • the T ⁇ rj gg er task like ttidle is, for example, a call to the OSEK scheduler, which is located in the second memory area 180.
  • the switchover devices that is to say the mode selectors 130, 131
  • this corresponding address is set as the trigger address in order to switch to the power mode.
  • this is checked in block 210, that is to say the mode selectors, the switching means. This means that future address accesses may only take place in the ROM area 180, that is to say the non-volatile second memory area, until another change to the security mode.
  • FIG. 3 now shows the switchover or change from the power mode, that is to say the performance mode, in particular back to the first operating mode, the safety mode or safety mode.
  • execution unit 101 that is CPU 1 in the second operating mode, is the performance mode.
  • the performance mode is the performance mode.
  • an interrupt request an interrupt, is triggered for each execution unit, which causes a switchover in block 330 from both execution units 101 and 102 to the first operating mode, the safety mode.
  • the comparator 170 is switched on again, and in block 340 both execution units then run again in the safety mode, the first operating mode.
  • the interrupt request can be triggered on the one hand by a time condition, that is to say a timer interrupt, or by a condition or event condition be triggered. This means that in order to switch from performance mode to security mode, an interrupt request from the first operating system OSEKtime is generated.
  • This timer interrupt of the OSEKtime operating system which has higher priority than the OSEK operating system, is programmed in the same way in both CPUs, since the same OSEKtime system is running on both CPUs. Especially when OSEKtime-
  • Interrupt requests also put the comparison means 170 back into function, that is, switched to the first operating state, the safety mode, and the execution units in particular run again redundantly.
  • Event interrupt are used to accomplish the above-mentioned change of operating mode from the second to the first operating mode.
  • a certain state of the execution units can trigger a high-priority interrupt, for example, which is then valid for both execution units.
  • This can be, for example, a state generated by the processing of the programs in ROM 180 in a CPU, which triggers such a high-priority interrupt request, which also applies to the second CPU.
  • an event in particular also an event supplied externally to the processor unit, can trigger such an interrupt and thus the change in operating mode.
  • the first variant with the timer interrupt is preferred, but the status or event interrupt as described is also conceivable and is hereby disclosed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit mit wenigstens zwei Ausführungseinheiten dadurch gekennzeichnet, dass ein Wechsel von einem ersten Betriebsmodus in einen zweiten Betriebsmodus dadurch ausgelöst wird, dass durch die Prozessoreinheit auf eine vorgegebene Speicheradresse zugegriffen wird.

Description

Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer
Prozessoreinheit sowie entsprechende Prozessoreinheit
Stand der Technik
Die Erfindung geht aus von einem Verfahren zur Umschaltung zwischen wenigstens zwei
Betriebsmodi einer Prozessoreinheit sowie einer entsprechenden Prozessoreinheit mit wenigstens zwei integrierten Ausführungseinheiten gemäß den Oberbegriffen der unabhängigen Ansprüche.
Solche Prozessoreinheiten mit wenigstens zwei integrierten Ausfuhrungseinheiten sind auch als Dual-Core- oder Multi-Core-Architekturen bekannt. Solche Dual-Core- oder Multi-Core-Architekturen werden nach heutigem Stand der Technik hauptsächlich aus zwei Gründen vorgeschlagen:
Zum Einen kann damit eine Leistungssteigerung, also eine Performance-Steigerung erreicht werden, indem die beiden Ausführungseinheiten oder Gores als zwei Recheneinheiten auf einem Halbleiterbaustein betrachtet und behandelt werden. In dieser Konfiguration bearbeiten die zwei Ausführungseinheiten oder Cores unterschiedliche Programme respektive Tasks. Dadurch lässt sich eine Leistungssteigerung erzielen, weshalb diese Konfiguration als Leistungsmodus oder Performance-Mode bezeichnet wird.
Der zweite Grund, eine Dual-Core- oder Multi-Core-Architektur zu realisieren, ist eine Sicherheitssteigerung, indem die beiden Ausführungseinheiten redundant das gleiche Programm abarbeiten. Die Ergebnisse der beiden Ausführungseinheiten oder CPUs, also Cores werden verglichen und ein Fehler kann bei dem Vergleich auf Übereinstimmung erkannt werden- Im Folgenden wird diese Konfiguration als Sicherheitsmodus oder Safety-Mode bezeichnet.
Im Allgemeinen sind die beiden genannten Konfigurationen exklusiv auf der Dual- oder
Multi-Core- Architektur enthalten, d. h. der Rechner mit den wenigstens zwei Ausführungseinheiten, wird prinzipiell nur in einem Modus betrieben, dem Performance- Modus oder dem Safety-Modus.
Aufgabe der Erfindung ist es, einen kombinierten Betrieb einer solchen Dual- oder Multi-
Core-Prozessoreinheit bezüglich wenigstens zweier Betriebsarten zu ermöglichen und dabei eine optimierte Umschaltstrategie, insbesondere zwischen einem Sicherheitsmodus zur Sicherheitssteigerung und einem Leistungsmodus zur Leistungssteigerung zu erzielen.
Vorteile der Erfindung
Es ist zum Einen aus Sicherheitsgründen eine redundante Ausführung der Programme respektive Tasks erwünscht, andererseits ist aus Kostengründen das Bereithalten von redundanter Hardware bei der Ausführung der nicht sicherheitskritischen Funktionen nicht erstrebenswert. Dieser Zielkonflikt wird erfindungsgemäß durch eine optimierte Umschaltung zwischen wenigstens zwei Betriebsmodi und einer Prozessoreinheit gelöst. So geht die Erfindung von einem Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit mit wenigstens zwei Ausführungseinheiten sowie entsprechender Prozessoreinheit aus.
Vorteilhafter Weise wird die Umschaltung von einem ersten in einen zweiten Betriebsmodus dadurch realisiert, dass auf eine vorgegebene, als Umschalttrigger wirkende Speicheradresse zugegriffen wird. D. h. es werden Hardwarekomponenten wie Umschaltmittel (Mode Selektor) oder Vergleichsmittel und ein entsprechendes Verfahren vorgestellt, wie im Betrieb zwischen sicherheitskritischen Programmen, welche also im Sicherheitsmodus redundant ausgeführt werden und nicht sicherheitskritischen Programmen, welche im Leistungsmodus unabhängig voneinander auf beiden Ausführungseinheiten ausgeführt werden, optimal umgeschaltet werden kann. Dabei werden die gleichen Programme im ersten Betriebsmodus durch die wenigstens zwei Ausführungseinheiten synchron abgearbeitet und durch vorgesehene Vergleichsmittel dahingehend überprüft, dass die bei der Abarbeitung der gleichen Programme entstehenden Zustände der Ausführungseinheiten übereinstimmen. Bei
Abweichungen diesbezüglich sind dann verschiedene Fehlerreaktionen von einer Fehleranzeige über einen Notbetrieb bis hin zur Abschaltung der fehlerhaften Einheit denkbar.
In einer speziellen Ausführungsform entspricht dem ersten Betriebsmodus der
Sicherheitsmodus und dem zweiten Betriebsmodus der Leistungsmodus. Eine Umschaltung vom zweiten Betriebsmodus in den ersten Betriebsmodus erfolgt dabei zweckmäßiger Weise durch eine Unterbrechungsanforderung, insbesondere ausgelöst durch ein Unterbrechungsmittel, wobei die Unterbrechungsanforderung einerseits durch eine Zeitbedingung auslösbar ist oder auch durch eine Zustandsbedingung, also einem bestimmten Zustand wenigstens einer der beiden Ausführungseinheiten oder auch dem Auftreten eines bestimmten Ereignisses entspricht.
Vorteilhafter Weise erfolgt eine spezielle Aufteilung in wenigstens drei getrennte Speicherbereiche, wobei die Ausführungseinheiten abhängig vom jeweiligen
Betriebsmodus auf einen ersten Speicherbereich oder einen zweiten Speicherbereich Zugriff haben, respektive mit diesem in Verbindung stehen. Dabei ist zweckmäßiger Weise in einer speziellen Ausführungsform jeder der wenigstens zwei Ausführungseinheiten jeweils ein erster Speicherbereich auf der Prozessoreinheit zugeordnet, mit welchen diese im ersten Betriebsmodus, also insbesondere dem
Sicherheitsmodus, in Verbindung stehen bzw. daraufzugreifen. Im zweiten Betriebsmodus haben beide Ausführungseinheiten nur auf einen, beiden Ausführungseinheiten zugeordneten zweiten Speicherbereich Zugriff bzw. stehen mit diesem in Verbindung.
Zweckmäßiger Weise sind nun Überwachungsmittel, insbesondere die Umschaltmittel selber derart vorgesehen, dass überwacht wird, dass im jeweiligen Betriebsmodus nur auf die entsprechenden Speicherbereiche zugegriffen wird bzw. die entsprechende Verbindung zu den Speicherbereichen besteht. D. h. im zweiten Betriebsmodus greifen die Auswertemittel nur auf den zweiten Speicherbereich zu und nicht auf die ersten Speicherbereiche, und im ersten Betriebsmodus erfolgt der Zugriff nur auf die jeweiligen ersten Speicherbereiche, und nicht auf den zweiten Speicherbereich, was durch vorgenannte Überwachungsmittel überprüft und in eventuell entsprechende Fehlerreaktionen wie Fehlermeldung, Notbetrieb oder Abschaltung sanktioniert wird.
Dabei ist jeder der genannten drei Speicherbereiche, also die wenigstens zwei ersten Speicherbereiche sowie der zweite Speicherbereich in einem getrennten Speicherbaustein vorgesehen, so dass wenigstens drei Speicherbausteine auf der Prozessoreinheit zur Verfügung stehen. Dabei sind zweckmäßiger Weise die sicherheitskritischen Programme jeweils in einem ersten Speicherbereich, und die nicht sicherheitskritischen Programme im zweiten Speicherbereich abgelegt, wobei zweckmäßiger Weise die vorgegebene Speicheradresse, welche die genannte Triggerfunktion bezüglich der Umschaltung aufweist, in dem zweiten Speicherbereich enthalten ist.
Ein weiterer Vorteil ergibt sich, wenn für den Vergleich der Zustände der Ausführungseinheiten im ersten Betriebsmodus explizite Vergleichsmittel auf der Prozessoreinheit vorgesehen sind und diese Vergleichsmittel nur im ersten Betriebsmodus in Funktion sind und beim Übergang in den zweiten Betriebsmodus außer Funktion gesetzt werden, so dass im nichtredundanten, nicht sicherheitskritischen Betrieb kein Vergleich und damit keine unter Umständen provozierte Fehlerreaktion erfolgt.
Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie den Inhalten von Beschreibung und Zeichnung.
Zeichnung
Die Erfindung wird nachfolgend anhand der in der Zeichnung dargestellten Figuren näher erläutert. Dabei zeigt
Figur 1 eine erfindungsgemäße Prozessoreinheit mit wenigstens zwei Ausführungseinheiten und den erfϊndungsgemäßen Hardwarekomponenten. Figur 2 offenbart eine Umschaltung vom Sicherheitsmodus in den Leistungsmodus, wohingegen
Figur 3 eine Umschaltung vom Leistungsmodus in den Sicherheitsmodus darstellt.
Beschreibung der Ausführungsbeispiele
In Steuerungsanwendungen, insbesondere auf dem Gebiet der Kraftfahrzeugsteuerung, wie Motorsteuerung, Bremsensteuerung oder auch Lenkung und Getriebe usw., aber ebenso in Industrieanwendungen wie der Automatisierung oder im
Werkzeugmaschinenbereich gibt es im Allgemeinen Softwaretasks oder Programme, die eine redundante Ausführung aus Sicherheitsgründen erfordern, um das Auftreten von Fehlern zu erkennen. Solche sicherheitskritischen Anwendungen weisen aber neben diesen sicherheitskritischen Programmen auch Softwarebestandteile oder Programme auf, die auch fehlerhaft sein dürfen, da sie nicht für das Erbringen der sicherheitskritischen
Funktion selbst nötig sind bzw. damit befasst sind, sondern nur eine zusätzliche Funktion, insbesondere eine Komfortfunktion erbringen. Aus Sicherheitsgründen ist eine redundante Ausführung erwünscht, aus Kostengründen das Bereithalten von redundanter Hardware nicht erstrebenswert. Erfindungsgemäß wird diese Problemstellung durch das optimierte Umschalten zwischen wenigstens zwei Betriebsmodi, der Prozessoreinheit, wie bereits in den Vorteilen beschrieben und nachfolgend näher erläutert, gelöst.
Somit wird im Folgenden der Einsatz der Erfindung in einem sicherheitskritischen System, beispielsweise einem fahrzeugimmanenten System wie Bremse, Lenkung, Getriebe oder Motor dargestellt. Die erfindungsgemäße Prozessoreinheit des Systems besteht dabei aus einer Dual-Core- Architektur entsprechend Figur 1, also einer Prozessoreinheit 100 mit wenigstens zwei Ausführungseinheiten 101 und 102 (CPUl und CPU2). Den beiden Ausführungseinheiten 101, 102, also CPUl und CPU2 sind in diesem Beispiel jeweils ein Arbeitsspeicher 110 bzw. 111 zugeordnet, auch als RAM1 und RAM2 bezeichnet. Beide Ausführungseinheiten 101 und 102 sind mit einem
Vergleichsmittel, einem Vergleicher 170 verbunden. Jede Ausführungseinheit hat weiterhin eine Verbindung zu einem Umschaltmittel, einem Mode-Selektor 130 bzw. 131, mit welchem auch der Vergleichsbaustein, das Vergleichsmittel 170 Verbindungen aufweist. Über jeweils einen Bus 140 bzw. 141 ist der jeweils flüchtige Arbeitsspeicher 110 bzw. 111 sowie die Umschaltmittel 130 und 131 mit jeweils einem ersten Speichermittel 150 bzw. 151 sowie einem zweiten Speichermittel 180 verbunden.
In diesem Ausführungsbeispiel werden zwei Betriebssysteme verwendet, eines für die sicherheitskritischen Programme oder Tasks und eines für die nicht sicherheitskritischen
Programme oder Tasks. Als Betriebssystem für die sicherheitskritischen Programme wird beispielsweise OSEKtime OS, und als Betriebssystem für die nicht sicherheitskritischen Tasks beispielsweise OSEK OS verwendet.
Die Anwendungssoftware ist, wie bereits erwähnt, aufgeteilt in sicherheitskritische
Programme und nicht sicherheitskritische Programme. Alle Programme oder Tasks, die als nicht sicherheitskritisch eingestuft sind, dürfen versagen, fehlerhaft ausgeführt oder überhaupt nicht ausgeführt werden. Eine Gefahrdung des Gesamtsystems bzw. der Umgebung ist dadurch nicht möglich. Der sichere Betrieb des Gesamtsystems wird alleine durch die als sicherheitskritisch eingestuften Programme respektive Tasks möglich. Allerdings besteht die Möglichkeit, dass der Betrieb, sofern er alleine durch die sicherheitskritischen Tasks bzw. Programme durchgeführt wird, zu einem Qualitätsverlust der Gesamtfunktion führt, die allerdings innerhalb vorgebbarer Toleranzen als tolerierbar eingestuft wurde.
Die sicherheitsrelevanten, also die sicherheitskritischen Tasks oder Programme werden redundant auf beiden Ausführangseinheiten 101 und 102, also beiden CPUs, CPUl und CPU2 ausgeführt. Dabei werden diese Programme unter der Kontrolle des ersten Betriebssystems, hier OSEKtime OS abgearbeitet. Dazu ist der in Figur 1 dargestellte nicht flüchtige Speicherbereich 150 bzw. 151 in zwei Teile verdoppelt, so dass entsprechend zweier Ausführungseinlieiten zwei erste Speicherbereiche 150 und 151 vorliegen. In diesen ersten Speicherbereichen liegen die sicherheitskritischen Programme respektive Tasks verdoppelt, also redundant. D. h. jede der sicherheitskritischen Tasks ist zum Einen im Speicherbereich 150 und zum Anderen im Speicherbereich 151 lokalisiert. Dabei kann insbesondere das erste Betriebssystem selbst als sicherheitskritisch eingestuft werden und wird somit ebenfalls in beiden Speicherbereichen abgelegt. D. h. in unserem Beispiel, dass das Betriebssystem OSEKtime OS zum Einen im Speicherbereich 150 und zum Anderen im Speicherbereich 151 jeweils abgelegt ist. Dabei sind die beiden ersten Speicherbereiche in einer besonderen Ausführung jeweils als eigener nicht flüchtiger Speicherbaustein ROM1 bzw. ROM2 ausgeführt, welche als ROM, PROM, EPROM, EEPROM, Flash-EPROM usw. ausgeführt werden können.
Dabei ist nicht zwingend eine Doppelablage der sicherheitskritrischen Programme oder Tasks erforderlich. Diese können auch durch Einsatz eines ECC-Codes (Error Code and
Correction) abgesichert sein. Solche Methoden zur Fehlererkennung bei einem Speicher sind vielfältig, wobei die Grundvoraussetzung die Absicherung mit einem Fehlererkennungs- bzw. Fehlerkorrekturcode, also einer Signatur darstellt. Im einfachsten Fall kann diese Signatur nur aus einem Signaturbit, beispielsweise einem Paritybit bestehen. Andererseits kann die Absicherung auch durch komplexere ED-Codes (Error
Detection) wie einen Berger-Code oder einen Bose-Lin-Code usw., oder auch durch einen komplexeren ECC-Code wie beispielsweise einen Hamming-Code, usw. realisiert werden, um durch entsprechende Bitzahl eine sicherere Fehlererkennung zu ermöglichen. Es kann aber auch als Codegenerator, beispielsweise eine Generatortabelle (fest verdrahtet oder in Software) verwendet werden, um bestimmten Eingangsmustern der
Bits im Rahmen der Adresse ein gewünschtes Codemuster beliebiger Länge zuzuordnen. Damit kann, insbesondere durch die Korrekturfunktion die Datensicherheit im Speicher gewährleistet werden und eine Doppelablage vermieden werden. Dennoch erfolgt eine redundante Abarbeitung der sicherheitskritischen Programme in den beiden Ausführungseinheiten, wodurch Fehler in den Gores, also den Ausführungseinheiten durch Vergleich auf Übereinstimmung erfindungsgemäß aufgedeckt werden, wobei für diesen Fall der Erfindung entgegen Figur 1 nur ein erster Speicherbereich notwendig ist.
Die nicht sicherheitsrelevanten bzw. sicherheitskritischen Programme oder Tasks werden zur Leistungserhöhung auf beiden Ausführungseinheiten, also CPUs verteilt berechnet und unter der Kontrolle des jeweiligen Subbetriebsystems, also hier des OSEK- Subsystems ausgeführt. Insbesondere läuft somit auf jede der beiden Ausführungseinheiten ein unabhängiges Betriebssystem, hier ein unabhängiges OSEK- System. Der zweite Speicherbereich 180, in dem sich die nicht sicherheitskritischen Programme bzw. Tasks befinden, ist einfach vorhanden. Er wird von beiden
Ausführungseinheiten 101 bzw. 102 benützt bzw. es wird von beiden auf ihn zugegriffen. Auch dieser zweite Speicherbereich kann in einer besonderen Ausführungsform als eigener nicht flüchtiger Speicherbaustein ROM3 ausgebildet sein und als ROM, PROM, EPROM, EEPROM, Flash-EPROM usw. ausgestaltet werden. Dabei können die Speicherbereiche, also die ersten und zweiten Speicherbereiche so ausgebildet sein, dass die ersten Speicherbereiche bzw. der erste Speicherbereich (bei ECC Absicherung) beispielsweise zwischen 0 und X bezogen auf die Adressen und der zweite Speicherbereich von X + 1 bis Y ebenfalls bezogen auf die Adressen ausgebildet sind. Im weiteren wird von einem verdoppelten ersten Speicherbereich ausgegangen, wobei wie vorher erläutert auch nur ein einzelner erster abgesicherter Speicherbereich Einsatz finden kann. Dann ist, wie schon gesagt, der erste Speicherbereich von 0 bis X doppelt eben jeweils in einem ersten Speicherbereich vorhanden. Dabei ist jeder erste Speicherbereich einer Ausführungseinheit konkret zugeordnet.
Im ersten Betriebsmodus, hier im Beispiel dem Sicherheitsmodus, laufen auf beiden Ausführungseinheiten, also beiden CPUs 101 und 102 redundant und insbesondere synchron die sicherheitskritischen Programme bzw. Tasks ab. Im Vergleichsmittel, dem Vergleicher 170, werden die jeweiligen CPU-Zustände miteinander verglichen. Dabei können bestimmten Programmphasen bestimmte Zustände zugeordnet sein, die dann zeitunkritisch, also zu einem beliebigen Zeitpunkt verglichen werden können, sofern diese zwischengespeichert und beispielsweise durch eine Kennung eindeutig zuordenbar sind, verglichen werden können. Im bevorzugten Fall aber werden die sicherheitskritischen Programme respektive Tasks nicht nur redundant, sondern synchron abgearbeitet, so dass im Betrieb direkt ein Vergleich der jeweiligen Zustände der Ausführungseinheiten durchgeführt werden kann. Die neuen Befehle und/oder Daten werden dann entsprechend aus dem jeweilig zugeordneten ersten Speicherbereich 150 respektive 151 geladen und abgearbeitet. Im Vergleicher 170 werden die CPU-Zustände auf Übereinstimmung geprüft, wobei bei einer Abweichung der Zustände, die sich entsprechen sollten, auf Fehler erkannt wird. Als Fehlerreaktion ist zum Einen eine Fehleranzeige bezüglich des jeweiligen Systems, in dem die Prozessoreinheit verbaut ist, möglich und zum Anderen Fehlerreaktionen wie ein Notbetrieb, also das Betreiben des Systems, dem die Prozessoreinheit innewohnt, in einem abgesicherten Notbetrieb, beispielsweise mit extra dafür vorgesehenen Programmen und/oder Daten. Dabei kann auch bei einer weitergehenden Fehlerauswertung, z. B. einem n- aus m-Test, wobei n und m natürliche Zahlen sind und n > 2 sowie m > n > m/2 oder auch einem 1 aus k-Code, wobei k einer natürlichen Zahl > 1 entspricht. Wird beispielsweise durch solch einen Test eindeutig eine Ausführungseinheit als fehlerhaft erkannt, kann als weitere Fehlerreaktion - 3 -
auch ein Abschalten dieser Ausführungseinheit und Notbetrieb der verbliebenen Einheit oder ein Umschalten der fehlerhaften Ausführungseinheit in den Notbetrieb erfolgen.
Im Safety-Mode, also dem Sicherheitsmodus oder allgemeiner dem ersten Betriebsmodus, ist ein Zugriff der Ausführungseinheiten nur auf Adressen bzw. Daten in den ersten Speicherbereichen zulässig. D. h. die jeweilige Ausführungseinheit darf im ersten Betriebsmodus nur auf den, insbesondere ihr zugeordneten, ersten Speicherbereich zugreifen. Dies wird durch Überwachungsmittel, insbesondere die Umschaltmittel oder Mode-Selektoren 130 respektive 131 bzw. Überwachungsmittel in den Mode-Selektoren 130 und 131 überprüft. Treten hierbei Fehler auf, ist eine vergleichbare Fehlerreaktion, wie oben beschrieben, bezüglich eines Vergleichfehlers bei Übereinstimmung der CPU- Zustände denkbar und vorsehbar. D. h. aber auch, dass die Umschaltmittel, also hier die Mode-Selektoren 130 respektive 131 für diesen Fall des ersten Betriebsmodus eine Verbindung in den jeweils zugehörigen ersten Speicherbereich 150 respektive 151 via Bus 140 respektive 141 herstellen bzw. eine entsprechende Zugriffsverletzung überwachen.
Im zweiten Betriebsmodus dieses Ausführungsbeispiels werden die nicht sicherheitskritischen Programme respektive Tasks abgearbeitet. Auf beiden Ausführungseinheiten, also den CPUs 1 und 2 (101, 102) laufen verschiedene nicht sicherheitskritische Programme. Dazu gehört beispielsweise auch das Betriebssystem selbst für den zweiten Betriebsmodus, also das OSEK-Subsystem. Die beiden Ausführungseinheiten oder CPUs teilen sich damit einen nicht flüchtigen zweiten Speicherbereich, der, wie vorher beschrieben, ausgebildet sein kann. Allerdings ist jedem CPU ein eigener flüchtiger Arbeitsspeicherbereich RAM1 und RAM2, 110 respektive
111 zugeordnet. Da entsprechende solche nicht sicherheitskritische Programme nicht oder nicht alle doppelt ausgeführt sind, besteht zumindest theoretisch die Möglichkeit, dass sich beide Ausführungseinheiten gegenseitig durch Warten auf Freigabe einer Ressource blockieren. Dem ist durch geeignete Verteilung der Tasks bzw. Programme, beispielsweise nach einem Schedule auf die Ausführungseinheiten 101 und 102 entgegenzuwirken. Dabei sind auch weitere Maßnahmen wie beispielsweise ein abwechselnder Zugriff oder ein abhängig vom jeweiligen Programm priorisierter Zugriff usw. möglich. In diesem zweiten Betriebsmodus, dem Leistungsmodus gemäß unserem Ausführungsbeispiel ist kein Zugriff auf eine Adresse im ersten Speicherbereich zulässig. Auch hier erfolgt die Überprüfung durch Überprüfungsmittel, insbesondere durch die Umschaltmittel, die Mode-Selektoren, oder aber die Überprüfungsmittel sind in den Mode-Selektoren separat ausgeführt. Bei einem erkannten fehlerhaften Zugriff im zweiten Betriebsmodus kann auch hier eine entsprechende Fehlerreaktion eingeleitet werden. Dabei ist zum Einen eine Fehlerreaktion entsprechend des ersten Betriebsmodus denkbar und vorgebbar. Dies ist insbesondere dadurch sinnvoll, da bei einem fehlerhaften Zugriff unter Umständen ja auf sicherheitskritische Speicherbereiche zugegriffen wird. Zum Einen ist dies dadurch realisierbar, dass eine Verbindung zum zweiten Speicherbereich nur im zweiten Betriebsmodus aufgebaut wird und die Verbindung zu den ersten Speicherbereichen in diesen Betriebsmodus gekappt wird oder der Zugriff auf den ersten Speicherbereich anderweitig verhindert und nur in den zweiten Speicherbereich erlaubt wird.
Das Umschalten zwischen den Betriebsmodi ist nun ausführlich in den Figuren 2 und 3 nochmals beschrieben.
Um von dem ersten Betriebsmodus, also hier dem Sicherheitsmodus oder Safety-Mode in den zweiten Betriebsmodus, also hier Leistungsmodus oder Performance-Mode zu gelangen, ist ein Zugriff auf eine vorgegebene bzw. ausgezeichnete Adresse erforderlich, wodurch ein Wechsel in den zweiten Betriebsmodus erfolgt. Diese ausgezeichnete
Adresse kann dabei im ersten Speicherbereich bei der Programmabarbeitung auftreten bzw. entsprechend von Außen zugeführt werden. D. h. im ersten Betriebsmodus oder Sicherheitsmodus darf lediglich auf Adressen bzw. auf ein Programm im ersten Speicherbereich zugegriffen werden; falls in diesem Sicherheitsmodus auf eine andere Adresse z.B. im zweiten Speicherbereich zugegriffen wird, liegt ein Fehler mit möglicher entsprechender Fehlerreaktion, wie oben beschrieben, vor. In Figur 2 ist dies noch einmal verdeutlicht. Im Block 200 sind beide Ausführungseinheiten 101 und 102 im ersten Betriebsmodus, also dem Sicherheitsmodus. In Abfrage 210 wird überprüft, ob die Adresse des nächsten Befehls gleich der Triggeradresse der entsprechenden ausgezeichneten Umschaltadresse ist. Ist dies nicht der Fall, sind beide
Verarbeitungseinheiten weiterhin im ersten Betriebsmodus und greifen somit jeweils auf die ersten Speicherbereiche 150, 151 zu. Entspricht allerdings die Adresse des nächsten Befehls und/oder Datums der Triggeradresse, so erfolgt im Block 220 die Umschaltung bzw. der Wechsel in den zweiten Betriebsmodus, den Leistungs- oder Performance- Mode. Jede Ausführungseinheit erhält dabei außerdem eine Adresse im zweiten Speicherbereich, bei welcher die Abarbeitung im zweiten Betriebsmodus fortzusetzen ist. Dabei wird die Vergleichseinheit bzw. das Vergleichsmittel 170 abgeschalten, also außer Funktion gesetzt (disabled). Im Block 230 ist somit die erste Verarbeitungseinheit 101 im zweiten Betriebsmodus und im Block 231 die zweite Ausführungseinheit 102 ebenfalls im zweiten Betriebsmodus, dem Performance-Mode. D. h. die einzige Möglichkeit, um vom Sicherheitsmodus, dem Safety-Mode in den Performance-Mode zu gelangen, ist im konkreten Beispiel beispielsweise ein Aufruf einer speziellen OSEKtime-Task T rjgger wie z.B. der ttidle Task des OSEKtime Betriebssystems, respektive einer darin enthaltenen, als Trigger-Adresse ausgezeichneten Adresse, insbesondere der
Anfangsadresse dieses Programmteils bzw. dieser Task. Insbesondere wenn die beiden Ausführungseinheiten synchron arbeiten, geschieht dieser Aufruf in beiden CPUs notwendigerweise gleichzeitig. Die Tτrjgger-Task wie eben ttidle ist dabei z.B. ein Aufruf des OSEK-Schedulers, welcher im zweiten Speicherbereich 180 liegt. Beispielsweise in den Umschalteinrichtungen, also den Mode-Selektoren 130, 131 ist diese entsprechende Adresse als Triggeradresse eingestellt, um in den Leistungsmodus zu wechseln. Dies wird wie gesagt im Block 210, also eben den Mode-Selektoren, den Umschaltmitteln geprüft. Damit dürfen zukünftige Adresszugriffe eben bis zu einem erneuten Wechsel in den Sicherheitsmodus nur noch in den ROM-Bereich 180, also den nicht flüchtigen zweiten Speicherbereich erfolgen.
In Figur 3 ist nun die Umschaltung bzw. der Wechsel vom Leistungsmodus, also dem Performance-Mode insbesondere zurück in den ersten Betriebsmodus, den Sicherheitsmodus oder Safety-Mode dargestellt. In Block 300 ist Ausführungseinheit 101, also CPU 1 im zweiten Betriebsmodus, dem Performance-Mode. Ebenso ist in Block
310 die zweite Ausführungseinheit 102 in eben diesem Leistungsmodus, diesem zweiten Betriebsmodus dieses Ausf hrungsbeispiels. In Block 320 bzw. Block 321 wird nun für jede Ausführungseinheit eine Unterbrechungsanforderung, ein Interrupt ausgelöst, durch welchen eine Umschaltung in Block 330 von beiden Ausführungseinheiten 101 und 102 in den ersten Betriebsmodus, den Sicherheitsmodus, erfolgt. Dabei wird das
Vergleichsmittel der Vergleicher 170 wieder eingeschalten, und in Block 340 laufen dann beide Ausführungseinheiten wieder im Sicherheitsmodus, dem ersten Betriebsmodus. Die Unterbrechungsanforderung kann dabei zum Einen durch eine Zeitbedingung, also einen Timerinterrupt ausgelöst werden oder durch eine Zustands- respektive Ereignisbedingung ausgelöst sein. Das bedeutet, um vom Leistungsmodus in den Sicherheitsmodus zu wechseln, wird eine Unterbrechungsanforderung des ersten Betriebssystem OSEKtime generiert. Dieser Timerinterrupt des gegenüber dem OSEK-Betriebssystem höherprioren OSEKtime-Betriebssystems ist in beiden CPUs gleich programmiert, da auf beiden CPUs das gleiche OSEKtime-System läuft. Insbesondere bei synchron laufenden OSEKtime-
Systemen geht der Interrupt, also die Unterbrechungsanforderung bei beiden CPUs gleichzeitig ein. Wie gesagt, hat damit definitionsgemäß der OSEKtime-Scheduler- Interrupt eine sehr hohe, insbesondere die höchste Priorität. Beide Unterbrechungsanforderungen werden bei Synchronität dementsprechend gleichzeitig ausgeführt. Wie bereits erwähnt, wird mit Ausführungen dieser
Unterbrechungsanforderungen auch das Vergleichsmittel 170 ebenfalls wieder in Funktion gesetzt, also in den ersten Betriebszustand, den Sicherheitsmodus, umgeschaltet und die Ausführungseinheiten laufen insbesondere erneut redundant.
Neben dem bereits genannten Timer-Interrupt kann auch ein Zustande- oder
Ereignisinterrupt eingesetzt werden, um den genannten Betriebsmoduswechsel vom zweiten in den ersten Betriebsmodus zu bewerkstelligen. Dabei kann ein bestimmter Zustand der Ausführungseinheiten beispielsweise einen hochprioren Interrupt auslösen, der dann für beide Ausführungseinheiten Gültigkeit hat. Dies kann beispielsweise ein durch die Abarbeitung der Programme im ROM 180 generierter Zustand in einer CPU sein, die eine solch hochpriore Unterbrechungsanforderung, die auch für die zweite CPU gilt, auslöst. Ebenso kann ein Ereignis, insbesondere auch ein von extern der Prozessoreinheit zugeführtes Ereignis einen solchen Interrupt und damit den Betriebsmoduswechsel auslösen. Bevorzugt ist die erste Variante mit dem Timerinterrupt, aber der Zustands- oder Ereignisinterrupt, wie beschrieben, ist ebenfalls denkbar und hiermit offenbart.
Damit ist entsprechend der Aufgabe eine optimierte Umschaltung zwischen zwei Betriebsmodi einer Prozessoreinheit mit zwei integrierten Ausführungseinheiten erfindungsgemäß dargestellt, wobei das konkrete Ausführungsbeispiel nicht begrenzend im Hinblick auf die Grundideen des erfindungsgemäßen Gegenstandes wirken kann.

Claims

Ansprüche
1. Prozessoreinheit mit wenigstens zwei Ausführungseinheiten, wobei Umschaltmittel enthalten sind durch welche zwischen wenigstens zwei Betriebsmodi der Prozessoreinheit umgeschalten werden kann, dadurch gekennzeichnet, dass die Umschaltmittel derart ausgestaltet sind, dass ein Wechsel von einem ersten Betriebsmodus in einen zweiten Betriebsmodus dadurch ausgelöst wird, dass durch die Prozessoreinheit auf eine vorgegebene Speicheradresse zugegriffen wird.
2. Prozessoreinheit nach Anspruch 1, dadurch gekennzeichnet, dass der erste Betriebsmodus einem Sicherheitsmodus entspricht, bei dem die zwei Ausführungseinheiten gleiche Programme abarbeiten und Vergleichsmittel vorgesehen sind, welche die bei der Abarbeitung der gleichen Programme entstehenden Zustände der Ausführungseinheiten auf Übereinstimmung vergleichen.
3. Prozessoreinheit nach Anspruch 2, dadurch gekennzeichnet, dass die Ausführungseinheiten derart ausgebildet sind, dass diese im ersten Betriebsmodus die gleichen Programme synchron abarbeiten.
4. Prozessoreinheit nach Anspruch 1, mit wenigstens drei getrennten Speicherbereichen, wobei in dem ersten Betriebsmodus jede Ausführungseinheit jeweils mit einem jeder Ausführungseinheit zugeordneten ersten Speicherbereich in Verbindung steht.
5. Prozessoreinheit nach Anspruch 1, mit wenigstens zwei getrennten
Speicherbereichen, wobei in dem zweiten Betriebsmodus beide Ausführungseinheiten nur mit einem, beiden Ausführungseinheiten zugeordneten zweiten Speicherbereich in Verbindung stehen.
6. Prozessoreinheit nach Anspruch 1 und 5, dadurch gekennzeichnet, dass die vorgegebene Speicheradresse auf die zugegriffen werden soll in dem zweiten Speicherbereich lokalisiert ist.
7. Prozessoreinheit nach Anspruch 1, mit wenigstens zwei getrennten
Speicherbereichen, wobei in dem ersten Betriebsmodus beide Ausführungseinheiten nur mit einem, beiden Ausführungseinheiten zugeordneten ersten Speicherbereich in Verbindung stehen.
8. Prozessoreinheit nach Anspruch 1 und 7, dadurch gekennzeichnet, dass die vorgegebene Speicheradresse als Triggeradresse im ersten Speicherbereich enthalten ist und die folgende Adresse auf die zugegriffen werden soll in dem zweiten Speicherbereich enthalten ist.
9. Prozessoreinheit nach Anspruch 1 und 5, dadurch gekennzeichnet, dass
Überwachungsmittel, insbesondere die Umschaltmittel, vorgesehen sind, welche derart zur Überwachung ausgebildet sind, dass die Auswertemittel im zweiten Betriebsmodus nur mit dem zweiten Speicherbereich in Verbindung stehen.
10. Prozessoreinheit nach Anspruch 1 und 4, dadurch gekennzeichnet, dass
Überwachungsmittel, insbesondere die Umschaltmittel, vorgesehen sind, welche derart zur Überwachung ausgebildet sind, dass die Auswertemittel im ersten Betriebsmodus nur jeweils mit dem ersten Speicherbereich in Verbindung stehen.
11. Prozessoreinheit nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass jeder der
Speicherbereiche in einem getrennten Speicherbaustein vorgesehen ist.
12. Prozessoreinheit nach Anspruch 2, dadurch gekennzeichnet, dass die Vergleichsmittel bei Übergang in den zweiten Betriebsmodus, der einem Leistungsmodus entspricht außer Funktion gesetzt werden und ein Vergleich der Zustände nur im ersten
Betriebsmodus erfolgt.
13. Prozessoreinheit nach Anspruch 1, dadurch gekennzeichnet, dass Unterbrechungsmittel enthalten sind, welche derart ausgebildet sind, dass diese eine Rückkehr in den ersten Betriebsmodus durch eine Unterbrechungsanforderung ermöglichen.
14. Prozessoreinheit nach Anspruch 13, dadurch gekennzeichnet, dass die Unterbrechungsanforderung durch eine Zeitbedingung ausgelöst wird.
15. Prozessoreinheit nach Anspruch 13, dadurch gekennzeichnet, dass die Unterbrechungsanforderung durch eine Zustandsbedingung ausgelöst wird.
16. Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit mit wenigstens zwei Ausführungseinheiten dadurch gekennzeichnet, dass ein Wechsel von einem ersten Betriebsmodus in einen zweiten Betriebsmodus dadurch ausgelöst wird, dass durch die Prozessoreinheit auf eine vorgegebene Speicheradresse zugegriffen wird.
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass die
Ausführungseinheiten im ersten Betriebsmodus die gleichen Programme synchron abarbeiten.
18. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass in beiden Betriebsmodi verschiedene Programme abgearbeitet werden, wobei im ersten Betriebsmodus sicherheitskritische Programme redundant von beiden Ausführungseinheiten und im zweiten
Betriebsmodus nicht sicherheitskritische Programme abgearbeitet werden.
19. Verfahren nach Anspruch 18, dadurch gekennzeichnet, dass die sicherheitskritischen Programme redundant in den Ausführungseinheiten jeweils zugeordneten ersten Speicherbereichen abgelegt sind.
20. Verfahren nach Anspruch 18, dadurch gekennzeichnet, dass die nicht sicherheitskritischen Programme in einem einzigen zweiten Speicherbereich abgelegt sind und beide Ausführungseinheiten im zweiten Betriebsmodus nur auf den zweiten Speicherbereich zugreifen.
21. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass im ersten Betriebsmodus sicherheitskritische Programme redundant abgearbeitet werden und die dabei entstehenden Zustände auf Übereinstimmung verglichen werden-
22. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass in dem ersten Betriebsmodus von den Ausführungseinheiten jeweils nur auf einen jeder Ausführungseinheit zugeordneten ersten Speicherbereich zugegriffen wird.
23. Verfahren nach Anspruch 16, mit wenigstens zwei getrennten Speicherbereichen, wobei in dem ersten Betriebsmodus beide Ausführungseinheiten nur auf einen beiden Ausführungseinheiten zugeordneten ersten Speicherbereich zugreifen.
24. Verfahren nach Anspruch 16 und 23, dadurch gekennzeichnet, dass die vorgegebene Speicheradresse als Triggeradresse im ersten Speicherbereich enthalten ist und die folgende Adresse auf die zugegriffen werden soll in dem zweiten Speicherbereich enthalten ist.
25. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass in dem zweiten
Betriebsmodus von beiden Ausführungseinheiten nur auf einen, beiden Ausführungseinheiten zugeordneten zweiten Speicherbereich zugegriffen wird.
26. Verfahren nach Anspruch 16 und 25, dadurch gekennzeichnet, dass überwacht wird, dass die Auswertemittel im zweiten Betriebsmodus nur auf den zweiten Speicherbereich zugreifen.
27. Verfahren nach Anspruch 16 und 22 oder 23, dadurch gekennzeichnet, dass überwacht wird, dass die Auswertemittel im ersten Betriebsmodus nur auf den ersten Speicherbereich zugreifen.
28. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass eine Umschaltung von dem zweiten Betriebsmodus in den ersten Betriebsmodus durch eine Unterbrechungsanforderung erfolgt, wobei die Unterbrechungsanforderung durch eine Zeitbedingung oder eine Zustandsbedingung ausgelöst wird.
EP04738748A 2003-06-24 2004-06-22 Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit Ceased EP1639454A2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10328208 2003-06-24
DE10332700A DE10332700A1 (de) 2003-06-24 2003-07-18 Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit
PCT/DE2004/001299 WO2005003962A2 (de) 2003-06-24 2004-06-22 Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit

Publications (1)

Publication Number Publication Date
EP1639454A2 true EP1639454A2 (de) 2006-03-29

Family

ID=33566007

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04738748A Ceased EP1639454A2 (de) 2003-06-24 2004-06-22 Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit

Country Status (7)

Country Link
US (1) US20070277023A1 (de)
EP (1) EP1639454A2 (de)
JP (1) JP4232987B2 (de)
KR (1) KR20060026884A (de)
BR (1) BRPI0411824A (de)
RU (1) RU2006101719A (de)
WO (1) WO2005003962A2 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10349581A1 (de) * 2003-10-24 2005-05-25 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit
DE102005037213A1 (de) * 2004-10-25 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung zwischen Betriebsmodi eines Multiprozessorsystems durch wenigstens ein externes Signal
US8090983B2 (en) 2004-10-25 2012-01-03 Robert Bosch Gmbh Method and device for performing switchover operations in a computer system having at least two execution units
ATE409327T1 (de) * 2004-10-25 2008-10-15 Bosch Gmbh Robert Verfahren und vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem
US20070011513A1 (en) * 2005-06-13 2007-01-11 Intel Corporation Selective activation of error mitigation based on bit level error count
DE102005037217A1 (de) 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zum Vergleich von Daten bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
DE102005037230A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
DE102005037233A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Datenverarbeitung
DE102005037248A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigsterns zwei Ausführungseinheiten
DE102005037215A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
DE102005037244A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten und mit wenigstens zwei Gruppen von internen Zuständen
DE102005037226A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch markieren von Registern
DE102005055067A1 (de) * 2005-11-18 2007-05-24 Robert Bosch Gmbh Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System
JP4784827B2 (ja) * 2006-06-06 2011-10-05 学校法人早稲田大学 ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ
DE102006048172A1 (de) * 2006-10-10 2008-04-17 Robert Bosch Gmbh Elektronisches System
DE102006048173A1 (de) * 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren zum Umschalten eines Systems mit mehreren Ausführungseinheiten
DE102006048174A1 (de) 2006-10-10 2008-04-17 Robert Bosch Gmbh Einspritzsystem und Verfahren zum Betreiben eines Einspritzsystems
US7941698B1 (en) * 2008-04-30 2011-05-10 Hewlett-Packard Development Company, L.P. Selective availability in processor systems
DE102008062594A1 (de) * 2008-12-16 2010-07-01 Diehl Aerospace Gmbh Mehrkanal-Kontrollermodul
US9594648B2 (en) * 2008-12-30 2017-03-14 Intel Corporation Controlling non-redundant execution in a redundant multithreading (RMT) processor
US9081688B2 (en) * 2008-12-30 2015-07-14 Intel Corporation Obtaining data for redundant multithreading (RMT) execution
JP2010198131A (ja) * 2009-02-23 2010-09-09 Renesas Electronics Corp プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法
US8375250B2 (en) * 2009-03-04 2013-02-12 Infineon Technologies Ag System and method for testing a module
EP2537091A4 (de) * 2010-02-16 2014-08-06 Freescale Semiconductor Inc Datenverarbeitungsverfahren, datenprozessor und vorrichtung mit einem datenprozessor
US9405637B2 (en) 2011-01-18 2016-08-02 Texas Instruments Incorporated Locking/unlocking CPUs to operate in safety mode or performance mode without rebooting
WO2012144043A1 (ja) * 2011-04-21 2012-10-26 ルネサスエレクトロニクス株式会社 半導体集積回路とその動作方法
WO2014080245A1 (en) 2012-11-22 2014-05-30 Freescale Semiconductor, Inc. Data processing device, method of execution error detection and integrated circuit
DE102013218814A1 (de) 2013-09-19 2015-03-19 Siemens Aktiengesellschaft Verfahren zum Betreiben eines sicherheitskritischen Systems
JP6090094B2 (ja) * 2013-10-02 2017-03-08 トヨタ自動車株式会社 情報処理装置
US9760446B2 (en) * 2014-06-11 2017-09-12 Micron Technology, Inc. Conveying value of implementing an integrated data management and protection system
US9823983B2 (en) 2014-09-25 2017-11-21 Nxp Usa, Inc. Electronic fault detection unit
US9658793B2 (en) * 2015-02-20 2017-05-23 Qualcomm Incorporated Adaptive mode translation lookaside buffer search and access fault
US9858201B2 (en) 2015-02-20 2018-01-02 Qualcomm Incorporated Selective translation lookaside buffer search and page fault
JP6378119B2 (ja) * 2015-03-16 2018-08-22 日立建機株式会社 制御コントローラ、ステアバイワイヤシステムおよび機械
US10063569B2 (en) * 2015-03-24 2018-08-28 Intel Corporation Custom protection against side channel attacks
US10002056B2 (en) 2015-09-15 2018-06-19 Texas Instruments Incorporated Integrated circuit chip with cores asymmetrically oriented with respect to each other
US9734006B2 (en) * 2015-09-18 2017-08-15 Nxp Usa, Inc. System and method for error detection in a critical system
RU2623883C1 (ru) * 2016-02-18 2017-06-29 Акционерное общество "Лаборатория Касперского" Способ выполнения инструкций в системной памяти
RU2634172C1 (ru) * 2016-06-02 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ передачи управления между адресными пространствами
JP6356736B2 (ja) * 2016-06-29 2018-07-11 ファナック株式会社 コントローラシステムおよび制御方法
EP3652037B1 (de) * 2017-07-13 2023-09-13 Danfoss Power Solutions II Technology A/S Elektromechanische steuerung
GB2579591B (en) 2018-12-04 2022-10-26 Imagination Tech Ltd Buffer checker
GB2579590B (en) 2018-12-04 2021-10-13 Imagination Tech Ltd Workload repetition redundancy

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754762A (en) * 1997-01-13 1998-05-19 Kuo; Chih-Cheng Secure multiple application IC card using interrupt instruction issued by operating system or application program to control operation flag that determines the operational mode of bi-modal CPU
DE19713192C2 (de) * 1997-03-27 2000-02-24 Rheinmetall Ind Ag Trägerfahrzeug für eine Rohrwaffe mit einer Abstützvorrichtung
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore
DE10136335B4 (de) * 2001-07-26 2007-03-22 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
JP4232987B2 (ja) 2009-03-04
KR20060026884A (ko) 2006-03-24
RU2006101719A (ru) 2007-07-27
BRPI0411824A (pt) 2006-08-08
US20070277023A1 (en) 2007-11-29
JP2007507015A (ja) 2007-03-22
WO2005003962A2 (de) 2005-01-13
WO2005003962A3 (de) 2006-01-26

Similar Documents

Publication Publication Date Title
WO2005003962A2 (de) Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit
DE10332700A1 (de) Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit
EP2550599B1 (de) Kontrollrechnersystem, verfahren zur steuerung eines kontrollrechnersystems, sowie verwendung eines kontrollrechnersystems
DE60019038T2 (de) Intelligente Fehlerverwaltung
EP1917592B1 (de) Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung
EP2193408B1 (de) Integriertes mikroprozessorsystem für sicherheitskritische regelungen
EP0976012B1 (de) Mikroprozessorsystem für sicherheitskritische regelungen
EP2079917B1 (de) Verfahren und vorrichtung zur überwachung einer funktionsfähigkeit einer motorsteuerung eines verbrennungsmotors
WO2012066108A1 (de) Mikroprozessorsystem mit fehlertoleranter architektur
DE10349581A1 (de) Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit
WO1999035543A1 (de) Elektronische, digitale einrichtung
EP0981783A1 (de) Mikroprozessorsystem für kfz-regelungssysteme
DE19509150C2 (de) Verfahren zum Steuern und Regeln von Fahrzeug-Bremsanlagen sowie Fahrzeug-Bremsanlage
EP1043641A2 (de) Fehlersicheres Automatisierungssystem mit Standard-CPU und Verfahren für ein fehlersicheres Automatisierungssystem
DE102007056218A1 (de) Verfahren zur Behandlung von transienten Fehlern in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen
WO2005045665A1 (de) Verfahren und vorrichtung zur operandenverarbeitung in einer prozessoreinheit
WO2017080793A2 (de) Verfahren zum betrieb eines mehrkernprozessors
DE102014011665A1 (de) System und Verfahren für DMA-Betrieb mit hoher Integrität
EP2228723B1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
EP3245591B1 (de) Sicherheitsrelevantes computersystem
EP1649373A2 (de) Verfahren und vorrichtung zur berwachung eines verteilten s ystems
EP1248965B1 (de) Verfahren zur verhinderung von fehlfunktionen in einem signalverarbeitenden system und prozessorsystem
DE102005037245A1 (de) Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten
EP3841439A1 (de) Automatisierungssystem zur überwachung eines sicherheitskritischen prozesses

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

PUAK Availability of information related to the publication of the international search report

Free format text: ORIGINAL CODE: 0009015

AK Designated contracting states

Kind code of ref document: A2

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

AX Request for extension of the european patent

Extension state: AL HR LT LV MK

17P Request for examination filed

Effective date: 20060726

RBV Designated contracting states (corrected)

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

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20120711

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20130309