EP1807761A1 - Verfahren und vorrichtung zur datenverteilung aus wenigstens einer datenquelle in einem mehrprozessorsystem - Google Patents
Verfahren und vorrichtung zur datenverteilung aus wenigstens einer datenquelle in einem mehrprozessorsystemInfo
- Publication number
- EP1807761A1 EP1807761A1 EP05801268A EP05801268A EP1807761A1 EP 1807761 A1 EP1807761 A1 EP 1807761A1 EP 05801268 A EP05801268 A EP 05801268A EP 05801268 A EP05801268 A EP 05801268A EP 1807761 A1 EP1807761 A1 EP 1807761A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- unit
- mode
- arithmetic units
- processor
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1695—Error detection or correction of the data by redundancy in hardware which are operating with time diversity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Definitions
- Computer systems for safety-critical applications in particular in the vehicle such as for anti-lock braking systems, the electronic stability program (ESP), X-by-wire systems such as drive-by-wire or steer-by-wire and break-by-wire, etc. or in other networked systems.
- ESP electronic stability program
- X-by-wire systems such as drive-by-wire or steer-by-wire and break-by-wire, etc. or in other networked systems.
- powerful error detection mechanisms and error handling mechanisms are required, in particular to counteract transient errors that arise, for example, in miniaturization of the semiconductor structures of the computer systems. It is relatively difficult to protect the core itself, so the processor.
- One solution to this is, as mentioned, the use of a dual-computer system or dual core system for fault detection.
- processors will be discussed below, which also includes cores or computing units conceptually. Description of the embodiments and advantages of the invention
- the erf ⁇ ndungswashe unit or the inventive method allows the implementation of the two modes in a two-processor system.
- the two processors operate in error detection mode (F mode)
- the two processors receive the same data / instructions and operate in performance mode (P mode), so each processor can access the memory. Then, this unit manages the accesses to the just-existing memory or
- the switching is triggered and / or displayed by a control signal, in particular a mode signal, which is related to the operating mode of at least one arithmetic unit, wherein the control signal is generated in particular externally relative to the arithmetic units.
- the data to be distributed are forwarded to at least one further component, in particular a computing unit, wherein the data to be distributed are extended before forwarding by an error detection code.
- the input data can be forwarded to at least one further component, in particular an arithmetic unit, wherein the input data is extended before forwarding by an error detection code.
- the output data may be forwarded to at least one other component, with the output data being extended by an error detection code before being forwarded.
- an error signal is advantageously output upon detection of an error due to the error detection code.
- an error signal is output only in the secure mode (F-mode).
- a delay component may be contained which, depending on a clock offset of the two arithmetic units in the respective operating mode, delays the leading data by precisely this clock offset.
- a system is provided with such a device according to the invention, further provided with an external monitoring unit to the unit, which detects errors if an intended switching of the operating modes does not occur. If the two-processor system is operated with a clock offset in F mode and not in P mode, the DVE unit delays the data for the slave accordingly or stores the output data of the master until it is compared with the output data of the slave for error detection can be.
- FIG. 1 shows a dual-computer system with a first computer 100, in particular one
- Data terminal DOl Data Out 1
- DO2 Data Out 2
- the data bus line 116C which is connected to computer 100 or computer 101 via a data connection Dil (Data In 1) and a data connection DI2 (Data In 2), respectively is.
- a component 104 is interposed, for example a data memory, in particular a secure data memory o. ⁇ . This component 104 is also supplied with the clock CLK in this example.
- the components 103 and 104 are representative of any components which are connected via a data bus and / or command bus to the computers of the dual-computer system and corresponding to the accesses via data and / or commands of the dual-processor system with respect to write operations and / or read operations erroneous data and / or commands receive or give away.
- error prevention are indeed
- Error detection generators 105, 106 and 107 are provided which generate an error detection such as a parity bit or other error code such as an error correction code, so ECC, o. ⁇ .. are also provided the corresponding Starbuckskennungsprüf healthyen or check Means 108 and 109 for checking the respective misrecognition, for example, the
- Parity bit or other error code such as ECC.
- Clock offset a computer here in particular computer 100 erroneous data and / or commands in components, in particular external components such. B. here in particular the memory 103 or 104, but also with respect to other participants or actuators or sensors write or read. Thus, it may also erroneously perform a write access instead of a designated read access by this clock offset.
- these scenarios lead to errors in the entire system, in particular without clear display possibility which data and / or commands have just been changed incorrectly, which also causes the recovery problem.
- a delay unit 102 is now connected as shown in the lines of the data bus and / or in the command bus. For reasons of clarity, only the activation in the data bus is shown.
- Delay the write and read operations delay only the write operations, or, although not preferred, delay the read operations. It can be converted by a change signal, in particular the error signal, a delayed write operation in a read operation to prevent erroneous writing.
- IllOpDetect Switching between the two modes is detected by the "Switch-Detect" units located between the cache and the processor on the instruction bus and looking to load the IUOp command into the processor.
- the Switch-Detect unit is unique to each processor, and the Switch-Detect unit does not need to be fault-tolerant because it is duplicated and redundant. On the other hand, it is conceivable to perform this unit fault-tolerant and thus singular, but preferred is the redundant design.
- ModeSwitch Switching between the two modes is triggered by the "Switch-Detect" unit.If switching from Lock to Split mode, both "Switch-Detect” units will detect switching as both processors are the same Execute program code in Lock mode. The "" switch Detect '"unit of processor 1 detects this 1.5 clocks before the" Switch-Detect "unit of processor 2.
- The""Modeswitch'" unit halts processor 2 by 2 clocks with the help of the wait signal 2 is also stopped 1.5 clocks later, but only half a clock to synchronize to the system clock, then the status signal is split for the other components, and the two processors continue to work To run tasks, they must diverge in program code, which is done by having read access to the processor ID immediately after switching to split mode This read processor ID is different for each of the two processors, and now becomes a target processor ID, you can then use a Conditional Jump command to move the corresponding processor to a different program location, or switch from split mode to Lo ck mode, this will notice a processor, or one of the two first. This processor will execute program code containing the switchover command. This is now registered by the "Switch-Detect" unit and shares the mode switch
- both "Switch-Detect" units must notify the Modeswitch unit that they want to switch to split mode, and if the changeover request is only from one unit, the error is detected by the comparison units These continue to receive data from one of the two processors and they do not match the stopped processors.
- the two processors are in split mode and one does not switch back to lock mode, this can be detected by an external watchdog.
- the watchdog Upon a trigger signal for each processor, the watchdog notices that the waiting processor is no longer reporting. If there is only one watchdog signal for the processor system, then the triggering of the watchdog must only take place in lock mode. Thus, the Watchdog detect that the mode switch was not made.
- the mode signal is available as a dual-rail signal. Where "UO" is the lock mode and " ⁇ 01" is the split mode. Errors have occurred with "W and" ⁇ 11 "'.
- the reloading of the two caches of the processors are controlled by 2 state machines.
- processor 1 has the higher priority. After a access to the main memory by processor 1 gets now - if both processors want to access the main memory again ⁇ processor2 assigned the memory access permission. These two state machines are implemented for each processor. In lock mode, the output signals of the machines are compared to detect any errors.
- the data for updating the cache 2 in lock mode are delayed by 1.5 cycles in the IRAM control unit.
- Control a flag table built. This indicates whether a cache line was written in lock or split mode. In lock mode, the cache line entry value is set to 0 on a cache line reload, and in split mode, even if the cache line is cached from a single cache, to 1. If the processor now executes a memory access in lock mode, then checks if this cache line has been updated in lock mode, ie is the same in both caches. in the
- Processor 1 coordinates the memory accesses.
- the DVE consists of the detection of the switching request (IllOPDetect) of the ModeSwitch unit and the Iram and DramControl.
- the core of the invention is the general mode of operation of the data distribution unit DVE (different data allocation depending on the mode and thus also selection of the operating mode).
- the illustrated special implementation of the DVE solves the task mentioned at the beginning.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
Einheit und Verfahren zur Datenverteilung aus wenigstens einer Datenquelle in einem System mit wenigstens zwei Recheneinheiten, wobei Umschaltmittel enthalten sind durch welche zwischen wenigstens zwei Betriebsmodi des Systems umgeschalten werden kann, wobei die Datenverteilung und/oder eine Auswahl einer Datenquelle abhängig von dem Betriebsmodus ist.
Description
VERFAHREN UND VORRICHTUNG ZUR DATENVERTEILUNG AUS WENIGSTENS EINER DATENQUELLE IN EINEM MΞHRPROZESSORSYSTEM
Stand der Technik
In technischen Anwendungen, wie insbesondere im Kraftfahrzeug oder im
Industriegüterbereich also z.B. Maschinenbereich und in der Automatisierung werden ständig mehr und mehr mikroprozessor- oder rechnerbasierte Steuerungs- und Regelungssysteme für sicherheitskritische Anwendungen eingesetzt. Dabei sind Zweirechnersysteme oder Zweiprozessorsysteme (Dual Cores) heutzutage gängige
Rechnersysteme für sicherheitskritische Anwendungen, insbesondere im Fahrzeug wie beispielsweise für Antiblockiersysteme, das Elektronische Stabilitätsprogramm (ESP), X- by-Wire-Systeme wie Drive-by-Wire oder Steer-by-Wire sowie Break-by-Wire, usw. oder auch bei sonstigen vernetzten Systemen. Um diese hohen Sicherheitsansprüche in zukünftigen Anwendungen zu befriedigen, sind mächtige Fehlererkennungsmechanismen und Fehlerbehandlungsmechanismen erforderlich, insbesondere um transienten Fehler, die beispielsweise bei Verkleinerung der Halbleiterstrukturen der Rechnersysteme entstehen, zu begegnen. Dabei ist es relativ schwierig den Core selbst, also den Prozessor zu schützen. Eine Lösung hierfür ist wie erwähnt die Verwendung eines Zweirechnersystems oder Dual Core-Systems zur Fehlerdetektion.
Solche Prozessoreinheiten mit wenigstens zwei integrierten Ausführungseinheiten sind somit 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 Cores 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 oder auch Fehlererkennungsmodus bezeichnet.
Heutzutage gibt es somit einerseits Zwei- oder Mehrprozessorsysteme die zur Erkennung von Hardware-Fehlern redundant arbeiten (siehe Dual-Core oder Master-Checker- Systeme) und anderseits Zwei- oder Mehrprozessorsysteme, die auf ihren Prozessoren unterschiedliche Daten abarbeiten. Kombiniert man nun diese beiden Betriebsarten in einem Zwei- oder Mehrprozessorsystem (der Einfachheit halber wird nun nur noch von einem Zweiprozessorsystem gesprochen, die nachfolgende Erfindung ist aber genauso auf Mehrprozessorsystemen anwendbar), so müssen die beiden Prozessoren im Performance- Modus unterschiedliche Daten erhalten und im Fehlererkennungsmodus die gleichen Daten.
Die Aufgabe der Erfindung ist nun eine Einheit und eine Verfahren vorzustellen, die den wenigstens beiden Prozessoren abhängig vom Modus die Instruktionen/ Daten redundant oder unterschiedlich liefert und insbesondere im Performance-Modus die Speicherzugriffsrechte aufteilt.
Solch eine Einheit ist bis jetzt noch nicht bekannt. Sie ermöglicht den effektiven Betrieb eines Zweiprozessorsystems, so dass in den beiden Modi Sicherheit und Performance im Betrieb umgeschaltet werden kann. Dabei wird im weiteren von Prozessoren gesprochen, was aber ebenso Cores bzw. Recheneinheiten begrifflich einschließt.
Beschreibung der Ausführungsbeispiele und Vorteile der Erfindung
Somit geht die Erfindung vorteilhafter Weise von einer Einheit zur Datenverteilung aus wenigstens einer Datenquelle in einem System mit wenigstens zwei Recheneinheiten aus, wobei Umschaltmittel (ModeSwitch) enthalten sind durch welche zwischen wenigstens zwei Betriebsmodi des Systems umgeschalten werden kann, wobei die Einheit derart ausgestaltet ist, dass die Datenverteilung und/oder die Datenquelle abhängig von dem Betriebsmodus ist. Gleichermaßen ist ein System mit einer solchen Einheit gezeigt.
Ebenso zeigt die Erfindung ein entsprechendes Verfahren zur Datenverteilung aus wenigstens einer Datenquelle in einem System mit wenigstens zwei Recheneinheiten, wobei Umschaltmittel enthalten sind durch welche zwischen wenigstens zwei Betriebsmodi des Systems umgeschalten werden kann, wobei die Datenverteilung und/oder eine Auswahl einer Datenquelle (insbesondere Instr.Speicher, Datenspeicher, Cache) abhängig von dem Betriebsmodus ist.
Dabei entspricht der erste Betriebsmodus einem Sicherheitsmodus, bei dem die zwei Recheneinheiten gleiche Programme und/oder Daten abarbeiten und Vergleichsmittel vorgesehen sind, welche die bei der Abarbeitung der gleichen Programme entstehenden Zustände auf Übereinstimmung vergleichen
Die erfϊndungsgemäße Einheit bzw. das erfindungsgemäße Verfahren ermöglicht die Implementierung der beiden Modi in einem Zweiprozessorsystem.
Arbeiten die beiden Prozessoren im Fehlererkennungsmodus (F-Modus), so erhalten die beiden Prozessoren die gleichen Daten/Instruktionen und arbeiten sie im Performancemodus (P-Modus), so kann jeder Prozessor auf den Speicher zugreifen. Dann verwaltet diese Einheit die Zugriffe auf den nur einfach vorhandenen Speicher oder
Peripherie.
Im F-Modus übernimmt die Einheit die Daten/Adressen eines Prozessors (hier Master genannt) und leitet diese an die Komponenten wie Speicher, Bus, usw. weiter. Der zweite Prozessor (hier Slave) möchte den gleichen Zugriff machen. Die Datenverteilungseinheit
- A -
nimmt dies an einem zweiten Port entgegen, aber leitet die Anfrage nicht an die weiteren Komponenten weiter. Die Datenverteilungseinheit übergibt dem Slave die gleichen Daten wie dem Master und vergleicht die Daten der beiden Prozessoren. Sind diese unterschiedlich, so zeigt dies die Datenverteilungseinheit (hier DVE) durch ein Fehlersignal an. Es arbeitet somit nur der Master auf den Bus/Speicher und der Slave bekommt die selben Daten (Funktionsweise wie bei einem Dual-Core System).
Im P-Modus arbeiten die beiden Prozessoren unterschiedliche Programmteile ab. Die Speicherzugriffe sind somit auch unterschiedlich. Die DVE nimmt somit die Anforderung der Prozessoren entgegen und gibt die Ergebnisse/angeforderte Daten an den Prozessor zurück, der sie angefordert hat. Möchten nun beide Prozessoren gleichzeitig auf eine Komponenten zugreifen, so wird ein Prozessor in einen Wartezustand versetzt, bis der andere bedient wurde.
Die Umschaltung zwischen den beiden Modi und somit der unterschiedlichen
Arbeitsweise der Datenverteilungseinheit erfolgt durch ein Steuersignal. Dies kann entweder von einem der beiden Prozessoren generiert werden oder extern.
Vorteilhafter Weise wird die Umschaltung durch ein Steuersignal, insbesondere ein Modussignal, das auf den Betriebsmodus wenigstens einer Recheneinheit bezogen ist, ausgelöst und/oder angezeigt, wobei das Steuersignal insbesondere extern bezogen auf die Recheneinheiten generiert wird.
Weiterhin ist zweckmäßig, dass die Umschaltung durch einen Befehl, insbesondere einen Befehl, der eine unzulässige Aktion beschreibt (illOp) ausgelöst und/oder angezeigt wird, wobei der Befehl von dem Umschaltmittel, insbesondere der Mode-Switch Einheit, generiert wird.
Vorteilhafter Weise werden Eingangsdaten der beiden Recheneinheiten in einem Betriebsmodus, der einem Sicherheitsmodus entspricht (F-Modus) gegeneinannder auf
Übereinstimmung verglichen und/oder auch Ausgangsdaten der beiden Recheneinheiten in einem Betriebsmodus, der einem Sicherheitsmodus entspricht (F-Modus) gegeneinannder auf Übereinstimmung verglichen.
Zweckmäßiger Weise werden die zu verteilenden Daten an wenigstens eine weitere Komponente, insbesondere eine Recheneinheit, weitergeleitet, wobei die zu verteilenden Daten vor Weiterleitung um einen Fehlerentdeckungscode erweitert werden. Ebenso können die die Eingangsdaten an wenigstens eine weitere Komponente, insbesondere eine Recheneinheit, weitergeleitet werden, wobei die Eingangsdaten vor Weiterleitung um einen Fehlerentdeckungscode erweitert werden. Gleichermaßen können die Ausgangsdaten an wenigstens eine weitere Komponente weitergeleitet werden, wobei die Ausgangsdaten vor Weiterleitung um einen Fehlerentdeckungscode erweitert werden. Für all diese Fälle wird vorteilhafter Weise bei Entdeckung eines Fehlers auf Grund des Fehlerentdeckungscodes ein Fehlersignal ausgegeben. Wobei in einer Ausführungsform ein Fehlersignal nur im Sicherheitsmodus (F-Modus) ausgegeben wird.
Grundsätzlich kann vorteilhaft zwischen einem Performanzmodus und einem Sicherheitsmodus unterschieden werden und im Performanzmodus eine Priorisierung der Daten der beiden Recheneinheiten vorgenommen werden und diese Daten können sequentiell in Abhängigkeit von der Priorisierung entgegengenommen und/oder weitergegeben werden.
Erfindungsgemäß kann eine Verzögerungskomponente enthalten sein, die abhängig von einem Taktversatz der beiden Recheneinheiten in dem jeweiligen Betriebsmodus die voreilenden Daten um eben diesen Taktversatz verzögert.
Vorteilhafter Weise werden die zu verteilenden Daten aus einem Speicher gelesen und dann an die Recheneinheiten verteilt.
Die Datenverteilung wird dabei zweckmäßiger Weise durch Zustandsautomaten gesteuert, wobei für jede Recheneinheit zwei Zustandsautomaten vorgesehen sind. Diese sind vorteilhaft als ein synchroner Zustandsautomat und ein asynchroner Zustandsautomat ausgestaltet.
Erfindungsgemäß ist ein System mit einer solchen Erfindungsgemäßen Einheit vorgesehen wobei weiterhin eine zu der Einheit externe Überwachungschaltung vorgesehen ist, welche auf Fehler erkennt wenn eine beabsichtigte Umschaltung der Betriebsmodi nicht erfolgt.
Wird das Zweiprozessorsystem im F-Modus mit einem Taktversatz betrieben und im P- Modus nicht, so verzögert die DVE — Einheit die Daten für den Slave entsprechend, bzw. speichert die Ausgangsdaten des Master solange, bis sie mit den Ausgangsdaten des Slave zur Fehlererkennung verglichen werden können.
Der Taktversatz wird anhand der Figur 1 näher erläutert:
Figur 1 zeigt ein Zweirechnersystem mit einem ersten Rechner 100, insbesondere einem
Masterrechner und einem zweiten Rechner 101, insbesondere einem Slave-Rechner. Das gesamte System wird dabei mit einem vorgebbaren Takt bzw. in vorgebbaren Taktzyklen (clock cycle) CLK betrieben. Über den Takteingang CLKl des Rechners 100 sowie über den Takteingang CLK2 des Rechners 101 wird diesem der Takt zugeführt. Bei diesem Zweirechnersystem ist darüber hinaus beispielhaft ein spezielles Merkmal zur
Fehlererkennung enthalten, in dem nämlich der erste Rechner 100 sowie der zweite Rechner 101 mit einem Zeitversatz, insbesondere einem vorgebbaren Zeitversatz bzw. einem vorgebbaren Taktversatz arbeiten. Dabei ist jede beliebige Zeit für einen Zeitversatz vorgebbar und auch jeder beliebige Takt bezüglich eines Versatzes der Taktzyklen. Dies kann ein ganzzahliger Versatz des Taktzyklus (clock cycle) sein, aber eben auch wie in diesem Beispiel dargestellt, beispielsweise ein Versatz von 1,5 Taktzyklen, wobei hier der erste Rechner 100 eben 1,5 Taktzyklen vor dem zweiten Rechner 101 arbeitet respektive betrieben wird. Durch diesen Versatz kann vermieden werden, dass Gleichtaktfehler, sogenannte common mode failures, die Rechner oder Prozessoren, also die Cores des Dual Cores Systems, gleichartig stören und damit unerkannt bleiben. D.h. solche Gleichtaktfehler betreffen durch den Versatz die Rechner zu unterschiedlichen Zeitpunkten im Programmablauf und bewirken demnach unterschiedliche Effekte bezüglich der beiden Rechner wodurch Fehler erkennbar werden. Gleichartige Fehlerwirkungen ohne Taktversatz wären u.U. in einem Vergleich nicht erkennbar, dies wird dadurch vermieden. Um diesen Versatz bezüglich der Zeit oder des Taktes, hier insbesondere 1,5 Taktzyklen im Zweirechnersystem zum implementieren sind die Versatzbausteine 112 bis 115 implementiert.
Um die genannten Gleichtaktfehler zu erkennen ist dieses System eben beispielsweise dazu ausgelegt in einem vorgegebenen Zeitversatz oder Taktzyklenversatz zu arbeiten, insbesondere hier 1,5 Taktzyklen, d.h. während der eine Rechner, z. B. Rechner 100 direkt die Komponenten, insbesondere die externen Komponenten 103 und 104 anspricht, arbeitet der zweite Rechner 101 mit einer Verzögerung von genau 1,5 Taktzyklen dazu.
Um in diesem Fall die gewünschte Eineinhalbzyklusverzögerung, also von 1,5 Taktzyklen zu erzeugen wird Rechner 101 mit der invertierten Clock, also dem invertierten Takt am Takteingang CLK2 gespeist. Dadurch müssen aber auch die vorgenannten Anschlüsse des Rechners also seine Daten bzw. Befehle über die Busse um die genannten Taktzyklen, also hier insbesondere 1,5 Taktzyklen verzögert werden, wozu eben wie gesagt die Versatz- oder Verzögerungsbausteine 112 bis 115 vorgesehen sind. Neben den beiden Rechnern oder Prozessoren 100 und 101 sind Komponenten 103 und 104 vorgesehen, die über Busse 116, bestehend aus den Busleitungen 116A und 116B und 116C sowie 117, bestehend aus den Busleitungen 117A und 117B mit den beiden Rechnern 100 und 101 in Verbindung stehen. 117 ist dabei ein Befehlsbus, bei welchem mit 117A ein Befehlsadressbus und mit 117B der Teil-Befehls(daten)bus bezeichnet ist. Der Adressbus 117A ist über einen Befehlsadressanschluss IAl (Instruction Adress 1) mit Rechner 100 und über einen Befehlsadressanschluss IA2 (Instruction Adress 2) mit Rechner 101 verbunden. Die Befehle selbst werden über den Teil-Befehlsbus 117B übertragen, der über einen Befehlsanschluss Il (Instruction 1) mit Rechner 100 und über einen Befehlsanschluss 12 (Instruction 2) mit Rechner 101 verbunden ist. In diesem Befehlsbus 117 bestehend aus 117A und 117B ist eine Komponente 103 z. B. ein Befehlsspeicher, insbesondere ein sicherer Befehlsspeicher oder dergleichen zwischengeschaltet. Auch diese Komponente, insbesondere als Befehlsspeicher wird in diesem Beispiel mit dem Takt CLK betrieben. Daneben ist mit 116 ein Datenbus dargestellt, welcher einen Datenadressbus oder eine Datenadressleitung 116A und einen Datenbus oder eine Datenleitung 116B enthält. Dabei ist 116A, also die Datenadressleitung, über einen Datenadressanschluss DAl (Data Adress 1) mit dem Rechner 100 und über einen Datenadressanschluss DA2 (Data Adress 2) mit Rechner 101 verbunden. Ebenso ist der Datenbus oder die Datenleitung 116B über einen
Datenanschluss DOl (Data Out 1) und einen Datenanschluss DO2 (Data Out 2) mit Rechner 100 bzw. Rechner 101 verbunden. Weiterhin zu Datenbus 116 gehört die Datenbusleitung 116C, welche über einen Datenanschluss Dil (Data In 1) und einen Datenanschluss DI2 (Data In 2) jeweils mit Rechner 100 bzw. Rechner 101 verbunden
ist. In diesem Datenbus 116 bestehend aus den Leitungen 116A, 116B und 116C ist eine Komponente 104 zwischengeschaltet, beispielsweise ein Datenspeicher, insbesondere ein sicherer Datenspeicher o. ä . Auch diese Komponente 104 wird in diesem Beispiel mit dem Takt CLK versorgt.
Dabei stehen die Komponenten 103 und 104 stellvertretend für beliebige Komponenten die über einen Datenbus und/oder Befehlsbus mit den Rechnern des Zweirechnersystems verbunden sind und entsprechend der Zugriffe über Daten und/oder Befehle des Zweirechnersystems bezüglich Schreiboperationen und/oder Leseoperationen fehlerhafte Daten und/oder Befehle erhalten oder abgeben können. Zur Fehlervermeidung sind zwar
Fehlerkennungsgeneratoren 105, 106 und 107 vorgesehen welche eine Fehlerkennung erzeugen wie beispielsweise ein Parity-Bit oder auch einen anderen Fehlercode wie beispielsweise einen Error- Correction-Code, also ECC, o. ä.. Dazu vorgesehen sind dann auch die entsprechenden Fehlerkennungsprüfeinrichtungen oder Check-Einrichtungen 108 und 109 zur Überprüfung der jeweiligen Fehlerkennung also beispielsweise des
Parity-Bit oder eines anderen Fehlercodes wie ECC.
Der Vergleich der Daten und/oder Befehle bezüglich der redundanten Ausführung im Zweirechnersystem erfolgt in den Vergleichern oder Komparatoren 110 und 111 wie in Figur 1 dargestellt. Existiert nun aber ein Zeitversatz, insbesondere ein Takt- oder
Taktzyklusversatz zwischen den Rechnern 100 und 101, entweder hervorgerufen durch ein nichtsynchrones Zweiprozessorsystem oder bei einem synchronen Zweiprozessorsystem durch Fehler in der Synchronisierung oder auch wie in diesem speziellen Beispiel durch einen zur Fehlererkennung gewünschten Zeit- bzw. Taktzyklusversatz, insbesondere hier von 1,5 Taktzyklen, so kann in diesem Zeit- oder
Taktversatz ein Rechner hier insbesondere Rechner 100 fehlerhafte Daten und/oder Befehle in Komponenten, insbesondere externe Komponenten wie z. B. hier insbesondere die Speicher 103 oder 104, aber auch bezüglich anderen Teilnehmern oder Aktuatoren oder Sensoren schreiben oder lesen. So kann er auch in fehlerhafter Weise einen Schreibzugriff anstatt eines vorgesehenen Lesezugriffs durch diesen Taktversatz durchführen. Diese Szenarien führen selbstverständlich zu Fehlern im gesamten System, insbesondere ohne klare Anzeigemöglichkeit welche Daten und/oder Befehle gerade fehlerhaft geändert wurden, wodurch auch die Recovery-Problematik entsteht.
Um diese Problematik zu lösen wird nun eine Verzögerungseinheit 102 wie dargestellt in die Leitungen des Datenbusses und/oder in den Befehlsbus geschaltet. Aus Gründen der Übersichtlichkeit ist nur die Einschaltung in den Datenbus dargestellt. Bezüglich des Befehlsbusses ist dies natürlich genauso möglich und denkbar. Diese Verzögerungseinheit 102 oder die Delay Unit verzögert die Zugriffe, hier insbesondere die Speicherzugriffe so, dass ein möglicher Zeit- oder Taktversatz kompensiert wird, insbesondere bei einer Fehlererkennung beispielsweise über die Komparatoren 110 und 111 z.B. mindestens solange, bis das Fehlersignal im Zweirechnersystem erzeugt ist, also die Fehlererkennung im Zweirechnersystem durchgeführt ist. Dabei können verschiedene Varianten implementiert sein:
Verzögerung der Schreib- und Leseoperationen, Verzögerung nur der Schreiboperationen oder auch, wenn auch nicht bevorzugt, eine Verzögerung der Leseoperationen. Dabei kann durch ein Änderungssignal, insbesondere das Fehlersignal, eine verzögerte Schreiboperation in eine Leseoperation gewandelt werden um fehlerhaftes Schreiben zu unterbinden.
Nachfolgend anhand Figur 2 nun eine beispielhafte Implementierung bezüglich der Datenverteilungseinheit (DVE), die sich vorzugsweise aus einer Vorrichtung zur Detektierung des Umschaltwunsches durch IllOPDetect, da der IllOP-Befehl (IHOP = Illegal Operation) in diesem Beispiel zur Umschaltung verwendet wird, der Mode-
Switch-Einheit sowie dem Iram- und Dram-Control-Baustein zusammensetzt:
IllOpDetect: Die Umschaltung zwischen den beiden Modi wird durch die Einheiten ""Switch-Detect"' erkannt. Diese Einheit liegt zwischen dem Cache und dem Prozessor auf dem Instruktionsbus und schaut ob der Befehl IUOp in den Prozessor geladen wird.
Wird der Befehl detektiert, so wird dieses Ereignis der Modeswitch Einheit mitgeteilt. Die ""Switch-Detect"' Einheit ist für jeden Prozessor einzeln vorhanden. Die Einheit ""Switch-Detect"' muss nicht fehlertolerant ausgeführt sein, da sie doppelt und somit redundant vorhanden ist. Andererseits ist es denkbar diese Einheit fehlertolerant und damit singulär auszuführen, bevorzugt ist aber die redundante Ausführung.
ModeSwitch: Die Umschaltung zwischen den beiden Modi wird durch die ""Switch- Detect'" Einheit getriggert. Soll eine Umschaltung vom Lock in den Split Modus erfolgen, detektieren beide ""Switch-Detect"' Einheiten die Umschaltung, da beide Prozessoren den gleichen Programmcode im Lock Modus abarbeiten. Die ""Switch-
Detect'" Einheit des Prozessor 1 erkennt dies 1,5 Takte vor der ""Switch-Detect"' Einheit des Prozessors 2. Die ""Modeswitch'" Einheit hält mit Hilfe des Wait Signals den Prozessor 1 um 2 Takte an. Der Prozessor 2 wird 1,5 Takte später ebenfalls angehalten, aber nur um einen halben Takt, damit er zum Systemtakt synchronisiert wird. Anschließend wird das Status-Signal auf Split geschaltet für die weiteren Komponenten und die beiden Prozessoren arbeiten weiter. Damit die beiden Prozessoren nun unterschiedliche Tasks ausführen, müssen sie im Programmcode auseinanderlaufen. Dies erfolgt, indem direkt nach Umschalten in den Split-Modus ein Lesezugriff auf die Prozessor-ID erfolgt. Diese ausgelesene Prozessor-ID ist für jeden der beiden Prozessoren unterschiedlich. Wird nun auf eine Soll-Prozessor-ID verglichen, kann anschließend mit einem Conditional Jump Befehl der entsprechende Prozessor an eine andere Programmstelle gebracht werden. Bei einer Umschaltung vom Split-Modus in den Lock-Modus wird dies ein Prozessor bemerken, bzw. einer der beiden zuerst. Dieser Prozessor wird Programmcode ausführen, in dem der Umschaltbefehl enthalten ist. Dies wird nun durch die ""Switch-Detect"' Einheit registriert und teilt dies der Modeswitch
Einheit mit. Diese hält den entsprechenden Prozessor an und teilt dem zweiten den Wunsch der Synchronisation durch einen Interrupt mit. Der zweite Prozessor erhält einen Interrupt und kann nun eine Softwareroutine zur Beendigung seines Tasks ausführen. Nun springt er ebenfalls an die Programmstelle, in der sich der Befehl zur Umschaltung befindet. Seine ""Switch-Detect"' Einheit signalisiert nun ebenfalls den Wunsch zum
Moduswechsel an die Modeswitch Einheit. Zur nächsten steigenden Systemtaktflanke wird nun das Wait Signal für den Prozessor 1 deaktiviert und 1,5 Takte später für den Prozessor 2. Nun arbeiten beide wieder mit einem Taktversatz von 1,5 Takten synchron.
Befindet sich das System im Lock Modus, so müssen beide ""Switch-Detect"' Einheiten der Modeswitch Einheit mitteilen, dass sie in den Split Modus wollen. Erfolgt der Umschaltwunsch nur von einer Einheit, so wird der Fehler von den Vergleichseinheiten erkannt, da diese von einem der beiden Prozessoren weiterhin Daten geliefert bekommen und diese nicht mit dem angehaltenen Prozessoren übereinstimmen.
Sind die beiden Prozessoren im Split Modus und einer schaltet nicht zurück in den Lock- Modus, so kann dies durch einen externen Watchdog erkannt werden. Bei einem Triggersignal für jeden Prozessor bemerkt der Watchdog dass der wartende Prozessor sich nicht mehr meldet. Ist nur ein Watchdogsignal für das Prozessorsystem vorhanden, so darf die Triggerung des Watchdogs nur im Lock-Modus erfolgen. Somit würde der
Watchdog erkennen, dass die Modusumschaltung nicht erfolgte. Das Modussignal liegt als Dual-Rail Signal vor. Dabei steht "UO"' für den Lock-Modus und "Λ01"' für den Split- Modus. Bei "W und "Λ 11"' sind Fehler aufgetreten.
IramControl: Der Zugriff auf den Befehlsspeicher der beiden Prozessoren wird über die IRAM Control gesteuert. Diese muss sicher ausgelegt sein, da sie ein Single Point of Failure ist. Sie besteht aus zwei Zustandsautomaten für jeden Prozessor, einen taktsynchronen iramlclkreset und einen asynchronen readiraml. Im sicherheitskritischen Modus überwachen sich die Zustandsautomaten der beiden Prozessoren gegenseitig und im Performancemodus arbeiten sie getrennt.
Das Nachladen der beiden Caches der Prozessoren werden durch 2 Zustandsautomaten gesteuert. Einem synchronen Zustandsautomaten iramclkreset und einem asynchronen readiram. Durch diese beiden Zustandsautomaten werden auch die Speicherzugriffe im
Split-Modus verteilt. Hierbei hat Prozessor 1 die höhere Priorität. Nach einem Zugrif auf den Hauptspeicher durch Prozessor 1 bekommt nun — wenn beide Prozessoren wieder auf den Hauptspeicher zugreifen wollen ~ Prozessor2 die Speicherzugriffserlaubnis zugeteilt. Diese beiden Zustandsautomaten sind für jeden Prozessor implementiert. Im Lock-Modus werden die Ausgangssignale der Automaten verglichen um auftretende Fehler erkennen zu können.
Die Daten zum Aktualisieren des Cache 2 im Lock-Modus werden in der IRAM-Control Einheit um 1,5 Takte verzögert.
In Bit 5 im Register 0 der SysControl wird codiert um welchen Core es sich handelt. Core 1 ist das Bit 0 und bei Core 2 ist es High. Dieses Register ist in den Speicherbereich mit der Adresse 65528 gespiegelt.
Bei einem Speicherzugriff von Core 2 wird erst überprüft in welchem Modus sich der
Rechner befindet. Ist er im Lock-Modus so wird sein Speicherzugriff unterdrückt. Dieses Signal liegt als Common-Rail Signal vor, da es sicherheitskritisch ist.
Der Programmcounter des Prozessors 1 wird um 1,5 Takte verzögert um im Lock-Modus mit dem Programmcounter des Prozessors 2 verglichen werden zu können.
Im Split Modus können die Caches der beiden Prozessoren unterschiedlich nachgeladen werden. Wenn nun in den Lock-Modus umgeschaltet wird, sind die beiden Caches nicht kohärent zueinander. Dadurch können die beiden Prozessoren auseinanderlaufen und die Vergleicher signalisieren folglich einen Fehler. Um dies zu vermeiden, ist in der IRAM
Control eine Flag Tabelle aufgebaut. In dieser wird vermerkt, ob eine Cachezeile im Lock- oder im Split-Modus geschrieben wurde. Im Lock-Modus wird der für die Cachezeile entsprechende Eintrag bei einer Cachezeilennachladung auf 0 gesetzt und im Split-Modus — auch bei einer Cacheaktualisierung der Cachezeile von nur einem Cache — auf 1. Führt der Prozessor nun im Lock-Modus einen Speicherzugriff aus, so wird überprüft, ob diese Cachezeile im Lock-Modus aktualisiert wurde, d.h. in beiden Caches gleich ist. Im
Split-Modus kann der Prozessor immer auf die Cachezeile zugreifen, unabhängig wie der Flag Vector ist. Diese Tabelle muss nur einmal vorhanden sein, da bei einem Fehler die beiden Prozessoren auseinanderlaufen und somit an den Vergleichern dieser Fehler sicher erkannt wird. Da die Zugriffszeiten auf der zentralen Tabelle relativ hoch sind, kann diese Tabelle auch zu jedem Cache kopiert werden.
DramControl: In dieser Komponente werden für die Adress-, Daten- und Speichersteuersignale von jedem Prozessor das Parity gebildet.
Es gibt einen Prozess für beide Prozessor zum Sperren des Speichers. Dieser Prozess muss nicht sicher implementiert sein, da im Lock-Modus fehlerhafte Speicherzugriffe durch die Vergleicher erkannt werden und im Split-Modus keine sicherheitsrelevanten Anwendungen ausgeführt werden. Hierin wird überprüft, ob der Prozessor den Speicher für den anderen Prozessor sperren möchte. Dieses Sperren des Datenspeichers erfolgt durch einen Zugriff auf die Speicheradresse $FBFF$=64511. Dieses Signal soll genau ein Takt lang anliegen, auch wenn am Prozessor zum Zeitpunkt des Aufrufens ein wait- command anliegt. Der Zustandsautomat zur Verwaltung der Datenspeicherzugriffe besteht aus 2 Hauptzuständen:
- Prozessorstatus Lock: Die beiden Prozessoren arbeiten im Lock-Modus. D.h. die Funktionalität des Datenspeicheriocking ist nicht notwendig. Prozessor 1 koordiniert die Speicherzugriffe.
- Prozessorstatus Split: Nun ist eine Zugriffskonfliktauflösung auf den Datenspeicher nötig und ein Speichersperren muss erfolgen können.
Der Zustand im Split-Modus ist wiederum in 7 Zustände untergliedert, die die Zugriffskonflikte auflösen und den
Datenspeicher für jeweils den anderen Prozessor sperren können. Bei gleichzeitigem Wunsch der beiden Prozessoren bei einem Zugriff, stellt die aufgeführte Reihenfolge gleichzeitig die Priorisierung dar.
- Corel \_Lock: Prozessor 1 hat den Datenspeicher gesperrt. Möchte in diesem Zustand Prozessor 2 auf den Speicher zugreifen, so wird er durch ein Wartesignal angehalten, bis Prozessor 1 den Datenspeicher wieder freigibt. \
- Core2\_Lock: Ist der gleiche Zustand wie der vorige nur dass nun Prozessor 2 den Datenspeicher gesperrt hat und Prozessor 1 bei Datenspeicheroperationen angehalten wird.
- lockl\_wait: Der Datenspeicher war durch den Prozessor 2 gesperrt als Prozessor 1 ihn ebenfalls für sich reservieren wollte. Prozessor 1 ist somit für die nächste
Speichersperrung vorgemerkt.
- nex: Das gleiche für Prozessor 2. Der Datenspeicher war während des Sperrversuchs durch Prozessor 1 gesperrt. Prozessor 2 bekommt den Speicher vorreserviert. Bei normalen Speicherzugriff ohne Sperren kann hier Prozessor 2 vor Prozessor 1 zugreifen wenn davor Prozessor 1 dran war.
- Speicherzugriff von Prozessor 1: Der Speicher ist in diesem Fall nicht gesperrt. Prozessor 1 darf auf den Datenspeicher zugreifen. Falls er ihn sperren möchte, kann er dies in diesem Zustand vornehmen.
- Speicherzugriff durch Prozessor 2. Im selben Takt wollte Prozessor 1 nicht auf den Speicher zugreifen somit ist der Speicher frei für den Prozessor 2.
- kein Prozessor möchte auf den Datenspeicher zugreifen
Die DVE setzt sich wie erwähnt zusammen aus dem Detektierung des Umschaltwunsches (IllOPDetect) der ModeSwitch-Einheit und der Iram- und DramControl.
Der Kern der Erfindung ist wie oben ausgeführt die generelle Funktionsweise der Datenverteilungseinheit DVE (je nach Modus unterschiedliche Datenzuteilung und somit auch Auswahl des Betriebsmodus).
Daneben löst aber auch die dargestellte spezielle Implementierung der DVE die Eingangs genannte Aufgabe.
Claims
1. Verfahren zur Datenverteilung aus wenigstens einer Datenquelle in einem System mit wenigstens zwei Recheneinheiten, wobei Umschaltmittel enthalten sind durch welche zwischen wenigstens zwei Betriebsmodi des Systems umgeschaltet werden kann, wobei die Datenverteilung und/oder eine Auswahl einer Datenquelle abhängig von dem Betriebsmodus ist.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Umschaltung durch ein Steuersignal, insbesondere ein Modussignal, das auf den Betriebsmodus wenigstens einer Recheneinheit bezogen ist, ausgelöst und/oder angezeigt wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass das Steuersignal extern bezogen auf die Recheneinheiten generiert wird.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Umschaltung durch einen Befehl, insbesondere einen Befehl, der eine unzulässige Aktion beschreibt (illOp) ausgelöst und/oder angezeigt wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass der Befehl von dem
Umschaltmittel, insbesondere der Mode-Switch Einheit, generiert wird.
6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass Eingangsdaten der beiden Recheneinheiten in einem Betriebsmodus, der einem Sicherheitsmodus entspricht (F-Modus) gegeneinannder auf Übereinstimmung verglichen werden.
7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass Ausgangsdaten der beiden Recheneinheiten in einem Betriebsmodus, der einem Sicherheitsmodus entspricht (F-Modus) gegeneinannder auf Übereinstimmung verglichen werden.
8. Verfahren nach Anspruch 1, dadurch gekennzeichent, dass die zu verteilenden Daten an wenigstens eine weitere Komponente, insbesondere eine Recheneinheit, weitergeleitet werden, wobei die zu verteilenden Daten vor Weiterleitung um einen Fehlerentdeckungscode erweitert werden.
9. Verfahren nach Anspruch 6, dadurch gekennzeichent, dass die Eingangsdaten an wenigstens eine weitere Komponente, insbesondere eine Recheneinheit, weitergeleitet werden, wobei die Eingangsdaten vor Weiterleitung um einen Fehlerentdeckungscode erweitert werden.
10. Verfahren nach Anspruch 7, dadurch gekennzeichent, dass die Ausgangsdaten an wenigstens eine weitere Komponente weitergeleitet werden, wobei die Ausgangsdaten vor Weiterleitung um einen Fehlerentdeckungscode erweitert werden.
11. Verfahren nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass bei fehlender
Übereinstimmung ein Fehlersignal ausgegeben wird.
12. Verfahren nach einem der Ansprüche 8 bis 10, dadurch gekennzeichnet, dass bei Entdeckung eines Fehlers auf Grund des Fehlerentdeckungscodes ein Fehlersignal ausgegeben wird.
13. Verfahren nach Anspruch 11 oder 12, dadurch gekennzeichnet, dass ein Fehlersignal nur im Sicherheitsmodus (F-Modus) ausgegeben wird.
14. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass zwischen einem
Performanzmodus und einem Sicherheitsmodus unterschieden wird und im Performanzmodus eine Priorisierung der Daten der beiden Recheneinheiten vorgenommen wird und diese Daten sequentiell in abhängigkeit von der Priorisierung entgegengenommen und/oder weitergegeben werden.
15. Einheit zur Datenverteilung aus wenigstens einer Datenquelle in einem System mit wenigstens zwei Recheneinheiten, wobei Umschaltmittel enthalten sind durch welche zwischen wenigstens zwei Betriebsmodi des Systems umgeschaltet werden kann, wobei die Einheit derart ausgestaltet ist, dass die Datenverteilung und/oder die Datenquelle abhängig von dem Betriebsmodus ist
16. Einheit zur Datenverteilung nach Anspruch 15, dadurch gekennzeichnet, dass der erste Betriebsmodus einem Sicherheitsmodus entspricht, bei dem die zwei Recheneinheiten gleiche Programme abarbeiten und Vergleichsmittel vorgesehen sind, welche die bei der Abarbeitung der gleichen Programme entstehenden Zustände auf Übereinstimmung vergleichen.
17. Einheit zur Datenverteilung nach Anspruch 15, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass Eingangsdaten der beiden Recheneinheiten in einem Betriebsmodus, der einem Sicherheitsmodus entspricht (F-Modus) gegeneinannder auf Übereinstimmung verglichen werden.
18. Einheit zur Datenverteilung nach Anspruch 15, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass Ausgangsdaten der beiden Recheneinheiten in einem Betriebsmodus, der einem Sicherheitsmodus entspricht (F-Modus) gegeneinannder auf Übereinstimmung verglichen werden.
19. Einheit zur Datenverteilung nach Anspruch 15 oder 17 oder 18, dadurch gekennzeichent, dass die Einheit derart ausgestaltet ist, dass die zu verteilenden Daten an wenigstens eine weitere Komponente, insbesondere eine Recheneinheit, weitergeleitet werden, wobei die zu verteilenden Daten vor Weiterleitung um einen Fehlerentdeckungscode erweitert werden.
20. Einheit zur Datenverteilung nach Anspruch 15, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass diese im Performanzmodus eine Priorisierung der Daten der beiden Recheneinheiten vornimmt und diese Daten sequentiell abhängig von der Priorisierung entgegennimmt und/oder weitergibt.
21. Einheit zur Datenverteilung nach Anspruch 15, dadruch gekennzeichnet, dass eine Verzögerungskomponente enthalten ist, die abhängig von einem Taktversatz der beiden Recheneinheiten in dem jeweiligen Betriebsmodus die voreilenden Daten um eben diesen Taktversatz verzögert.
22. Einheit zur Datenverteilung nach Anspruch 15, dadurch gekennuzeichnet, dass die Einheit derart ausgestaltet ist, dass diese die zu verteilenden Daten aus einem Speicher liest und diese dann an die Recheneinheiten verteilt.
23. Einheit zur Datenverteilung nach Anspruch 15, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass die Verteilung der Daten durch Zustandsautomaten gesteuert wird.
24. Einheit zur Datenverteilung nach Anspruch 23, dadurch gekennuzeichnet, dass die Einheit derart ausgestaltet ist, dass für jede Recheneinheit zwei Zustandsautomaten vorgesehen sind.
25. Einheit zur Datenverteilung nach Anspruch 23, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass ein synchroner Zustandsautomat und ein asynchroner Zustandsautomat.
26. System mit einer Einheit zur Datenverteilung nach einem der Ansprüche 15 bis 25.
27. System nach Anspruch 26, dadurch gekennzeichnet, das eine zu der Einheit externe Überwachungschaltung vorgesehen ist, welche auf Fehler erkennt wenn eine beabsichtigte Umschaltung der Betriebsmodi nicht erfolgt.
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE200410051992 DE102004051992A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems |
| DE102004051950A DE102004051950A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem |
| DE200410051937 DE102004051937A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem |
| DE200410051964 DE102004051964A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem |
| DE102004051952A DE102004051952A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem |
| PCT/EP2005/055532 WO2006045798A1 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur datenverteilung aus wenigstens einer datenquelle in einem mehrprozessorsystem |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP1807761A1 true EP1807761A1 (de) | 2007-07-18 |
Family
ID=35677569
Family Applications (5)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP05797084A Expired - Lifetime EP1810145B1 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem |
| EP05801268A Ceased EP1807761A1 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur datenverteilung aus wenigstens einer datenquelle in einem mehrprozessorsystem |
| EP05811008A Ceased EP1812861A1 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur verzögerung von zugriffen auf daten und/oder befehle eines mehrprozessorsystems |
| EP05811107A Withdrawn EP1820102A2 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur taktumschaltung bei einem mehrprozessorsystem |
| EP05801543A Expired - Lifetime EP1807763B1 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP05797084A Expired - Lifetime EP1810145B1 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem |
Family Applications After (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP05811008A Ceased EP1812861A1 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur verzögerung von zugriffen auf daten und/oder befehle eines mehrprozessorsystems |
| EP05811107A Withdrawn EP1820102A2 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur taktumschaltung bei einem mehrprozessorsystem |
| EP05801543A Expired - Lifetime EP1807763B1 (de) | 2004-10-25 | 2005-10-25 | Verfahren und vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem |
Country Status (8)
| Country | Link |
|---|---|
| US (4) | US7853819B2 (de) |
| EP (5) | EP1810145B1 (de) |
| JP (5) | JP2008518308A (de) |
| KR (4) | KR20070083772A (de) |
| AT (2) | ATE409327T1 (de) |
| DE (2) | DE502005005284D1 (de) |
| RU (1) | RU2007119316A (de) |
| WO (5) | WO2006045801A2 (de) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7882379B2 (en) * | 2006-09-22 | 2011-02-01 | Sony Computer Entertainment Inc. | Power consumption reduction in a multiprocessor system |
| US20080244305A1 (en) * | 2007-03-30 | 2008-10-02 | Texas Instruments Deutschland, Gmbh | Delayed lock-step cpu compare |
| DE102007063291A1 (de) * | 2007-12-27 | 2009-07-02 | Robert Bosch Gmbh | Sicherheitssteuerung |
| JP4633134B2 (ja) * | 2008-03-27 | 2011-02-16 | ルネサスエレクトロニクス株式会社 | マイクロコントローラ、制御システム及びマイクロコントローラの設計方法 |
| US7941698B1 (en) * | 2008-04-30 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Selective availability in processor systems |
| JP2010198131A (ja) * | 2009-02-23 | 2010-09-09 | Renesas Electronics Corp | プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法 |
| US8275977B2 (en) * | 2009-04-08 | 2012-09-25 | Freescale Semiconductor, Inc. | Debug signaling in a multiple processor data processing system |
| US8295287B2 (en) * | 2010-01-27 | 2012-10-23 | National Instruments Corporation | Network traffic shaping for reducing bus jitter on a real time controller |
| US8954714B2 (en) * | 2010-02-01 | 2015-02-10 | Altera Corporation | Processor with cycle offsets and delay lines to allow scheduling of instructions through time |
| WO2011101707A1 (en) * | 2010-02-16 | 2011-08-25 | Freescale Semiconductor, Inc. | Data processing method, data processor and apparatus including a data processor |
| KR101664108B1 (ko) | 2010-04-13 | 2016-10-11 | 삼성전자주식회사 | 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법 |
| JP5718600B2 (ja) * | 2010-09-10 | 2015-05-13 | 日本電気通信システム株式会社 | 情報処理システム、および、情報処理方法 |
| US8683251B2 (en) | 2010-10-15 | 2014-03-25 | International Business Machines Corporation | Determining redundancy of power feeds connecting a server to a power supply |
| JP5796311B2 (ja) | 2011-03-15 | 2015-10-21 | オムロン株式会社 | 制御装置およびシステムプログラム |
| WO2012144011A1 (ja) | 2011-04-18 | 2012-10-26 | 富士通株式会社 | スレッド処理方法、およびスレッド処理システム |
| US9086977B2 (en) * | 2011-04-19 | 2015-07-21 | Freescale Semiconductor, Inc. | Cache memory with dynamic lockstep support |
| US9842014B2 (en) | 2012-11-22 | 2017-12-12 | Nxp Usa, Inc. | Data processing device, method of execution error detection and integrated circuit |
| US9429981B2 (en) * | 2013-03-05 | 2016-08-30 | St-Ericsson Sa | CPU current ripple and OCV effect mitigation |
| US9823983B2 (en) | 2014-09-25 | 2017-11-21 | Nxp Usa, Inc. | Electronic fault detection unit |
| WO2016087175A1 (de) * | 2014-12-01 | 2016-06-09 | Continental Teves Ag & Co. Ohg | Rechensystem für ein kraftfahrzeugsystem |
| JP6516097B2 (ja) * | 2015-06-11 | 2019-05-22 | 大日本印刷株式会社 | 演算装置、icカード、演算方法、及び演算処理プログラム |
| JP2019061392A (ja) | 2017-09-26 | 2019-04-18 | ルネサスエレクトロニクス株式会社 | マイクロコントローラ及びマイクロコントローラの制御方法 |
| US10528077B2 (en) * | 2017-11-21 | 2020-01-07 | The Boeing Company | Instruction processing alignment system |
| US10642826B1 (en) | 2018-08-30 | 2020-05-05 | Gravic, Inc. | Mixed-mode method for combining active/active and validation architectures utilizing a check integrity module |
| US11269799B2 (en) * | 2019-05-03 | 2022-03-08 | Arm Limited | Cluster of processing elements having split mode and lock mode |
| US11899547B2 (en) * | 2021-11-30 | 2024-02-13 | Mellanox Technologies, Ltd. | Transaction based fault tolerant computing system |
| CN114297105B (zh) * | 2021-12-29 | 2024-04-05 | 合肥市芯海电子科技有限公司 | 一种直接存储器访问的嵌入式控制电路、芯片和电子设备 |
| US12032460B2 (en) * | 2022-02-11 | 2024-07-09 | Stmicroelectronics S.R.L. | Systems and methods to test an asynchronous finite machine |
| EP4496228A4 (de) * | 2022-03-14 | 2026-01-21 | Hitachi Information & Telecommunication Eng Ltd | Verarbeitungsvorrichtung und fehlererkennungsverfahren |
| GB2641390A (en) * | 2024-05-30 | 2025-12-03 | Imagination Tech Ltd | Split lock architecture of multi-core processor |
Family Cites Families (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE1269827B (de) * | 1965-09-09 | 1968-06-06 | Siemens Ag | Verfahren und Zusatzeinrichtung zur Synchronisierung von parallel arbeitenden Datenverarbeitungsanlagen |
| US3783250A (en) * | 1972-02-25 | 1974-01-01 | Nasa | Adaptive voting computer system |
| US4823256A (en) * | 1984-06-22 | 1989-04-18 | American Telephone And Telegraph Company, At&T Bell Laboratories | Reconfigurable dual processor system |
| AU616213B2 (en) * | 1987-11-09 | 1991-10-24 | Tandem Computers Incorporated | Method and apparatus for synchronizing a plurality of processors |
| US6038584A (en) * | 1989-11-17 | 2000-03-14 | Texas Instruments Incorporated | Synchronized MIMD multi-processing system and method of operation |
| US5226152A (en) * | 1990-12-07 | 1993-07-06 | Motorola, Inc. | Functional lockstep arrangement for redundant processors |
| DE4104114C2 (de) * | 1991-02-11 | 2000-06-08 | Siemens Ag | Redundantes Datenverarbeitungssystem |
| JPH05128080A (ja) * | 1991-10-14 | 1993-05-25 | Mitsubishi Electric Corp | 情報処理装置 |
| US5751932A (en) | 1992-12-17 | 1998-05-12 | Tandem Computers Incorporated | Fail-fast, fail-functional, fault-tolerant multiprocessor system |
| JPH07121483A (ja) | 1993-10-28 | 1995-05-12 | Nec Eng Ltd | 共有メモリアクセス制御回路 |
| US5758132A (en) | 1995-03-29 | 1998-05-26 | Telefonaktiebolaget Lm Ericsson | Clock control system and method using circuitry operating at lower clock frequency for selecting and synchronizing the switching of higher frequency clock signals |
| CA2178440A1 (en) | 1995-06-07 | 1996-12-08 | Robert W. Horst | Fail-fast, fail-functional, fault-tolerant multiprocessor system |
| JPH096733A (ja) * | 1995-06-14 | 1997-01-10 | Toshiba Corp | 並列信号処理装置 |
| JPH0973436A (ja) * | 1995-09-05 | 1997-03-18 | Mitsubishi Electric Corp | 多重化計算機における動作モード切替方式 |
| US5732209A (en) * | 1995-11-29 | 1998-03-24 | Exponential Technology, Inc. | Self-testing multi-processor die with internal compare points |
| US5809522A (en) * | 1995-12-18 | 1998-09-15 | Advanced Micro Devices, Inc. | Microprocessor system with process identification tag entries to reduce cache flushing after a context switch |
| FR2748136B1 (fr) * | 1996-04-30 | 1998-07-31 | Sextant Avionique | Module electronique avec architecture redondante pour controle d'integrite du fonctionnement |
| GB2317032A (en) * | 1996-09-07 | 1998-03-11 | Motorola Gmbh | Microprocessor fail-safe system |
| GB9704542D0 (en) * | 1997-03-05 | 1997-04-23 | Sgs Thomson Microelectronics | A cache coherency mechanism |
| EP0978784A1 (de) * | 1998-08-04 | 2000-02-09 | Motorola, Inc. | Verfahren zur Rechnerprogrammkodierung und Verfahren zur Fehlerbeseitigung kodierter Rechnerprogramme |
| GB2340627B (en) * | 1998-08-13 | 2000-10-04 | Plessey Telecomm | Data processing system |
| JP2000200255A (ja) | 1999-01-07 | 2000-07-18 | Hitachi Ltd | プロセッサ間の同期化方法及び同期回路 |
| WO2000079405A1 (en) * | 1999-06-21 | 2000-12-28 | Hitachi, Ltd. | Data processor |
| US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
| US6640313B1 (en) * | 1999-12-21 | 2003-10-28 | Intel Corporation | Microprocessor with high-reliability operating 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 |
| US6947047B1 (en) * | 2001-09-20 | 2005-09-20 | Nvidia Corporation | Method and system for programmable pipelined graphics processing with branching instructions |
| US20040076189A1 (en) * | 2002-10-17 | 2004-04-22 | International Business Machines Corporation | Multiphase clocking method and apparatus |
| US7055060B2 (en) * | 2002-12-19 | 2006-05-30 | Intel Corporation | On-die mechanism for high-reliability processor |
| JP2004234144A (ja) * | 2003-01-29 | 2004-08-19 | Hitachi Ltd | プロセッサの動作比較装置および動作比較方法 |
| WO2005003962A2 (de) * | 2003-06-24 | 2005-01-13 | Robert Bosch Gmbh | Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit |
| US7134031B2 (en) * | 2003-08-04 | 2006-11-07 | Arm Limited | Performance control within a multi-processor system |
| DE10349581A1 (de) * | 2003-10-24 | 2005-05-25 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit |
-
2005
- 2005-10-25 JP JP2007537301A patent/JP2008518308A/ja active Pending
- 2005-10-25 EP EP05797084A patent/EP1810145B1/de not_active Expired - Lifetime
- 2005-10-25 US US11/666,405 patent/US7853819B2/en active Active
- 2005-10-25 EP EP05801268A patent/EP1807761A1/de not_active Ceased
- 2005-10-25 KR KR1020077009253A patent/KR20070083772A/ko not_active Abandoned
- 2005-10-25 EP EP05811008A patent/EP1812861A1/de not_active Ceased
- 2005-10-25 AT AT05801543T patent/ATE409327T1/de not_active IP Right Cessation
- 2005-10-25 WO PCT/EP2005/055538 patent/WO2006045801A2/de not_active Ceased
- 2005-10-25 JP JP2007537305A patent/JP2008518312A/ja active Pending
- 2005-10-25 DE DE502005005284T patent/DE502005005284D1/de not_active Expired - Lifetime
- 2005-10-25 JP JP2007537303A patent/JP2008518310A/ja active Pending
- 2005-10-25 RU RU2007119316/09A patent/RU2007119316A/ru not_active Application Discontinuation
- 2005-10-25 EP EP05811107A patent/EP1820102A2/de not_active Withdrawn
- 2005-10-25 US US11/666,406 patent/US20080163035A1/en not_active Abandoned
- 2005-10-25 WO PCT/EP2005/055542 patent/WO2006045804A1/de not_active Ceased
- 2005-10-25 EP EP05801543A patent/EP1807763B1/de not_active Expired - Lifetime
- 2005-10-25 WO PCT/EP2005/055532 patent/WO2006045798A1/de not_active Ceased
- 2005-10-25 US US11/666,407 patent/US20080126718A1/en not_active Abandoned
- 2005-10-25 KR KR1020077009252A patent/KR20070067168A/ko not_active Ceased
- 2005-10-25 AT AT05797084T patent/ATE407398T1/de not_active IP Right Cessation
- 2005-10-25 KR KR1020077009250A patent/KR20070083771A/ko not_active Ceased
- 2005-10-25 KR KR1020077009251A patent/KR20070062579A/ko not_active Withdrawn
- 2005-10-25 WO PCT/EP2005/055537 patent/WO2006045800A1/de not_active Ceased
- 2005-10-25 JP JP2007537304A patent/JP2008518311A/ja active Pending
- 2005-10-25 WO PCT/EP2005/055539 patent/WO2006045802A2/de not_active Ceased
- 2005-10-25 US US11/666,413 patent/US20090164826A1/en not_active Abandoned
- 2005-10-25 JP JP2007537302A patent/JP4532561B2/ja not_active Expired - Fee Related
- 2005-10-25 DE DE502005005490T patent/DE502005005490D1/de not_active Expired - Lifetime
Non-Patent Citations (1)
| Title |
|---|
| See references of WO2006045798A1 * |
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1807763B1 (de) | Verfahren und vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem | |
| EP1917592B1 (de) | Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung | |
| DE102005055067A1 (de) | Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System | |
| DE10349581A1 (de) | Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit | |
| DE102008004205A1 (de) | Schaltungsanordnung und Verfahren zur Fehlerbehandlung in Echtzeitsystemen | |
| EP1398700A1 (de) | Verfahren und Schaltungsanordnung zur Synchronisation redundanter Verarbeitungseinheiten | |
| EP1398701A1 (de) | Verfahren zur Ereignissynchronisation, insbesondere für Prozessoren fehlertoleranter Systeme | |
| EP1812858B1 (de) | Verfahren und vorrichtung zur erzeugung eines modussignals bei einem rechnersystem mit mehreren komponenten | |
| DE102004051952A1 (de) | Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem | |
| WO2004092972A2 (de) | Programmgesteuerte einheit und verfahren | |
| EP1812856B1 (de) | Verfahren und vorrichtung zur auswertung eines signals eines rechnersystems mit wenigstens zwei ausführungseinheiten | |
| DE102004051937A1 (de) | Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem | |
| EP2228723B1 (de) | Verfahren zur Fehlerbehandlung eines Rechnersystems | |
| EP1776636A2 (de) | Verfahren zum registrieren von fehlern und entsprechendes register | |
| DE102004038590A1 (de) | Verfahren zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Zweirechnersystems sowie entsprechende Verzögerungseinheit | |
| WO2007057270A1 (de) | Programmgesteuerte einheit und verfahren zum betreiben derselbigen | |
| DE102004051964A1 (de) | Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem | |
| DE102004051950A1 (de) | Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem | |
| DE102004051992A1 (de) | Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems | |
| DE102009001048A1 (de) | Vorrichtung und Verfahren zur Prüfung der Arbeitsweise eines Rechnersystems | |
| DE102005037245A1 (de) | Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten | |
| EP1915674B1 (de) | Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten und mit wenigstens zwei gruppen von internen zuständen | |
| DE102010031017A1 (de) | Verfahren zur Überwachung des Programmablaufs eines Prozessors | |
| DE102005037261A1 (de) | Verfahren und Vorrichtung zur Erzeugung eines Signals bei einem Rechnersystem mit mehreren Komponenten | |
| DE102005037225A1 (de) | Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20070525 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
| 17Q | First examination report despatched |
Effective date: 20071001 |
|
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
| 18R | Application refused |
Effective date: 20080801 |