Method and device for carrying out clock changeover in a multiprocessor system
Abstract
A unit and method for clock changeover in a system having at least two processing units, in which switchover device(s) are provided by which a switchover between at least two operating modes of the system is able to be implemented in which a clock pulse changeover is carried out in at least one processing unit in a switching of the operating mode.
Term
Term ended
Projected expiry passed 25 October 2025, 0.9 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
21 claims: 21 independent, 0 dependent
- 1Claims of equivalent WO 2006045802 A2 Ansprüche 1. Verfahren zur Taktumschaltung in einem System mit wenigstens zwei Recheneinheiten, wobei Umschaltmittel enthalten sind durch welche zwischen wenigstens zwei Betriebsmodi des Systems umgeschaltet werden kann, wobei bei wenigstens einer Recheneinheit bei einer Umschaltung des Betriebsmodus eine Taktumschaltung aktivierbar oder deaktivierbar ist.
- 2Verfahren zur Taktumschaltung nach Anspruch 1, dadurch gekennzeichnet, dass die Taktumschaltung derart erfolgt, dass die Recheneinheiten mit einem vorgebbaren Phasenversatz arbeiten.
- 3Verfahren zur Taktumschschaltung nach Anspruch 2, dadurch gekennzeichnet, dass der Phasenversatz halbzahlig vorgegeben wird.
- 4Verfahren zur Taktumschaltung nach Anspruch 3, dadurch gekennzeichnet, dass der Pasenversatz zu 1,5 Takten vorgegeben wird.
- 5Verfahren zur Taktumschaltung nach Anspruch 2, dadurch gekennzeichnet, dass der Phasenversatz bei einer Umsachaltung in den Sicherheitsmodus vorgegeben wird.
- 6Verfahren zur Taktumschaltung nach Anspruch 2, dadurch gekennzeichnet, dass bei einer Umschaltung in den Performanzmodus der Phasenversatz ausgeglichen wird, so dass die Recheneinheiten im Performanzmodus gleichphasig arbeiten.
- 7Verfahren zur Taktumschaltung nach Anspruch 1, dadurch gekennzeichnet, dass bei Aktivierung eine Umschaltung der Taktfrequenz derart erfolgt, so dass eine Recheneinheit mit einer höherer Taktfrequenz arbeitet als die andere.
- 8Verfahren zur Taktumschaltung nach Anspruch 2, dadurch gekennzeichnet, dass der Phasenversatz so vorgegeben wird, dass gleiche Instruktionen mit einem Zeitversatz ungleich Null auf den wenigstens zwei recheneinheiten abgearbeitet werden.
- 9Einheit zur Taktumschaltung in einem System mit wenigstens zwei Recheneinheiten, wobei Umschaltmittel enthalten sind durch welche zwischen wenigstens zwei Betriebsmodi des Systems umgeschalten werden kann, wobei die Einheit derart ausgestaltet ist, dass bei wenigstens einer Recheneinheit bei einer Umschaltung des Betriebsmodus eine Taktumschaltung aktivierbar oder deaktivierbar ist.
- 10Einheit zur Taktumschaltung nach Anspruch 9, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass die Taktumschaltung derart erfolgt, dass die Recheneinheiten mit einem vorgebbaren Phasenversatz arbeiten.
- 11Einheit zur Taktumschschaltung nach Anspruch 10, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass der Phasenversatz halbzahlig vorgegeben wird.
- 12Einheit zur Taktumschaltung nach Anspruch 10, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass der Phasenversatz ganzzahlig vorgegeben wird.
- 13Einheit zur Taktumschaltung nach Anspruch 11, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass der Pasenversatz zu 1,5 Takten vorgegeben wird.
- 14Einheit zur Taktumschaltung nach Anspruch 10, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass der Phasenversatz bei einer Umsachaltung in den Sicherheitsmodus vorgegeben wird.
- 15Einheit zur Taktumschaltung nach Anspruch 10, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass bei einer Umschaltung in den Performanzmodus der Phasenversatz ausgeglichen wird, so dass die Recheneinheiten im Performanzmodus gleichphasig arbeiten.
- 16Einheit zur Taktumschaltung nach Anspruch 9, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass bei Aktivierung eine Umschaltung der Taktfrequenz derart erfolgt, so dass eine Recheneinheit mit einer höherer Taktfrequenz arbeitet als die andere.
- 17Einheit zur Taktumschaltung nach Anspruch 10, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass der Phasenversatz so vorgegeben wird, dass gleiche Instruktionen mit einem Zeitversatz ungleich Null auf den wenigstens zwei Recheneinheiten abgearbeitet werden.
- 18Einheit zur Taktumschaltung nach Anspruch 9, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass die Taktumschaltung durch ein Modussignal, welches einen Betriebsmodus angibt, ausgelöst wird.
- 19Einheit zur Taktumschaltung nach Anspruch 9, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass die Taktumschaltung durch Zuschalten oder Wegschalten von wenigstens einer Kippschaltung ausgelöst wird.
- 20Einheit zur Taktumschaltung nach Anspruch 10, dadurch gekennzeichnet, dass die Einheit derart ausgestaltet ist, dass der Phasenversatz durch Zuschalten oder Wegschalten von wenigstens einer Kippschaltung ausgelöst wird.
- 21System mit einer Einheit zur Taktumschaltung nach einem der Ansprüche 9 bis 17.
Independent claims21
96 paragraphs, as filed
Description of equivalent WO 2006045802 A2
0001Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem
0002Stand der Technik
0003In technischen Anwendungen, wie insbesondere im Kraftfahrzeug oder im
0004Industriegü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 Fehlerentdeckungsmechanismen 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.
0005Solche 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
0006Programme respektive Tasks. Dadurch lässt sich eine Leistungssteigerung erzielen, weshalb diese Konfiguration als Leistungsmodus oder Performance-Mode bezeichnet wird.
0007Der zweite Grund, eine Dual-Core- oder Multi-Core- Architektur zu realisieren, ist eine
0008Sicherheitssteigerung, 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.
0009Heutzutage 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.
0010Die Aufgabe der Erfindung ist nun eine Einheit und eine Verfahren vorzustellen, welche die Phase der Takte bzw. auch den Takt der beiden Prozessoren zueinander umschaltet in Abhängigkeit von dem Prozessormodus als Schutz gegen Common Cause Fehler. Solch eine Einheit ist bis jetzt noch nicht bekannt. Sie ermöglicht den effektiven sicheren
0011Betrieb 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. Weiterhin ist es Aufgabe der Erfindung ein Verfahren und eine Vorrichtung anzugeben, durch welche eine Optimierung der Funktion im Rahmen der Umschaltung zwischen den Betriebsmodi ermöglicht wird.
0012Beschreibung der Ausführungsbeispiele und Vorteile der Erfindung
0013In einem Zweirechnersystem gibt es 2 Prozessoren die dieselben oder verschiedene Aufgaben abarbeiten können. Diese beiden Prozessoren des Zweirechnersystems können diese Aufgaben taktsynchron oder taktversetzt abarbeiten. Wird ein Zweiprozessorsystem zur Fehlerentdeckung aufgebaut, ist es vorteilhaft zur Vermeidung von Common-Mode
0014Fehlern, dass diese beide Prozessoren mit einem Taktversatz arbeiten. Am effektivsten ist diese Methode wenn ein nicht ganzzahliger Taktversatz gewählt wird. Arbeiten die beiden Prozessoren verschiedene Aufgaben ab, ist es vorteilhafter sie taktflankensynchron laufen zu lassen, da die externen Komponenten wie Speicher nur mit dem Takt eines Prozessors angesteuert werden können. Soll nun ein zwischen diesen beiden Modi umschaltbares Zweiprozessorsystem eingesetzt werden, ist es somit nur auf einen Betriebsmodi optimiert.
0015Erfindungsgemäß wird dies dadurch kompensiert, dass in dem Zweiprozessorsystem (bzw. Mehrprozessorsystem), welches umschaltbar ist zwischen 2 Modi wie Sicherheit und Performance, die beiden Prozessoren im Modus Sicherheit mit einem Taktversatz arbeiten und im Modus Performance ohne Taktversatz. Im Modus Performance ist kein Taktversatz vorteilhaft, da die externen Komponenten wie Speicher meistens mit einer niedrigeren Taktfrequenz betrieben werden und von der Taktflanke nur auf einen Prozessor passend ausgelegt sind. Der zweite taktversetzte Prozessor hätte sonst bei jedem Speicherzugriff einen Wartezyklus, da er die externe Komponente um einen halben Takt zu spät ansteuert.
0016Durch eine Taktumschaltung für ein Zweiprozessorsystem wird im Modus Sicherheit das Optimum bei der Fehlererkennung herausgeholt und im Modus Performance das
0017Maximum an der Performance.
0018Somit geht die Erfindung vorteilhafter Weise von einer Einheit zur Taktumschaltung in einem System mit wenigstens zwei Recheneinheiten aus, sowie einem entsprechenden System mit einer solchen Einheit, wobei Umschaltmittel (ModeSwitch) enthalten sind - A -
0019durch welche zwischen wenigstens zwei Betriebsmodi des Systems umgeschalten werden kann, wobei die Einheit derart ausgestaltet ist, dass bei wenigstens einer Recheneinheit bei einer Umschaltung des Betriebsmodus eine Taktumschaltung erfolgt.
0020Ebenso ist ein Verfahren zur Taktumschaltung in einem System mit wenigstens zwei
0021Recheneinheiten gezeigt, wobei Umschaltmittel enthalten sind durch welche zwischen wenigstens zwei Betriebsmodi des Systems umgeschalten werden kann, wobei bei wenigstens einer Recheneinheit bei einer Umschaltung des Betriebsmodus eine Taktumschaltung erfolgt.
0022In einem Modus arbeiten die beiden Prozessoren in einem Taktversatz. Dieser kann sowohl um ganze Takte als auch um Teile des Taktes gegeneinander verschoben sein. Eine weitere Variante ist, dass in den beiden Modi eine unterschiedliche Taktfrequenz verwendet wird. Im sicherheitskritischen Modus kann zur Störungsunterdrückung z.B. ein niedrigerer Takt verwendet werden als im Performancemodus. Dabei können diese beiden Varianten auch miteinander kombiniert werden.
0023Dabei 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
0024Zustände auf Übereinstimmung vergleichen.
0025Die erfindungsgemäße Einheit bzw. das erfindungsgemäße Verfahren ermöglicht die optimierte Implementierung der beiden Modi in einem Zweiprozessorsystem.
0026Arbeiten 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.
0027Im 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 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).
0028Im 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
0029Komponenten zugreifen, so wird ein Prozessor in einen Wartezustand versetzt, bis der andere bedient wurde.
0030Die 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.
0031Wird 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
0032Slave zur Fehlererkennung verglichen werden können.
0033Der Taktversatz wird anhand der Figur 1 näher erläutert:
0034Figur 1 zeigt ein Zweirechnersystem mit einem ersten Rechner 100, insbesondere einem
0035Masterrechner 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
0036Fehlererkennung 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.
0037Um 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
0038104 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
0039Datenbus 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
0040Rechner 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.
0041Dabei 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.
0042Der 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
0043Befehle 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.
0044Um 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
0045Ü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
0046111 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.
0047Nachfolgend anhand Figur 2 nun eine beispielhafte Implementierung bezüglich der
0048Datenverteilungseinheit (DVE), die sich vorzugsweise aus einer Vorrichtung zur Detektierung des Umschaltwunsches (durch IIIOPDetect), 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
0049""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.
0050ModeSwitch: Die Umschaltung zwischen den beiden Modi wird durch die ""Switch-
0051Detect'" 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
0052Prozessor 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
0053Lock-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
0054Interrupt 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.
0055Befinden 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
0056Umschaltwunsch 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.
0057Sind die beiden Prozessoren im Split Modus und einer schaltet nicht zurück in den Lock-
0058Modus, 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 "<sup>Λ</sup>01"' für den Split- Modus. Bei "W und "<sup>Λ</sup> 11"' sind Fehler aufgetreten.
0059IramControl: Der Zugriff auf den Befehlsspeicher der beiden Prozessoren wird über die
0060IRAM Control gesteuert. Diese muss sicher ausgelegt sein, da sie ein Single Point of Failure ist. Sie besteht aus zwei Zustandsautomaten für jeden Prozessor: als je einen taktsynchronen iramlclkreset und einen asynchronen readiraml. Im sicherheitskritischen Modus überwachen sich die Zustandsautomaten der beiden Prozessoren gegenseitig und im Performancemodus arbeiten sie getrennt.
0061Das 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.
0062In Bit 5 im Register 0 der SysControl wird codiert um welchen Core es sich handelt. Core
00631 ist das Bit 0 und bei Core 2 ist es High. Dieses Register ist in den Speicherbereich mit der Adresse 65528 gespiegelt.
0064Bei 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
0065Signal liegt als Common-Rail Signal vor, da es sicherheitskritisch ist.
0066Der 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.
0067Im 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
0068Lock- 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.
0069ImSplit-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.
0070DramControl: 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:
0071- Prozessorstatus Lock: Die beiden Prozessoren arbeiten im Lock-Modus. D.h. die Funktionalität des Datenspeicheriocking ist nicht notwendig. Prozessor 1 koordiniert die Speicherzugriffe.
0072- Prozessorstatus Split: Nun ist eine Zugriffskonfliktauflösung auf den Datenspeicher nötig und ein Speichersperren muss erfolgen können.
0073Der Zustand im Split-Modus ist wiederum in 7 Zustände untergliedert, die die Zugriffskonflikte auflösen und den
0074Datenspeicher 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.
0075- 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. \
0076- 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.
0077- 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
0078Speichersperrung vorgemerkt.
0079- 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.
0080- 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.
0081- kein Prozessor möchte auf den Datenspeicher zugreifen
0082Die DVE setzt sich wie erwähnt zusammen aus dem Detektierung des Umschaltwunsches (IllOPDetect) der ModeSwitch-Einheit und der Iram- und DramControl.
0083In Figur 3 ist nun die Taktumschaltung an einem Beispiel dargestellt, so dass bezüglich des einen Modus im Vergleich zum anderen Modus eine Taktumschaltung erfolgt. Dabei sind die beiden Modi, der Takt clk und die beiden Prozessor- oder Coretakte gezeigt.
0084In einem Modus arbeiten die beiden Prozessoren in einem Taktversatz. Dieser kann sowohl um ganze Takte als auch um Teile des Taktes gegeneinander verschoben sein. Eine weitere Variante ist, dass in den beiden Modi eine unterschiedliche Taktfrequenz verwendet wird. Im sicherheitskritischen Modus kann zur Störungsunterdrückung z.B. ein niedrigerer Takt verwendet werden als im Performancemodus. Dabei können diese beiden Varianten auch miteinander kombiniert werden.
0085Kern der Erfindung ist somit die modusabhängige Taktumschaltung.
0086Daneben löst aber auch die dargestellte spezielle Implementierung die Eingangs genannten Aufgaben.
0087Bei den Implementierungen von insbesondere Zweiprozessorsystemen (Dual-Core) wird für jeden Prozessor ein Cache vorgesehen wie nochmals schematisch in Figur 4 gezeigt. Ein Cache ist normalerweise nicht ausreichend, da dieser Cache räumlich gesehen zwischen den beiden Prozessoren angeordnet werden muss. Aufgrund der langen Laufzeit zwischen dem Cache und den beiden Prozessoren könnten folglich die beiden Prozessoren nur mit einer begrenzten Taktfrequenz arbeiten.
0088Caches dienen als schneller Zwischenspeicher, damit der Prozessor die Daten nicht immer aus dem langsamen Hauptspeicher holen muss. Um dies zu ermöglichen, muss bei der Implementierung von Cache stark auf dessen Zugriffsdauer geachtet werden. Diese setzt sich aus der eigentlichen Zugriffszeit um die Daten aus dem Cache zu holen und aus der Zeit um die Daten an den Prozessor weiterzureichen zusammen. Ist der Cache nun räumlich weit entfernt vom Prozessor platziert, so dauert die Übermittlung der Daten sehr lange und der Prozessor kann nicht mehr mit seinem vollen Takt arbeiten. Aufgrund dieses Timingproblems kann bei diesen beispielhaften Zweiprozessorsystemen für jeden Prozessor und/oder Core ein eigener Cache vorgesehen sein.
0089Wenn diese beiden Prozessoren nun mit einem Taktversatz betrieben werden, kann nun mit dem in Figur 5 vorgeschlagenen Verfahren auf den zweiten Cache für den Slave-
0090Prozessor verzichtet werden. Ein Cache benötigt viel Chipfläche und auch viel Strom.
0091Dadurch produziert er auch viel Abwärme, die abgeführt werden muss. Kann nun auf einen Cache verzichtet werden, so lässt sich ein Zweiprozessorsystem deutlich kostengünstiger implementieren.
0092Eine modusabhängige Taktumschaltung der Prozessoren bzw. Cores wie in der vorher beschriebenen Ausführungsform ist auch bei einem System mit einem Cache möglich.
0093Bei dem hier als zusätzliches Ausführungsbeispiel vorgestellten Zweirechnersystem ist wie gesagt ein Prozessor der Master und ein Prozessor der Slave. Der Master arbeitet als erstes die Daten ab und steuert folglich auch die Peripheriekomponenten wie Speicher, Cache, DMA-Kontroller usw. an. Der Slave arbeitet die gleichen Daten mit einem Taktversatz von hier beispielhaft 1,5 Takte ab. Das bedeutet auch, dass er die Daten aus dem gemeinsamen Speicher und von den externen Komponenten ebenfalls um diese Zeitdauer später erhält. Die Ausgangsdaten der beiden Prozessoren wie Speicheradresse,
0094Daten, usw. werden miteinander verglichen. Um die Daten miteinander vergleichen zu können, müssen die Ergebnisse des Masters ebenfalls 1,5 Takte zwischengespeichert werden. Ein solches Beispielsystem ist unten abgebildet.
0095Um gemäß Figur 5 nun ein Cache für beide Prozessoren verwenden zu können, werden nun der Befehls- und Datencache direkt am Master angeordnet wie bei einem Single- Prozessor. Der Master muss somit keine Performanceeinbußen bezüglich der Laufzeiten zwischen Cache und Prozessor hinnehmen. Da der Slave die Daten erst 1,5 Takte später abarbeitet, kann man diese Zeit nun benutzen um die Daten an den zweiten nun räumlich weiter vom Cache entfernten Prozessor zu führen. Dazu können bei einem beispielhaften Taktversatz von 1,5 Takten zwei Flip-Flops benutzt werden, wie dies in Figur 6 dargestellt ist. Das Erste wird mit dem Takt des Masters angesteuert, das Zweite mit dem Takt des Slaves. Das erste Flip-Flop wird direkt am Ausgang der Quelle positioniert. Das Zweite wird nun entsprechend der Länge, die das Signal in der Differenz zwischen den beiden Takten zurücklegen kann, entsprechend näher am Slave positioniert. Dies entspricht bei 1,5 Takte Zeitversatz der Laufzeitlänge in einem halben Takt und bei einem Taktversatz von 2 Takte der Laufzeitlänge von einem Takt. Dann übernimmt das zweite Flip-Flop das Signal. Nun kann noch einmal die Strecke, die das Signal während eines ganzen Taktes zurücklegen kann, überbrückt werden. In der Abbildung ist dies durch 1.) die nahe Anordnung an der Senke dargestellt, 2.) entspricht der Länge die in der Taktdifferenz zurückgelegt werden kann und 3.) ist die Länge die in einem Takt nach dem zweiten Flip-Flop zurückgelegt werden kann.
244 members in 11 offices
Priority claims29
| Document | Office | Kind | Date |
|---|---|---|---|
| 102004051937 | Germany | A | |
| 102004051937 | Germany | A | |
| 102004051937 | Germany | – | |
| 102004051950 | Germany | A | |
| 102004051950 | Germany | A | |
| 102004051950 | Germany | – | |
| 102004051952 | Germany | A | |
| 102004051952 | Germany | A | |
| 102004051952 | Germany | – | |
| 102004051964 | Germany | A | |
| 102004051964 | Germany | A | |
| 102004051964 | Germany | – | |
| 102004051992 | Germany | A | |
| 102004051992 | Germany | A | |
| 102004051992 | Germany | – | |
| 2005055539 | European Patent Office (EPO) | W | |
| 2005055539 | European Patent Office (EPO) | W | |
| 102004051937 | – | – | – |
| 102004051950 | – | – | – |
| 102004051952 | – | – | – |
| 102004051964 | – | – | – |
| 102004051992 | – | – | – |
| DE20041051937 | – | – | – |
| DE20041051950 | – | – | – |
| DE20041051952 | – | – | – |
| DE20041051964 | – | – | – |
| DE20041051992 | – | – | – |
| EP2005055539 | – | – | – |
| WO2005EP55539 | – | – | – |
Members244
| Document | Office | Kind | |
|---|---|---|---|
| DE102004051850A1 | Germany | A1 | |
| DE102004051950A1 | Germany | A1 | |
| DE102004051952A1 | Germany | A1 | |
| DE102004051964A1 | Germany | A1 | |
| DE102004051992A1 | Germany | A1 | |
| DE102004051994A1 | Germany | A1 | |
| DE102004051937A1 | Germany | A1 | |
| WO2006045276A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045773A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2006045774A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045775A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045776A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045777A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045778A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045779A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045780A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045781A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2006045782A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2006045784A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045785A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045786A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045788A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045789A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045790A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045798A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045800A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045801A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2006045802A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2006045804A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006045806A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2006045807A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2006045773A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO2006045781A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO2006045801A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO2006045806A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO2006045807A3 | World Intellectual Property Organization (WIPO) | A3 | |
| DE102004051994B4 | Germany | B4 | |
| WO2006045782A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO2006045802A3 | World Intellectual Property Organization (WIPO) | A3 | |
| DE102005037212A1 | Germany | A1 | |
| DE102005037213A1 | Germany | A1 | |
| DE102005037220A1 | Germany | A1 | |
| DE102005037222A1 | Germany | A1 | |
| DE102005037223A1 | Germany | A1 | |
| DE102005037224A1 | Germany | A1 | |
| DE102005037225A1 | Germany | A1 | |
| DE102005037229A1 | Germany | A1 | |
| DE102005037231A1 | Germany | A1 | |
| DE102005037237A1 | Germany | A1 | |
| DE102005037238A1 | Germany | A1 | |
| DE102005037239A1 | Germany | A1 | |
| DE102005037240A1 | Germany | A1 | |
| DE102005037241A1 | Germany | A1 | |
| DE102005037242A1 | Germany | A1 | |
| DE102005037243A1 | Germany | A1 | |
| DE102005037261A1 | Germany | A1 | |
| DE102005045399A1 | Germany | A1 | |
| KR20070062565A | Republic of Korea | A | |
| KR20070062566A | Republic of Korea | A | |
| KR20070062567A | Republic of Korea | A | |
| KR20070062568A | Republic of Korea | A | |
| KR20070062573A | Republic of Korea | A | |
| KR20070062574A | Republic of Korea | A | |
| KR20070062576A | Republic of Korea | A | |
| KR20070062577A | Republic of Korea | A | |
| KR20070062579A | Republic of Korea | A | |
| WO2006045777A8 | World Intellectual Property Organization (WIPO) | A8 | |
| KR20070067168A | Republic of Korea | A | |
| KR20070067169A | Republic of Korea | A | |
| KR20070068405A | Republic of Korea | A | |
| EP1805618A2 | European Patent Office (EPO) | A2 | |
| EP1807760A2 | European Patent Office (EPO) | A2 | |
| EP1807761A1 | European Patent Office (EPO) | A1 | |
| EP1807762A1 | European Patent Office (EPO) | A1 | |
| EP1807763A2 | European Patent Office (EPO) | A2 | |
| EP1807764A2 | European Patent Office (EPO) | A2 | |
| EP1810145A1 | European Patent Office (EPO) | A1 | |
| EP1810146A1 | European Patent Office (EPO) | A1 | |
| EP1810147A1 | European Patent Office (EPO) | A1 | |
| EP1810148A1 | European Patent Office (EPO) | A1 | |
| EP1810149A1 | European Patent Office (EPO) | A1 | |
| EP1810150A2 | European Patent Office (EPO) | A2 | |
| EP1812854A1 | European Patent Office (EPO) | A1 | |
| EP1812855A1 | European Patent Office (EPO) | A1 | |
| EP1812856A1 | European Patent Office (EPO) | A1 | |
| EP1812857A1 | European Patent Office (EPO) | A1 | |
| EP1812858A1 | European Patent Office (EPO) | A1 | |
| EP1812859A1 | European Patent Office (EPO) | A1 | |
| EP1812860A1 | European Patent Office (EPO) | A1 | |
| EP1812861A1 | European Patent Office (EPO) | A1 | |
| EP1817662A2 | European Patent Office (EPO) | A2 | |
| EP1820093A1 | European Patent Office (EPO) | A1 | |
| EP1820102A2This record | European Patent Office (EPO) | A2 | |
| KR20070083732A | Republic of Korea | A | |
| KR20070083758A | Republic of Korea | A | |
| KR20070083759A | Republic of Korea | A | |
| KR20070083760A | Republic of Korea | A | |
| KR20070083771A | Republic of Korea | A | |
| KR20070083772A | Republic of Korea | A | |
| KR20070083776A | Republic of Korea | A |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Application deemed to be withdrawnWithdrawn18D | 18D | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWNSTAA | STAA | |
| First examination report despatched17Q | 17Q | |
| Request for extension of the european patent (deleted)DAX | DAX | |
| Request for examination filed17P | 17P | |
| Designated contracting statesAK | AK | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI |
Numbers
- Publication
- 1820102
- Publication, DOCDB
- 1820102
- Publication, EPODOC
- EP1820102
- Application
- 5811107
- Application, DOCDB
- 05811107
- Application, EPODOC
- EP20050811107
Titles3
- German
- VERFAHREN UND VORRICHTUNG ZUR TAKTUMSCHALTUNG BEI EINEM MEHRPROZESSORSYSTEM
- English
- METHOD AND DEVICE FOR CARRYING OUT CLOCK CHANGEOVER IN A MULTIPROCESSOR SYSTEM
- French
- PROCEDE ET DISPOSITIF DE COMMUTATION DE FREQUENCE D'HORLOGE DANS UN SYSTEME MULTIPROCESSEUR
Classification
- CPC, 6
- G06F11/1641
- G06F9/30189
- G06F9/30181
- G06F9/3885
- G06F11/1695
- G06F2201/845
- IPC, 1
- G06F11 16
Designated states1
- Contracting states, 1
- Türkiye