WO2006010374A1 - Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundant speicherinheiten - Google Patents

Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundant speicherinheiten Download PDF

Info

Publication number
WO2006010374A1
WO2006010374A1 PCT/EP2004/008402 EP2004008402W WO2006010374A1 WO 2006010374 A1 WO2006010374 A1 WO 2006010374A1 EP 2004008402 W EP2004008402 W EP 2004008402W WO 2006010374 A1 WO2006010374 A1 WO 2006010374A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
control unit
unit
routine
redundant
Prior art date
Application number
PCT/EP2004/008402
Other languages
English (en)
French (fr)
Inventor
Franz Hutner
Pavel Peleska
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to ES04763535T priority Critical patent/ES2298796T3/es
Priority to DE502004005875T priority patent/DE502004005875D1/de
Priority to PCT/EP2004/008402 priority patent/WO2006010374A1/de
Priority to US11/658,840 priority patent/US20080313413A1/en
Priority to AT04763535T priority patent/ATE382894T1/de
Priority to EP04763535A priority patent/EP1771788B1/de
Priority to CA002575132A priority patent/CA2575132A1/en
Priority to CNA2004800436782A priority patent/CN1993681A/zh
Publication of WO2006010374A1 publication Critical patent/WO2006010374A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit

Definitions

  • the invention relates to a method and a device for securing consistent memory contents in redundantly held storage units within a telecommunication or data processing system.
  • Telecommunication sys- tems or so-called data centers exist i.d.R. from one
  • control software of conventional switching systems is very extensive (up to several million code lines). Therefore, an adaptation of this software is possible only with great effort and risk.
  • controllers for switching systems require a very high development effort and their innovation cycle is usually very long.
  • current optimizations in the development of microprocessors, such as microprocessors are becoming increasingly difficult. fast, often proprietary and protected bus systems and internal caches with write-back Funk ⁇ tion the implementation of the reflective memory considerably.
  • An essential aspect of the invention is a method for securing consistent memory contents in redundant memory units within a telecommunications or data processing system, comprising at least one active control unit and at least one redundant passive control unit, each with at least one memory unit are formed, wherein the following steps are carried out:
  • a mirroring routine is called, - the call
  • the said mirroring routine is effected by suitably setting the memory management unit, not by explicitly calling from the running programs.
  • the memory contents to be written are stored in a memory area in the memory unit of the at least one redundant passive control unit, and the write access is stored
  • the active control unit which has led to the invocation of the mirroring routine, is again executed in the mirroring routine to another virtual memory area, which is mapped to the same physical address as the memory area whose writing has resulted in the call to the routine Spiegelungs ⁇ .
  • the central advantage of the invention is that programs which do not contain any advance for redundancy and otherwise only together with special hardware form a fail-safe, highly available system, can run on almost any commercially available processor platform and still achieve the same degree of high availability as costly special solutions.
  • Trap routines are only triggered when writing on pages whose data contents really have to be mirrored onto the redundant unit. This means that many write cycles for temporary or local data are unaffected and are still running at full performance. Also, all read accesses are not slowed down.
  • the function of the trap routine can be implemented as a function sequence in the microcode, which reduces the dynamic losses when entering and leaving the trap routine.
  • processors offer a special interface for processors.
  • the doubling of the memory access to the redundant and active side could, after being initiated by the memory management unit, also be realized by a co-processor in hardware. This eliminates the dynamic disadvantage of trap routine and microcode routine.
  • all changes in the memory of the active unit are mirrored by a trap routine to the redundant unit during operation. In the case of an error, it is then possible to switch over to the redundant unit without loss of information.
  • this method is only sufficient to mirror current changes in the memory to the redundant unit. If, however, a unit is exchanged during operation, for example due to a defect, this no longer achieves the identical memory state of the active board. In this case, all static data, ie those which are no longer changed during operation, must also be transmitted to the exchanged redundant unit.
  • the memory address of the memory area to be described compares with the memory address in the global variable, delaying the execution of the first-mentioned copying routine if the memory addresses match during the comparison.
  • data may be changed while being transferred to the redundant unit by the copying process.
  • Copying is usually accomplished by loading into a processor register and writing back. Now the active
  • a central advantage of the invention is that systems consisting of standard modules without special redundancy support in hardware can be synchronized during operation and can thus be brought into a redundant operation with fast Umschaltjan ⁇ even after a replacement of a unit again.
  • a further aspect of the invention resides in a control unit for carrying out the method with a (VSP) and physical memory unit (aPS) whose memory contents can be mirrored in the event of a write memory access into a memory unit of at least one further redundant passive control unit (rSt).
  • VSP virtual processor
  • aPS physical memory unit
  • rSt further redundant passive control unit
  • Means for invoking a mirroring routine to double the memory contents into a memory area in the memory unit of the at least one redundant passive control unit in the event of writing memory access, and means for carrying out the write access necessary to invoke the mirroring routine has led to another virtual storage area which has the same physical ad- As the memory area whose Be ⁇ writing has led to the invocation of the mirroring routine.
  • Figure 1 and Figure 2 shows a possible architecture of the active and redundant control unit.
  • Figure 1 shows an architecture of an active control unit within a telecommunication system.
  • a redundant control unit which comprises a redundant memory unit rPS, and an input / output system EA, via which the active control unit communicates with the redundant control unit.
  • the active control unit aST additionally has a further copying routine KR. Redundant memory areas of the active or redundant control unit are identified by aRS or rRS.
  • FIG. 1 is a diagrammatic representation of FIG. 1:
  • redundant units are no longer supplied by special hardware with the current copy of the memory contents of the active unit.
  • functions of the memory management unit ie the memory management
  • the memory management present in all relevant processors are used in order to be able to check at runtime for each memory access of the active control unit AST, whether from the data to be written to the redundant one Control unit rST a copy must be created.
  • This trap routine now parses the store instruction and causes the same date to be written to the same memory address of the redundant memory unit. This can be done by suitable standard hardware such as e.g. PCI-Express supports his.
  • the trap routine After both write accesses to the local memory and also to the memory unit rPS of the redundant control unit have taken place, the trap routine returns to the normal command execution after the store command (which was executed in the trap routine) and the normal program exit running continues.
  • the described functionality of the trap routine can also be realized as a microcode in the processor. In this case, the memory page would not trigger a trap routine by the write protection flag of the memory page in the memory control unit aMM, but rather directly trigger the corresponding function sequence as a microcode which duplicates the write access to the redundant control unit. This reduces the loss of momentum by entering and leaving the trap routine.
  • a co-processor can be connected to the processor which, when triggered by the memory control unit aMM, doubles the write accesses. Trap routine as well as micro code routine can thus be dispensed with.
  • FIG. 2 is a diagrammatic representation of FIG. 1
  • a software or copy routine KR continuously copies the memory to the redundant control unit rSt. This is done in small, fixed units (e.g., the size of a cacheline). At the same time active operation is running on all other processors of the active control unit. This results in the constant call of
  • Trap routines TR reflect the current changes of Speicherin ⁇ halts on the redundant control unit rSt.
  • the base address of the data block just copied (eg cache-line) is stored in a global variable.
  • This global variable lies in the common memory aRS of the active control unit, all processors of the active control unit have read access (except for the copying process, it continues the base address for each data block to be copied).
  • the trap routine is called on write access to the memory, in the trap routine the global variable with the base address must be compared with the current write address. If the addresses are different (ie the write access goes to an area which is not currently being copied), the trap routine can pass through normally and the write access is mirrored onto the side of the redundant control unit.
  • the trap routine polls the global variable until the copying process has ended and the global variable is up the next data block was counted. Then the trap routine can also end normally.
  • the polling in the trap routine is rare (only necessary if exactly the currently copied data block is being described), and the linking does not take long (copying such a small area does not take long).
  • polling the global variables always creates overhead in the trap routine through the necessary address comparison.
  • the additional running time is low in normal operation if no copying process of the memory is running.
  • the global variable is not changed for a longer time, it is safely in check (because of the frequency of the trap) when the trap routine is called, and the comparison leads only to a small runtime overhead.
  • the overhead is more critical if the undercoating process is running in parallel.
  • the variable is constantly being changed, and the cache is not a current copy. In this case, a memory access to the memory must take place as an overhead of the trap routine for reading the address, which is in the global variable.
  • This principle does not place special requirements on hardware or software of a redundant system. It must be the corresponding routine for copying the memory contents with the controller via a global variable, which holds the address currently being copied, is integrated.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Die Erfindung betrifft vor allem ein Verfahren zur Sicherung von konsistenten Speicherinhalten in redundant gehaltenen Speichereinheiten innerhalbs eines Telekommunikations- oder Datenverarbeitungs-Systems aufweisend mindestens eine aktive Steuereinheit (aSt) und mindestens eine redundante passive Steuereinheit (rSt), die jeweils mit mindestens einer Speichereinheit ausgebildet sind. Hierbei werden folgende Schritte ausgeführt: a) wenn auf einen virtuellen Speicherbereich (VSP) in einer Speichereinheit einer aktiven Steuereinheit (aSt), dessen Speicherinhalt im Falle eines schreibenden Speicherzugriffs in eine Speichereinheit (rPS) der mindestens einen redundanten passiven Steuereinheit (rPS) gespiegelt werden soll, schreibend zugegriffen wird, wird eine Spiegelungsroutine (TR) aufgerufen; b) während der Ausführung der Spiegelungsroutine (TR) wird der zu schreibende Speicherinhalt in einen Speicherbereich in der Speichereinheit (rPS) der mindestens einen redundanten passiven Steuereinheit (rSt) kopiert, und c) der Schreibzugriff auf der aktiven Steuereinheit, der zum Aufruf der Spiegelungsroutine geführt hat, wird in der Spiegelungsroutine erneut auf einen anderen virtuellen Speicherbereich durchgeführt, der auf die gleiche physikalische Adresse abgebildet ist, wie der Speicherbereich, dessen Beschreiben zum Aufruf der Speigelungsroutine geführt hat.

Description

VERFAHREN UND VORRICHTUNG ZUR SICHERUNG VON KOSISTENTEN SPEICHERINHALTEN IN REDUNDANTEN SPEICHERINHEITEN
Verfahren und Vorrichtung zur Sicherung von konsistenten Speicherinhalten in redundant gehaltenen Speichereinheiten
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Sicherung von konsistenten Speicherinhalten in redundant ge¬ haltenen Speichereinheiten innerhalb eines Telekommunikati- ons- bzw. Datenverarbeitungssystems.
Die Wahrscheinlichkeit des Auftretens eines Hardware-Defektes eines typischen Prozessorboards pro Jahr, bestehend aus einer CPU, einem Chip-Set, Hauptspeicher und Peripheriebausteinen, liegt im einstelligen Prozentbereich. Telekommunikationssys- teme oder auch sog. Data-Center bestehen i.d.R. aus einer
Vielzahl solcher Boards. Typischerweise sind Systeme wie Ver¬ mittlungsstellen aus bis zu einigen Hundert solcher Prozes¬ sorboards aufgebaut, wodurch die Wahrscheinlichkeit des Aus¬ falls einer beliebigen Hardware-Komponente bezogen auf den Jahreszeitraum sehr hoch wird. Insbesondere an Telekommunika¬ tionssysteme, aber auch in zunehmenden Maße an Datacenter, wird die Forderung nach einer hohen Systemverfügbarkeit ge¬ stellt, z.B. nach einer Verfügbarkeit von >99.999% bzw. einer NichtVerfügbarkeit von wenigen Minuten im Jahr. Da üblicher- weise der Austausch eines Prozessorboards und die Wiederher¬ stellung des Dienstes im Falle eines Hardwaredefektes i.d.R. im Bereich einiger 10 Minuten bis zu einigen Stunden dauert, müssen für den Fall eines Hardwaredefektes auf Systemebene entsprechende Vorkehrungen getroffen werden um die Forderung nach der Systemverfügbarkeit erfüllen zu können.
Grundsätzlich ist die Forderung nach dieser Art der Verfüg¬ barkeit nur durch redundante Systemkomponenten erfüllbar. Da¬ bei gibt es den Ansatz die Redundanz durch Software-Massnah- men zu kontrollieren, hierbei wird typischerweise eine sog.
Middleware eingesetzt, oder den Ansatz, die Redundanz auf der Hardwareebene zu kapseln, so dass diese für die Software transparent ist. Der wesentliche Nachteil der durch Software- Maßnahmen kontrollierten Redundanz ist, dass lediglich dieje¬ nige (Applikations-) Software in einem solchen System einge¬ setzt werden kann, die für dieses besondere Redundanzschema entwickelt wurde. Dies schränkt das Spektrum einsetzbarer (Applikations-) Software erheblich ein. Darüber hinaus ist die Applikationssoftware für Softwareredundanzprinzipien i.d.R. aufwendig zu entwickeln und zu testen.
Insbesondere ist die Steuerungs-Software herkömmlicher Ver¬ mittlungssysteme sehr umfangreich (bis einige Millionen Code- Zeilen) . Daher ist eine Anpassung dieser Software nur mit sehr hohem Aufwand und Risiko möglich.
Deshalb ist bisher für derartige Vermittlungssysteme eine speziell entwickelte Hardware nötig. Diese unterstützt dann die geforderte Redundanz, so dass bei Ausfällen einzelner Hardware Module genügend Information zum unterbrechungsfreien Weiterbetrieb auf den redundanten Einheiten vorhanden ist. Häufig wird dazu ein automatisch, im Hintergrund immer mit¬ laufender Kopiermechanismus verwendet, der einen wohl defi¬ nierten Teil des Arbeitsspeichers einer aktiven Steuer- Einheit laufend auf den Speicher einer redundanten Einheit kopiert (häufig ,reflective Memory' genannt) .
Die direkte Folge ist, dass die Steuerungen für Vermittlungs¬ anlagen einen sehr hohen Entwicklungsaufwand erfordern und deren Innovationszyklus meist sehr lang ist. Zunehmend er¬ schweren auch aktuelle Optimierungen in der Entwicklung der Mikroprozessoren wie z.B. schnelle, oft auch proprietäre und geschützte Bussysteme und interne Caches mit write-back Funk¬ tion die Implementierung des reflective Memory erheblich.
Es ist Aufgabe der Erfindung die oben genannten Nachteile zu überwinden. Diese Aufgabe wird durch die Merkmale der unabhängigen Pa¬ tentansprüche hinsichtlich eines Verfahrens und hinsichtlich einer Vorrichtung gelöst. Weiterbildungen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
Ein wesentlicher Aspekt der Erfindung besteht in einem Ver¬ fahren zur Sicherung von konsistenten Speicherinhalten in re¬ dundant gehaltenen Speichereinheiten innerhalb eines Telekom¬ munikations- oder Datenverarbeitungssystems, aufweisend min- destens eine aktive Steuereinheit und mindestens eine redun¬ dante passive Steuereinheit, die jeweils mit mindestens einer Speichereinheit ausgebildet sind, wobei folgende Schritte ausgeführt werden:
- wenn auf einen Speicherbereich in einer Speichereinheit der aktiven Steuereinheit, dessen Speicherinhalt im Fal¬ le eines schreibenden Speicherzugriffs in eine Spei¬ chereinheit der mindestens einen redundanten passiven Steuereinheit gespiegelt werden soll, schreibend zuge¬ griffen wird, wird eine Spiegelungsroutine aufgerufen, - der Aufruf der genannten Spiegelungsroutine wird durch geeignete Einstellung der Speicherverwaltungseinheit be¬ wirkt, nicht durch expliziten Aufruf aus den laufenden Programmen, während der Ausführung der Spiegelungsroutine wird der zu schreibende Speicherinhalt in einen Speicherbereich in der Speichereinheit der mindestens einen redundanten passiven Steuereinheit abgelegt, und der Schreibzugriff auf der aktiven Steuereinheit, der zum Aufruf der Spiegelungsroutine geführt hat, wird in der Spiegelungsroutine erneut auf einen anderen virtuel¬ len Speicherbereich durchgeführt, der auf die gleiche physikalische Adresse abgebildet ist, wie der Speicher¬ bereich, dessen Beschreiben zum Aufruf der Spiegelungs¬ routine geführt hat.
Zentraler Vorteil der Erfindung ist, dass sich Programme, die keine Vorleistung für Redundanz enthalten, und die sonst nur zusammen mit Spezial-Hardware ein ausfallsicheres, hochver¬ fügbares System bilden, auf nahezu jeder kommerziell erhält¬ lichen Prozessorplattform ablaufen können und dennoch den selben Grad an Hochverfügbarkeit erreichen, wie aufwändige Speziallösungen.
Damit ist auch künftig möglich, ohne hohe Aufwände neue Gene¬ rationen von Steuerungs-Rechnern einzuführen, d.h. die Inno¬ vationszyklen können wesentlich kürzer werden.
Die dynamischen Nachteile durch den Aufruf der Spiegelungs¬ routine, auch Trap-Routine genannt, wird durch verschiedenes gemildert:
- Trap-Routinen werden nur beim Schreiben auf Seiten ausge¬ löst, deren Dateninhalte wirklich auf die redundante Einheit gespiegelt werden müssen. Damit sind viele Schreibzyklen für temporäre oder lokale Daten unbeeinflusst und laufen nach wie vor mit voller Performance. Auch alle Lesezugriffe werden nicht gebremst.
- Die Funktion der Trap-Routine kann als Funtkionssequenz im Micro Code implementiert werden, was die dynamischen Verluste beim Eintritt und Verlassen der Trap-Routine reduziert.
- Viele Prozessoren bieten ein spezielles Interface für Co¬ prozessoren. Die Verdopplung des SpeicherZugriffs auf die re¬ dundante und aktive Seite könnte nach Anstoß durch die Memory Management Unit auch von einem Co-Prozessor in Hardware rea- lisiert werden. Dadurch entfällt der dynamische Nachteil durch Trap Routine als auch Micro Code Routine.
Gemäß der Erfindung werden im laufenden Betrieb alle Verände¬ rungen des Speichers der aktiven Einheit durch eine Trap- Routine auf die redundante Einheit gespiegelt. Im Fall eines Fehlers kann dann ohne Verlust von Informationen auf die re¬ dundante Einheit umgeschaltet werden. Dieses Verfahren ist aber nur ausreichend, laufende Verände¬ rungen des Speichers auf die redundante Einheit zu spiegeln. Wird jedoch während des Betriebs eine Einheit z.B. wegen ei¬ nes Defektes ausgetauscht, erreicht man dadurch nicht mehr den identischen Speicherzustand des aktiven Boards. In diesem Fall müssen auch alle statischen Daten, d.h. solche, die im Betrieb nicht mehr verändert werden, zur ausgetauschten re¬ dundanten Einheit übertragen werden.
Demnach liegt eine vorteilhafte Ausgestaltung der Erfindung in einem Verfahren, entsprechend der folgenden Abläufe:
einmaliges, vollständiges Kopieren des Speicherinhalts der Speichereinheit der aktiven Steuereinheit in den Speicherbereich in der Speichereinheit der mindestens einen redundanten passiven Steuereinheit durch eine Ko¬ pierroutine nach Austausch oder Inbetriebnahme der pas¬ siven Steuereinheit,
- Erhöhen der zu kopierenden Speicheradresse in einer glo- balen Variable mit jedem Kopiervorgang,
- bei Ausführung der erst genannten Spiegelungsroutine vergleichen der Speicheradresse des zu beschreibenden Speicherbereichs mit der Speicheradresse in der globalen Variable, - Verzögern der Ausführung der erst genannten Kopierrouti¬ ne, wenn beim Vergleich die Speicheradressen überein¬ stimmen.
Dieses Kopieren des statischen Speicherinhalts der aktiven auf die redundante Einheit ist nicht trivial, da während des laufenden Betriebs der aktiven Einheit kopiert werden muss.
Also können Daten, während sie gerade durch den Kopiervorgang zur redundanten Einheit übertragen werden, verändert werden.
Kopieren wird üblicherweise durch Laden in ein Prozessor- Register und Zurückschreiben realisiert. Nun kann die aktive
Einheit gerade dann ein Datum verändern, nachdem es in das
Prozessor-Register geladen wurde, aber bevor es auf der re- dundanten Einheit abgespeichert werden konnte. Die dadurch mögliche Inkonsistenz von Daten auf der aktiven und redundan¬ ten Einheit wurde in bisherigen Systemen durch eine geeigne¬ te, proprietäre Hardware-Schaltung ausgeschlossen.
Die Notwendigkeit einer speziellen Hardware schließt jedoch den Einsatz von Standard-Baugruppen, wie sie am Markt erhält¬ lich sind, aus. Dadurch verursacht diese Lösung hohe Ent¬ wicklungsaufwände, die durch die im Folgenden vorgeschlagene Software-Realisierung entfallen kann.
Zentraler Vorteil der Erfindung ist, dass Systeme bestehend aus Standard-Baugruppen ohne spezielle Redundanz-Unterstüt¬ zung in Hardware im laufenden Betrieb synchronisiert werden können und so auch nach einem Austausch einer Einheit wieder in einen redundanten Betrieb mit schneller Umschaltmöglich¬ keit gebracht werden können.
Im Normalbetrieb, wenn ein konsistenter Speicher zwischen ak- tiver und redundanter Einheit erreicht ist, ist der dynami¬ sche Overhead durch das Prüfen der Speicherbereichsvariablen vernachlässigbar.
Ein weitere Aspekt der Erfindung liegt in einer Steuereinheit zur Durchführung des Verfahrens mit einer (VSP) und physika¬ lischem Speichereinheit (aPS) , dessen Speicherinhalt im Falle eines schreibenden Speicherzugriffs in eine Speichereinheit mindestens einer weiteren redundanten passiven Steuereinheit (rSt) gespiegelt werden kann, - Mittel zum Aufruf einer Spiegelungsroutine, um im Falle ei¬ nes schreibenden Speicherzugriffs auf den Speicherbereich den Speicherinhalt in einen Speicherbereich in der Speicherein¬ heit der mindestens einen redundanten passiven Steuereinheit zu verdoppeln, und - Mittel zur Durchführung des Schreibzugriffs, der zum Aufruf der Spiegelungsroutine geführt hat, auf einen anderen virtu¬ ellen Speicherbereich, der auf die gleiche physikalische Ad- resse abgebildet ist, wie der Speicherbereich, dessen Be¬ schreiben zum Aufruf der Spiegelungsroutine geführt hat.
Weitere Vorteile der Erfindung ergeben sich aus den nachste- hend beschriebenen, anhand einer Zeichnung erläuterten Aus¬ führungsformen.
Die Zeichnung zeigen:
Figur 1 und Figur 2 eine mögliche Architektur der aktiven und redundanten Steuereinheit.
Figur 1 zeigt eine Architektur einer aktiven Steuereinheit innerhalb eines Telekommunikationssystems. Es sind abgebildet ein aktiver Prozessor-Betrieb mit dem Ablauf von Code-Folgen CA, eine sogenannte Trap-Routine TR, eine Speichereinheit mit einem virtuellen Speicherbereich VSP, ein Speichersteuerein¬ heit aMM sowie eine Speichereinheit mit einem physikalischen Speicherbereich aPS, die untereinander kommunizieren (darge- stellt durch die Pfeillinien) . Des weiteren ist eine redun¬ dante Steuereinheit, die eine redundante Speichereinheit rPS umfasst, sowie ein Ein-/Ausgabesystem EA abgebildet, über die die aktive Steuereinheit mit der redundanten Steuereinheit kommuniziert.
In Figur 2 sind nahezu die gleichen Architektureinheiten ab¬ gebildet. Die aktive Steuereinheit aST weist zusätzlich eine weitere Kopierroutine KR auf. Redundante Speicherbereiche der aktiven bzw. redundanten Steuereinheit sind mit aRS bzw. rRS gekennzeichnet.
Figur 1:
Entsprechend der vorgeschlagenen Erfindung werden redundante Einheiten nicht mehr durch Spezial-Hardware mit der aktuellen Kopie des Speicherinhalts der aktiven Einheit versorgt. Statt dessen werden Funktionen der in allen relevanten Pro¬ zessoren vorhandenen Memory Management Unit (d.h. der Spei¬ cherverwaltung) verwendet, um zur Laufzeit bei jedem spei¬ chernden Zugriff der aktiven Steuereinheit AST überprüfen zu können, ob von dem zu schreibenden Datum auf der redundanten Steuereinheit rST eine Kopie angelegt werden muss.
Dies ist durch Einstellungen der Attribute pro Memory Page (typischerweise 4 Kilo Bytes) auf ,write protected' oder ,read only' möglich.
Greift demnach ein Prozess schreibend auf eine solchen Spei¬ cherbereich in der Speichersteuereinheit aMM zu, so wird die Befehlsausführung CA unterbrochen und eine Trap-Routine TR aufgerufen.
Diese Trap-Routine analysiert nun den Speicherbefehl und sorgt dafür, dass dasselbe Datum auf dieselbe Speicheradresse der redundanten Speichereinheit geschrieben wird. Dies kann durch geeignete Standard-Hardware wie z.B. PCI-Express unter¬ stützt sein.
Auch der lokale Schreibvorgang auf der aktiven Steuereinheit muss durchgeführt werden. Dies geschieht am effizientesten durch einen Schreibzyklus auf eine nicht-geschützte Memory
Page im virtuellen Adressraum der Virtuellen Speichereinheit VSP, die auf die gleiche physikalische Page in der physikali¬ schen Speichereinheit aPS wie die schreibgeschützte abgebil¬ det wird. Dies wird durch alle bekannten Speichersteuerein- heiten aMM ermöglicht.
Nachdem beide Schreibzugriffe auf den lokalen Speicher und auch auf die Speichereinheit rPS der redundanten Steuerein¬ heit erfolgt sind, kehrt die Trap-Routine in die normale Be- fehlsausführung hinter dem Speicherbefehl (der in der Trap Routine ausgeführt wurde) zurück und der normale Programmab¬ lauf wird fortgesetzt. Zur Verbesserung der dynamischen Eigenschaften kann die be¬ schriebene Funktionalität der Trap Routine auch als Micro Co¬ de im Prozessor realisiert sein. In diesem Fall würde durch das Write Protection Flag der Memory Page in der Speicher¬ steuereinheit aMM nicht eine Trap-Routine ausgelöst, sondern direkt die entsprechende Funktionssequenz als Micro Code an- gestossen, die den Schreibzugriff auf die redundante Steuer¬ einheit doppelt. Dadurch verringert sich der Dynamikverlust durch Eintritt und Verlassen der Trap Routine.
Als weitere Optimierung kann ein Co-Prozessor an den Prozes¬ sor angeschlossen werden, der nach Anstoß durch die Speicher¬ steuereinheit aMM die Verdoppelung der Schreibzugriffe sorgt. Damit können Trap Routine als auch Micro Code Routine entfal¬ len.
Figur 2:
Auf der aktiven Steuereinheit aSt kopiert eine Software- bzw. Kopierroutine KR den Speicher fortlaufend auf die redundante Steuereinheit rSt. Dies geschieht in kleinen, festen Einhei¬ ten (z.B. von der Größe einer Cacheline) . Gleichzeitig läuft auf allen übrigen Prozessoren der aktiven Steuereinheit der aktive Betrieb. Daraus resultiert der ständige Aufruf von
Trap-Routinen TR, die aktuelle Veränderungen des Speicherin¬ halts auf die redundante Steuereinheit rSt spiegeln.
Um Inkonsistenzen mit den Daten, die von den Trap-Routinen gespiegelt werden, zu vermeiden, wird die Basis-Adresse des gerade kopierten Datenblocks (z.B. cache-line) in einer glo¬ balen Variablen abgelegt. Diese globale Variable liegt im ge¬ meinsamen Speicher aRS der aktiven Steuereinheit, alle Pro¬ zessoren der aktiven Steuereinheit haben lesenden Zugriff (ausser dem Kopierprozess, er schreibt die Basisadresse für jeden zu kopierende Datenblock fort) . Wenn nun auf irgendeinem Prozessor die Trap-Routine bei einem Schreibzugriff auf den Speicher aufgerufen wird, muss in der Trap-Routine die globale Variable mit der Basis-Adresse mit der aktuellen Schreibadresse verglichen werden. Sind die Ad- ressen unterschiedlich (d.h. der Schreibzugriff geht auf ei¬ nen Bereich, der gerade nicht kopiert wird) , kann die Trap- Routine normal durchlaufen und der Schreibzugriff wird auf die Seite der redundanten Steuereinheit gespiegelt. Sollte in der Trap-Routine festgestellt werden, dass der Zugriff auf den Datenblock geht, die gerade auf den Speicher der redun¬ danten Steuereinheit gespiegelt wird, pollt die Trap-Routine solange die globale Variable, bis der Umkopiervorgang beendet ist und die globale Variable auf den nächsten Datenblock wei¬ tergezählt wurde. Dann kann die Trap-Routine ebenfalls normal zu Ende laufen.
Auswirkungen auf die dynamische Performance: Das Polling in der Trap-Routine ist selten (nur nötig wenn gerade genau der aktuell kopierte Datenblock beschrieben wird) , und das PoI- ling dauert nicht lange (Kopieren eines solchen kleinen Be¬ reiches dauert nicht lange) . Allerdings erzeugt die Abfrage der globalen Variablen immer Overhead in der Trap Routine durch den notwendigen Adressvergleich. Die zusätzliche Lauf¬ zeit ist aber im Normalbetrieb gering, wenn kein Kopiervor- gang des Speichers läuft. In diesem Fall, wenn die globale Variable länger nicht geändert wird, ist sie (wegen der Häu¬ figkeit des Traps) beim Aufruf der Trap-Routine sicher im Ca¬ che, und der Vergleich führt nur zu geringem Laufzeit-Over- head. Kritischer ist der Overhead, wenn parallel der ümko- pier-Prozess läuft. Dabei wird die Variable laufend geändert, und im Cache ist keine aktuelle Kopie. In diesem Fall muss ein Speicherzugriff auf den Speicher als Overhead der Trap- Routine zum Einlesen der Adresse erfolgen, die in der globa¬ len Variablen steht.
Dieses Prinzip stellt keine besonderen Voraussetzungen an Hardware oder Software eines redundanten Systems. Es muss Ie- diglich die entsprechende Routine zum Umkopieren des Spei¬ cherinhalts mit der Steuerung über eine globale Variable, die die aktuell zu kopierende Adresse hält, integriert werden.

Claims

Patentansprüche
1. Verfahren zur Sicherung von konsistenten Speicherinhalten in redundant gehaltenen Speichereinheiten innerhalb eines
Telekommunikations- oder Datenverarbeitungs-Systems, auf¬ weisend mindestens eine aktive Steuereinheit (aSt) und mindestens eine redundante passive Steuereinheit (rSt) , die jeweils mit mindestens einer Speichereinheit ausgebil- det sind, wobei folgende Schritte ausgeführt werden: wenn auf einen Speicherbereich (VSP) in einer Spei¬ chereinheit einer aktiven Steuereinheit (aSt) , dessen Speicherinhalt im Falle eines schreibenden Speicher¬ zugriffs in eine Speichereinheit (rPS) der mindestens einen redundanten passiven Steuereinheit (rSt) kopiert werden soll, schreibend zugegriffen wird, wird eine Spiegelungsroutine (TR) aufgerufen,
- der Aufruf der genannten Spiegelungsroutine (TR) wird durch geeignete Einstellung der Speicherverwaltungsein- heit (aMM) bewirkt, nicht durch expliziten Aufruf aus den laufenden Programmen (CA) .
- während der Ausführung der Spiegelungsroutine (TR) wird der zu schreibende Speicherinhalt in einen Speicherbe¬ reich in der Speichereinheit (rPS) der mindestens einen redundanten passiven Steuereinheit (rSt) kopiert, und der Schreibzugriff auf der aktiven Steuereinheit, der zum Aufruf der Spiegelungsroutine geführt hat, wird in der Spiegelungsroutine erneut auf einen anderen virtuel¬ len Speicherbereich durchgeführt, der auf die gleiche physikalische Adresse abgebildet ist, wie der Speicher¬ bereich, dessen Beschreiben zum Aufruf der Spiegelungs¬ routine geführt hat.
2. Verfahren nach dem vorhergehenden Anspruch, dadurch ge- kennzeichnet, dass der genannte virtuelle Speicherbereich vor dem schreibenden Speicherzugriff als schreibgeschützt gekennzeichnet ist.
3. Verfahren nach einem der vorhergehenden Ansprüche gekenn¬ zeichnet durch weitere Schritte: einmaliges, vollständiges Kopieren des Speicherinhalts der Speichereinheit der aktiven Steuereinheit (aSt) in den Speicherbereich in der Speichereinheit der mindes¬ tens einen redundanten passiven Steuereinheit (rSt) durch eine Kopierroutine (KR) nach Austausch oder Inbe¬ triebnahme der redundanten Steuereinheit (rSt) , - Erhöhen der Speicheradresse in einer globalen Variable mit jedem Kopiervorgang, bei Ausführung der Spiegelungsroutine (TR) vergleichen der Speicheradresse des zu beschreibenden Speicherbe¬ reichs mit der Speicheradresse in der globalen Variable, - Verzögern der Ausführung der Spiegelungsroutine (TR) , wenn beim Vergleich die Speicheradressen übereinstimmen.
4. Verfahren nach dem vorhergehenden Anspruch, dadurch ge¬ kennzeichnet, dass die Spiegelungsroutine (TR) fortgesetzt wird, wenn bei einem erneuten Vergleich die Speicheradres¬ sen unterschiedlich sind.
5. Verfahren nach dem vorhergehenden Anspruch, dadurch ge¬ kennzeichnet, dass die Spiegelungsroutine (TR) als Funkti- onssequenz im Mikroprozessor-Code implementiert ist.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Spiegelungsroutine (TR) durch ei¬ nen Co-Prozessor ausgeführt wird.
7. Steuereinheit (aSt) zur Durchführung des Verfahrens nach einem der vorhergehenden Ansprüche, mit einer virtuellen (VSP) und physikalischem Speichereinheit (aPS) , dessen Speicherinhalt im Falle eines schreibenden Speicher- Zugriffs in eine Speichereinheit mindestens einer weiteren redundanten passiven Steuereinheit (rSt) kopiert werden kann, - Mittel zum Aufruf einer Spiegelungsroutine (TR) , um im Falle eines schreibenden Speicherzugriffs auf den Spei¬ cherbereich (VSP) den Speicherinhalt in einen Speicher¬ bereich in der Speichereinheit der mindestens einen re- dundanten passiven Steuereinheit (rSt) zu verdoppeln, und
- Mittel zur Durchführung des Schreibzugriffs, der zum Aufruf der Spiegelungsroutine (TR) geführt hat, auf ei¬ nen anderen virtuellen Speicherbereich, der auf die gleiche physikalische Adresse abgebildet ist, wie der
Speicherbereich, dessen Beschreiben zum Aufruf der Spie¬ gelungsroutine geführt hat.
PCT/EP2004/008402 2004-07-27 2004-07-27 Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundant speicherinheiten WO2006010374A1 (de)

Priority Applications (8)

Application Number Priority Date Filing Date Title
ES04763535T ES2298796T3 (es) 2004-07-27 2004-07-27 Procedimiento y dispositivo para salvar contenidos consistentes de memoria en unidades de memoria redundantes.
DE502004005875T DE502004005875D1 (de) 2004-07-27 2004-07-27 Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundanten speichereinheiten
PCT/EP2004/008402 WO2006010374A1 (de) 2004-07-27 2004-07-27 Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundant speicherinheiten
US11/658,840 US20080313413A1 (en) 2004-07-27 2004-07-27 Method and Device for Insuring Consistent Memory Contents in Redundant Memory Units
AT04763535T ATE382894T1 (de) 2004-07-27 2004-07-27 Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundanten speichereinheiten
EP04763535A EP1771788B1 (de) 2004-07-27 2004-07-27 Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundanten speichereinheiten
CA002575132A CA2575132A1 (en) 2004-07-27 2004-07-27 Method and device for insuring consistent memory contents in redundant memory units
CNA2004800436782A CN1993681A (zh) 2004-07-27 2004-07-27 对保持冗余的存储单元中的一致的存储内容进行保护的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2004/008402 WO2006010374A1 (de) 2004-07-27 2004-07-27 Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundant speicherinheiten

Publications (1)

Publication Number Publication Date
WO2006010374A1 true WO2006010374A1 (de) 2006-02-02

Family

ID=34958288

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2004/008402 WO2006010374A1 (de) 2004-07-27 2004-07-27 Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundant speicherinheiten

Country Status (8)

Country Link
US (1) US20080313413A1 (de)
EP (1) EP1771788B1 (de)
CN (1) CN1993681A (de)
AT (1) ATE382894T1 (de)
CA (1) CA2575132A1 (de)
DE (1) DE502004005875D1 (de)
ES (1) ES2298796T3 (de)
WO (1) WO2006010374A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2662773A1 (de) * 2012-05-10 2013-11-13 EADS Deutschland GmbH Redundantes Mehrprozessorsystem und zugehöriges Verfahren

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007323321A (ja) * 2006-05-31 2007-12-13 Toshiba Corp 半導体記憶装置およびそのデータ送信方法
US9569349B2 (en) * 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content
JP4957853B1 (ja) 2011-03-15 2012-06-20 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体
EP2728479A1 (de) * 2012-11-05 2014-05-07 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Auslesen eines Datenspeichers
US9262090B2 (en) * 2013-02-26 2016-02-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Asynchronous data mirroring in memory controller
US10515671B2 (en) 2016-09-22 2019-12-24 Advanced Micro Devices, Inc. Method and apparatus for reducing memory access latency
DE102016225308A1 (de) * 2016-12-16 2018-06-21 Robert Bosch Gmbh Verfahren und Vorrichtung zum Kalibrieren eines Steuergerätes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4005321A1 (de) * 1990-02-20 1991-08-22 Siemens Ag Fehlertolerantes rechnersystem
EP0460308A1 (de) * 1989-01-23 1991-12-11 Honeywell Inc. Verfahren zur Aktualisierung einer Kontrolldatenbank eines redundanten Prozessors in einem Prozessüberwachungssystem
EP0817053A1 (de) * 1996-07-01 1998-01-07 Sun Microsystems, Inc. Speicherverwaltung in fehlertoleranten Computersystemen
US6374364B1 (en) * 1998-01-20 2002-04-16 Honeywell International, Inc. Fault tolerant computing system using instruction counting
EP1249744A1 (de) * 2001-08-23 2002-10-16 Siemens Aktiengesellschaft Verfahren zum Herstellen konsistenter Speicherinhalte in redundanten Systemen

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4873630A (en) * 1985-07-31 1989-10-10 Unisys Corporation Scientific processor to support a host processor referencing common memory
US5210866A (en) * 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
US5325499A (en) * 1990-09-28 1994-06-28 Tandon Corporation Computer system including a write protection circuit for preventing illegal write operations and a write poster with improved memory
US5881311A (en) * 1996-06-05 1999-03-09 Fastor Technologies, Inc. Data storage subsystem with block based data management
US20030110344A1 (en) * 1996-09-18 2003-06-12 Andre Szczepanek Communications systems, apparatus and methods

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0460308A1 (de) * 1989-01-23 1991-12-11 Honeywell Inc. Verfahren zur Aktualisierung einer Kontrolldatenbank eines redundanten Prozessors in einem Prozessüberwachungssystem
DE4005321A1 (de) * 1990-02-20 1991-08-22 Siemens Ag Fehlertolerantes rechnersystem
EP0817053A1 (de) * 1996-07-01 1998-01-07 Sun Microsystems, Inc. Speicherverwaltung in fehlertoleranten Computersystemen
US6374364B1 (en) * 1998-01-20 2002-04-16 Honeywell International, Inc. Fault tolerant computing system using instruction counting
EP1249744A1 (de) * 2001-08-23 2002-10-16 Siemens Aktiengesellschaft Verfahren zum Herstellen konsistenter Speicherinhalte in redundanten Systemen

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2662773A1 (de) * 2012-05-10 2013-11-13 EADS Deutschland GmbH Redundantes Mehrprozessorsystem und zugehöriges Verfahren

Also Published As

Publication number Publication date
EP1771788B1 (de) 2008-01-02
CA2575132A1 (en) 2006-02-02
US20080313413A1 (en) 2008-12-18
CN1993681A (zh) 2007-07-04
DE502004005875D1 (de) 2008-02-14
EP1771788A1 (de) 2007-04-11
ES2298796T3 (es) 2008-05-16
ATE382894T1 (de) 2008-01-15

Similar Documents

Publication Publication Date Title
DE69111635T2 (de) Gerät und Verfahren zur Background-Speicherprüfung während des Systemanlaufs.
DE69817696T2 (de) Warmaustausch von gespiegeltem Nachschreib-Cachespeicher
DE69732181T2 (de) Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen
DE602005004166T2 (de) Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen
DE69231873T2 (de) Verfahren zur Synchronisierung von reservierten Bereichen in einer redundanten Speicheranordnung
DE69022716T2 (de) Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür.
DE69903629T2 (de) Prüfung der funktionsfähigkeit eines gerätetreibers
DE69724572T2 (de) Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE102006048856B4 (de) Verfahren zum Betreiben einer IC-Halbleiterspeichervorrichtung und IC-Halbleiterspeichervorrichtung
DE102008062044B4 (de) 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE3803759A1 (de) Cache-speicher zur verwendung in multiprozessor-systemen
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE102007018033A1 (de) Kohärenzverzeichnisaktualisierung
DE10393727T5 (de) Prozessor-Cache-Speicher als RAM zur Ausführung von Boot-Code
DE102006047656A1 (de) Speichersteuerung
DE202007019502U1 (de) Globaler Überlauf für virtualisierten Transaktionsspeicher
DE69032508T2 (de) Fehlertolerantes Rechnersystem mit Online-Wiedereinfügung und Abschaltung/Start
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE112005000996T5 (de) Mechanismus zum Annullieren von Dateneinträgen eines Umsetzungspuffers in einem Mehrprozessorsystem
DE69325473T2 (de) Virtuelles Speichersystem verwendendes Datenverarbeitungssystem und -verfahren
EP1771788B1 (de) Verfahren und vorrichtung zur sicherung von konsistenten speicherinhalten in redundanten speichereinheiten
DE112004000694T5 (de) Ein Verfahren und eine Vorrichtung zur Verbesserung der Multi-CPU-Systemleistung für Speicherzugriffe
DE68927306T2 (de) Emulationssystem, fähig zur Anpassung an Mikrorechner mit verschiedenen On-Chip-Speicherkapazitäten

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2004763535

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2575132

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 200480043678.2

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 11658840

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 2004763535

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 2004763535

Country of ref document: EP