DE102004051992A1 - Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems - Google Patents

Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems Download PDF

Info

Publication number
DE102004051992A1
DE102004051992A1 DE200410051992 DE102004051992A DE102004051992A1 DE 102004051992 A1 DE102004051992 A1 DE 102004051992A1 DE 200410051992 DE200410051992 DE 200410051992 DE 102004051992 A DE102004051992 A DE 102004051992A DE 102004051992 A1 DE102004051992 A1 DE 102004051992A1
Authority
DE
Germany
Prior art keywords
processor
processors
data
clock
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE200410051992
Other languages
English (en)
Inventor
Thomas Kottke
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE200410051992 priority Critical patent/DE102004051992A1/de
Priority to DE102005037222A priority patent/DE102005037222A1/de
Priority to DE102005037223A priority patent/DE102005037223A1/de
Priority to DE102005037213A priority patent/DE102005037213A1/de
Priority to DE102005037242A priority patent/DE102005037242A1/de
Priority to CNA2005800365300A priority patent/CN101048752A/zh
Priority to JP2007537303A priority patent/JP2008518310A/ja
Priority to DE502005006442T priority patent/DE502005006442D1/de
Priority to RU2007119321/09A priority patent/RU2007119321A/ru
Priority to AT05801485T priority patent/ATE420402T1/de
Priority to JP2007537297A priority patent/JP2008518305A/ja
Priority to AT05797110T priority patent/ATE426204T1/de
Priority to US11/666,377 priority patent/US20080209170A1/en
Priority to EP05801485A priority patent/EP1812855B1/de
Priority to DE502005005287T priority patent/DE502005005287D1/de
Priority to EP05801384A priority patent/EP1812854A1/de
Priority to EP05811130A priority patent/EP1807760B1/de
Priority to KR1020077008951A priority patent/KR20070062565A/ko
Priority to EP05797173A priority patent/EP1810147A1/de
Priority to PCT/EP2005/055495 priority patent/WO2006045773A2/de
Priority to EP05797174A priority patent/EP1810148A1/de
Priority to DE502005006441T priority patent/DE502005006441D1/de
Priority to JP2007538399A priority patent/JP2008518339A/ja
Priority to JP2007537290A priority patent/JP2008518298A/ja
Priority to US11/666,325 priority patent/US20080270747A1/en
Priority to EP05801268A priority patent/EP1807761A1/de
Priority to DE502005005428T priority patent/DE502005005428D1/de
Priority to PCT/EP2005/055548 priority patent/WO2006045806A2/de
Priority to US11/666,405 priority patent/US7853819B2/en
Priority to PCT/EP2005/055504 priority patent/WO2006045778A1/de
Priority to US11/666,403 priority patent/US20080263340A1/en
Priority to JP2007537296A priority patent/JP2008518304A/ja
Priority to JP2007537293A priority patent/JP2008518301A/ja
Priority to US11/666,182 priority patent/US20080313384A1/en
Priority to CNA200580036469XA priority patent/CN101048741A/zh
Priority to KR1020077009143A priority patent/KR101052994B1/ko
Priority to RU2007119318/09A priority patent/RU2007119318A/ru
Priority to DE502005005286T priority patent/DE502005005286D1/de
Priority to PCT/EP2005/055499 priority patent/WO2006045774A1/de
Priority to PCT/EP2005/055507 priority patent/WO2006045780A1/de
Priority to EP05804490A priority patent/EP1812859B1/de
Priority to EP05811008A priority patent/EP1812861A1/de
Priority to CNA2005800364878A priority patent/CN101048748A/zh
Priority to PCT/EP2005/055500 priority patent/WO2006045775A1/de
Priority to KR1020077008952A priority patent/KR101017444B1/ko
Priority to EP05801572A priority patent/EP1812856B1/de
Priority to JP2007537294A priority patent/JP2008518302A/ja
Priority to PCT/EP2005/055512 priority patent/WO2006045785A1/de
Priority to US11/666,412 priority patent/US20090125749A1/en
Priority to KR1020077009250A priority patent/KR20070083771A/ko
Priority to CNB2005800364971A priority patent/CN100520730C/zh
Priority to JP2007537304A priority patent/JP2008518311A/ja
Priority to KR1020077009142A priority patent/KR20070062576A/ko
Priority to EP05808034A priority patent/EP1817662B1/de
Priority to US11/666,260 priority patent/US20090119540A1/en
Priority to RU2007119314/09A priority patent/RU2384877C2/ru
Priority to JP2007537291A priority patent/JP2008518299A/ja
Priority to PCT/EP2005/055517 priority patent/WO2006045789A1/de
Priority to CNA2005800365495A priority patent/CN101048755A/zh
Priority to US11/666,184 priority patent/US8090983B2/en
Priority to KR1020077008953A priority patent/KR20070062567A/ko
Priority to DE502005007806T priority patent/DE502005007806D1/de
Priority to JP2007537298A priority patent/JP2008518306A/ja
Priority to CNB2005800365777A priority patent/CN100483359C/zh
Priority to JP2007537301A priority patent/JP2008518308A/ja
Priority to AT05797084T priority patent/ATE407398T1/de
Priority to KR1020077008954A priority patent/KR20070083732A/ko
Priority to JP2007538402A priority patent/JP2008518341A/ja
Priority to JP2007537295A priority patent/JP4669007B2/ja
Priority to US11/665,727 priority patent/US7856569B2/en
Priority to KR1020077009253A priority patent/KR20070083772A/ko
Priority to PCT/EP2005/055516 priority patent/WO2006045788A1/de
Priority to EP05801427A priority patent/EP1807762A1/de
Priority to EP05801543A priority patent/EP1807763B1/de
Priority to CNB2005800365781A priority patent/CN100520731C/zh
Priority to EP05801574A priority patent/EP1812858B1/de
Priority to DE502005006496T priority patent/DE502005006496D1/de
Priority to US11/666,413 priority patent/US20090164826A1/en
Priority to PCT/EP2005/055538 priority patent/WO2006045801A2/de
Priority to AT05808034T priority patent/ATE438138T1/de
Priority to DE502005005285T priority patent/DE502005005285D1/de
Priority to CNA2005800364793A priority patent/CN101120320A/zh
Priority to PCT/EP2005/055519 priority patent/WO2006045790A1/de
Priority to AT05804490T priority patent/ATE420403T1/de
Priority to JP2007537302A priority patent/JP4532561B2/ja
Priority to PCT/EP2005/055509 priority patent/WO2006045782A2/de
Priority to RU2007119317/09A priority patent/RU2007119317A/ru
Priority to CNA2008101697667A priority patent/CN101393533A/zh
Priority to AT05801543T priority patent/ATE409327T1/de
Priority to EP05801573A priority patent/EP1812857B1/de
Priority to KR1020077009144A priority patent/KR20070083759A/ko
Priority to PL05801572T priority patent/PL1812856T3/pl
Priority to US11/666,394 priority patent/US20080091927A1/en
Priority to AT05801572T priority patent/ATE407399T1/de
Priority to KR1020077009249A priority patent/KR20070068405A/ko
Priority to KR1020077008960A priority patent/KR20070062568A/ko
Priority to EP05811107A priority patent/EP1820102A2/de
Priority to PCT/EP2005/055502 priority patent/WO2006045776A1/de
Priority to PCT/EP2005/055549 priority patent/WO2006045807A2/de
Priority to AT05804493T priority patent/ATE421120T1/de
Priority to PCT/EP2005/055508 priority patent/WO2006045781A2/de
Priority to JP2007537292A priority patent/JP2008518300A/ja
Priority to US11/666,328 priority patent/US20070294559A1/en
Priority to US11/666,407 priority patent/US20080126718A1/en
Priority to JP2007537306A priority patent/JP2008518313A/ja
Priority to DE502005006899T priority patent/DE502005006899D1/de
Priority to CNA2005800364863A priority patent/CN101048730A/zh
Priority to EP05797110A priority patent/EP1810146B1/de
Priority to EP05801429A priority patent/EP1805618A2/de
Priority to AT05801573T priority patent/ATE407400T1/de
Priority to ES05801572T priority patent/ES2311238T3/es
Priority to JP2007537288A priority patent/JP2008518296A/ja
Priority to US11/666,404 priority patent/US20080288758A1/en
Priority to JP2007537299A priority patent/JP2008518307A/ja
Priority to US11/666,183 priority patent/US7669079B2/en
Priority to US11/666,409 priority patent/US20070255875A1/en
Priority to JP2007537289A priority patent/JP2008518297A/ja
Priority to KR1020077009127A priority patent/KR100994039B1/ko
Priority to CNA2005800365762A priority patent/CN101048757A/zh
Priority to CNB2005800364219A priority patent/CN100538654C/zh
Priority to KR1020077009252A priority patent/KR20070067168A/ko
Priority to EP05801271A priority patent/EP1810149A1/de
Priority to RU2007119316/09A priority patent/RU2007119316A/ru
Priority to CNA200580036412XA priority patent/CN101048743A/zh
Priority to KR1020077009266A priority patent/KR20070083776A/ko
Priority to EP05803464A priority patent/EP1807764A2/de
Priority to US11/666,406 priority patent/US20080163035A1/en
Priority to PCT/EP2005/055511 priority patent/WO2006045784A1/de
Priority to US11/666,185 priority patent/US20080320340A1/en
Priority to RU2007119323/09A priority patent/RU2007119323A/ru
Priority to EP05797084A priority patent/EP1810145B1/de
Priority to KR1020077009363A priority patent/KR20070067169A/ko
Priority to PCT/EP2005/055514 priority patent/WO2006045786A1/de
Priority to DE502005005284T priority patent/DE502005005284D1/de
Priority to PCT/EP2005/055539 priority patent/WO2006045802A2/de
Priority to KR1020077009128A priority patent/KR20070062573A/ko
Priority to PCT/EP2005/055537 priority patent/WO2006045800A1/de
Priority to EP05804493A priority patent/EP1812860B1/de
Priority to DE502005005490T priority patent/DE502005005490D1/de
Priority to PCT/EP2005/055532 priority patent/WO2006045798A1/de
Priority to JP2007538400A priority patent/JP2008518340A/ja
Priority to KR1020077009130A priority patent/KR20070062574A/ko
Priority to AT05811130T priority patent/ATE408863T1/de
Priority to KR1020077009148A priority patent/KR20070062577A/ko
Priority to RU2007119322/09A priority patent/RU2007119322A/ru
Priority to KR1020077009126A priority patent/KR20070085278A/ko
Priority to PCT/EP2005/055503 priority patent/WO2006045777A1/de
Priority to JP2007538398A priority patent/JP5053854B2/ja
Priority to EP05801505A priority patent/EP1810150A2/de
Priority to US11/666,175 priority patent/US20080270746A1/en
Priority to JP2007537305A priority patent/JP2008518312A/ja
Priority to EP05826785.7A priority patent/EP1820093B1/de
Priority to PCT/EP2005/055506 priority patent/WO2006045779A1/de
Priority to US11/666,396 priority patent/US20080320287A1/en
Priority to US11/666,410 priority patent/US20090265581A1/en
Priority to KR1020077009145A priority patent/KR20070083760A/ko
Priority to CNB2005800365264A priority patent/CN100565466C/zh
Priority to PCT/EP2005/055542 priority patent/WO2006045804A1/de
Priority to US11/666,383 priority patent/US20090044048A1/en
Priority to KR1020077009251A priority patent/KR20070062579A/ko
Priority to AT05801574T priority patent/ATE407401T1/de
Publication of DE102004051992A1 publication Critical patent/DE102004051992A1/de
Withdrawn legal-status Critical Current

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/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1654Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Abstract

Verfahren und Vorrichtung zur Verzögerung der Zugriffe auf Daten und/oder Befehle eines Mehrprozessorsystems mit einem ersten und einem zweiten Prozessor, denen eine Speichereinheit zugeordnet ist, wobei der erste und zweite Prozessor mit einem Taktversatz arbeiten und die Vorrichtung derart ausgebildet ist, dass beide Prozessoren mit diesem Taktversatz auf die gleiche Speichereinheit zugreifen.

Description

  • Stand der Technik
  • Die Erfindung geht aus von einem Verfahren zur Verzögerung der Zugriffe auf Daten und/oder Befehle eines Mehrrechnersystems sowie einer entsprechenden Verzögerungseinheit gemäß den aus dem Stand der Technik bekannten Merkmale der unabhängigen Ansprüche.
  • In technischen Anwendungen, wie insbesondere im Kraftfahrzeug oder im Industriegüterbereich also z.B. Maschinenbereich und in der Automatisierung werden ständig mehr und mehr mikroprozessor- oder rechnerbasierte Steuerungs- und Regelungssysteme für sicherheitskritische Anwendungen eingesetzt. Dabei sind Zweirechnersysteme oder Zweiprozessorsysteme (Dual Cores) heutzutage gängige Rechnersysteme für sicherheitskritische Anwendungen, insbesondere im Fahrzeug wie beispielsweise für Antiblockiersysteme, das Elektronische Stabilitätsprogramm (ESP), X-by-Wire-Systeme wie Drive-by-Wire oder Steer-by-Wire sowie Break-by-Wire, usw. oder auch bei sonstigen vernetzten Systemen. Um diese hohen Sicherheitsansprüche in zukünftigen Anwendungen zu befriedigen, sind mächtige Fehlermechanismen und Fehlerbehandlungsmechanismen erforderlich, insbesondere um transienten Fehler, die beispielsweise bei Verkleinerung der Halbleiterstrukturen der Rechnersysteme entstehen, zu begegnen. Dabei ist es relativ schwierig den Core selbst, also den Prozessor zu schützen. Eine Lösung hierfür ist wie erwähnt die Verwendung eines Zweirechnersystems oder Dual Core-Systems zur Fehlerdetektion.
  • Solche Prozessoreinheiten mit wenigstens zwei integrierten Ausführungseinheiten sind somit als Dual-Core- oder Multi-Core-Architekturen bekannt. Solche Dual-Core- oder Multi-Core-Architekturen werden nach heutigem Stand der Technik hauptsächlich aus zwei Gründen vorgeschlagen: Zum Einen kann damit eine Leistungssteigerung, also eine Performance-Steigerung erreicht werden, indem die beiden Ausführungseinheiten oder Cores als zwei Recheneinheiten auf einem Halbleiterbaustein betrachtet und behandelt werden. In dieser Konfiguration bearbeiten die zwei Ausführungseinheiten oder Cores unterschiedliche Programme respektive Tasks. Dadurch lässt sich eine Leistungssteigerung erzielen, weshalb diese Konfiguration als Leistungsmodus oder Performance-Mode bezeichnet wird.
  • Der zweite Grund, eine Dual-Core- oder Multi-Core-Architektur zu realisieren, ist eine Sicherheitssteigerung, indem die beiden Ausführungseinheiten redundant das gleiche Programm abarbeiten. Die Ergebnisse der beiden Ausführungseinheiten oder CPUs, also Cores werden verglichen und ein Fehler kann bei dem Vergleich auf Übereinstimmung erkannt werden. Im Folgenden wird diese Konfiguration als Sicherheitsmodus oder Safety-Mode oder auch Fehlererkennungsmodus bezeichnet.
  • Heutzutage gibt es somit einerseits Zwei- oder Mehrprozessorsysteme die zur Erkennung von Hardware-Fehlern redundant arbeiten (siehe Dual-Core oder Master-Checker-Systeme) und anderseits Zwei- oder Mehrprozessorsysteme, die auf ihren Prozessoren unterschiedliche Daten abarbeiten. Kombiniert man nun diese beiden Betriebsarten in einem Zwei- oder Mehrprozessorsystem (der Einfachheit halber wird nun nur noch von einem Zweiprozessorsystem gesprochen, die nachfolgende Erfindung ist aber genauso auf Mehrprozessorsystemen anwendbar), so müssen die beiden Prozessoren im Performance-Modus unterschiedliche Daten erhalten und im Fehlererkennungsmodus die gleichen Daten.
  • Die Aufgabe der Erfindung ist nun eine Einheit und eine Verfahren vorzustellen, die den wenigstens beiden Prozessoren abhängig vom Modus die Instruktionen/Daten redundant oder unterschiedlich liefert und insbesondere im Performance-Modus die Speicherzugriffsrechte aufteilt.
  • Solch eine Einheit ist bis jetzt noch nicht bekannt. Sie ermöglicht den effektiven Betrieb eines Zweiprozessorsystems, so dass in den beiden Modi Sicherheit und Performance im Betrieb umgeschaltet werden kann. Dabei wird im weiteren von Prozessoren gesprochen, was aber ebenso Cores bzw. Recheneinheiten begrifflich einschließt.
  • Bei den Implementierungen von insbesondere Zweiprozessorsystemen (Dual-Core) wird für jeden Prozessor ein Cache vorgesehen. 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. Caches dienen dabei im System 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 wird bei Zweiprozessorsystemen für jeden Prozessor üblicherweise ein eigener Cache vorgesehen.
  • 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, um einen Cache einzusparen.
  • Beschreibung der Ausführungsbeispiele und Vorteile der Erfindung
  • Wenn diese beiden Prozessoren nun mit einem Taktversatz betrieben werden, kann nun mit dem vorgeschlagenen Verfahren und der entsprechenden Vorrichtung auf den zweiten Cache für den Slave-Prozessor verzichtet werden.
  • In 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 Fehlern, 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.
  • Erfindungsgemäß 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.
  • Durch eine Taktumschaltung für ein Zweiprozessorsystem wird im Modus Sicherheit das Optimum bei der Fehlererkennung herausgeholt und im Modus Performance das Maximum an der Performance.
  • Somit geht die Erfindung vorteilhafter Weise von einem Verfahren und einer Vorrichtung zur Verzögerung der Zugriffe auf Daten und/oder Befehle eines Mehrprozessorsystems mit einem ersten und einem zweiten Prozessor, denen eine Speichereinheit zugeordnet ist, wobei der erste und zweite Prozessor mit einem Taktversatz arbeiten und die Vorrichtung derart ausgebildet ist, dass beide Prozessoren mit diesem Taktversatz auf die gleiche Speichereinheit zugreifen.
  • Zweckmäßiger Weise werden dabei als Zugriffe Schreiboperationen und Leseoperationen verzögert werden, wobei die Vorrichtung zwischen Verzögerung der Zugriffe und Nicht- Verzögerung der Zugriffe umschaltbar ist. Daneben ist ein Mehrprozessorsystem mit einer derartigen Vorrichtung offenbart.
  • In wenigstens 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.
  • Dabei entspricht der erste Betriebsmodus einem Sicherheitsmodus, bei dem die zwei Recheneinheiten gleiche Programme und/oder Daten abarbeiten und Vergleichsmittel vorgesehen sind, welche die bei der Abarbeitung der gleichen Programme entstehenden Zustände auf Übereinstimmung vergleichen.
  • Die erfindungsgemäße Einheit bzw. das erfindungsgemäße Verfahren ermöglicht die optimierte Implementierung der beiden Modi in einem Zweiprozessorsystem.
  • Arbeiten die beiden Prozessoren im Fehlererkennungsmodus (F-Modus), so erhalten die beiden Prozessoren die gleichen Daten/Instruktionen und arbeiten sie im Performancemodus (P-Modus), so kann jeder Prozessor auf den Speicher zugreifen. Dann verwaltet diese Einheit die Zugriffe auf den nur einfach vorhandenen Speicher oder Peripherie.
  • Im F-Modus übernimmt die Einheit die Daten/Adressen eines Prozessors (hier Master genannt) und leitet diese an die Komponenten wie Speicher, Bus, usw. weiter. Der zweite Prozessor (hier Slave) möchte den gleichen Zugriff machen. Die Datenverteilungseinheit nimmt dies an einem zweiten Port entgegen, aber leitet die Anfrage nicht an die weiteren Komponenten weiter. Die Datenverteilungseinheit übergibt dem Slave die gleichen Daten wie dem Master und vergleicht die Daten der beiden Prozessoren. Sind diese unterschiedlich, so zeigt dies die Datenverteilungseinheit (hier DVE) durch ein Fehlersignal an. Es arbeitet somit nur der Master auf den Bus/Speicher und der Slave bekommt die selben Daten (Funktionsweise wie bei einem Dual-Core System).
  • Im P-Modus arbeiten die beiden Prozessoren unterschiedliche Programmteile ab. Die Speicherzugriffe sind somit auch unterschiedlich. Die DVE nimmt somit die Anforderung der Prozessoren entgegen und gibt die Ergebnisse/angeforderte Daten an den Prozessor zurück, der sie angefordert hat. Möchten nun beide Prozessoren gleichzeitig auf eine Komponenten zugreifen, so wird ein Prozessor in einen Wartezustand versetz, bis der andere bedient wurde.
  • Die Umschaltung zwischen den beiden Modi und somit der unterschiedlichen Arbeitsweise der Datenverteilungseinheit erfolgt durch ein Steuersignal. Dies kann entweder von einem der beiden Prozessoren generiert werden oder extern.
  • Wird das Zweiprozessorsystem im F-Modus mit einem Taktversatz betrieben und im P-Modus nicht, so verzögert die DVE-Einheit die Daten für den Slave entsprechend, bzw. speichert die Ausgangsdaten des Master solange, bis sie mit den Ausgangsdaten des Slave zur Fehlererkennung verglichen werden können.
  • Der Taktversatz wird anhand der 1 näher erläutert:
    1 zeigt ein Zweirechnersystem mit einem ersten Rechner 100, insbesondere einem Masterrechner und einem zweiten Rechner 101, insbesondere einem Slave-Rechner. Das gesamte System wird dabei mit einem vorgebbaren Takt bzw. in vorgebbaren Taktzyklen (clock cycle) CLK betrieben. Über den Takteingang CLK1 des Rechners 100 sowie über den Takteingang CLK2 des Rechners 101 wird diesem der Takt zugeführt. Bei diesem Zweirechnersystem ist darüber hinaus beispielhaft ein spezielles Merkmal zur Fehlererkennung enthalten, in dem nämlich der erste Rechner 100 sowie der zweite Rechner 101 mit einem Zeitversatz, insbesondere einem vorgebbaren Zeitversatz bzw. einem vorgebbaren Taktversatz arbeiten. Dabei ist jede beliebige Zeit für einen Zeitversatz vorgebbar und auch jeder beliebige Takt bezüglich eines Versatzes der Taktzyklen. Dies kann ein ganzzahliger Versatz des Taktzyklus (clok cycle) sein, aber eben auch wie in diesem Beispiel dargestellt, beispielsweise ein Versatz von 1,5 Taktzyklen, wobei hier der erste Rechner 100 eben 1,5 Taktzyklen vor dem zweiten Rechner 101 arbeitet respektive betrieben wird. Durch diesen Versatz kann vermieden werden, dass Gleichtaktfehler, sogenannte common mode failures, die Rechner oder Prozessoren, also die Cores des Dual Cores Systems, gleichartig stören und damit unerkannt bleiben. D.h. solche Gleichtaktfehler betreffen durch den Versatz die Rechner zu unterschiedlichen Zeitpunkten im Programmablauf und bewirken demnach unterschiedliche Effekte bezüglich der beiden Rechner wodurch Fehler erkennbar werden. Gleichartige Fehlerwirkungen ohne Taktversatz wären u.U. in einem Vergleich nicht erkennbar, dies wird dadurch vermieden. Um diesen Versatz bezüglich der Zeit oder des Taktes, hier insbesondere 1,5 Taktzyklen im Zweirechnersystem zum implementieren sind die Versatzbausteine 112 bis 115 implementiert.
  • Um die genannten Gleichtaktfehler zu erkennen ist dieses System eben beispielsweise dazu ausgelegt in einem vorgegebenen Zeitversatz oder Taktzyklenversatz zu arbeiten, insbesondere hier 1,5 Taktzyklen, d.h. während der eine Rechner, z. B. Rechner 100 direkt die Komponenten, insbesondere die externen Komponenten 103 und 104 anspricht, arbeitet der zweite Rechner 101 mit einer Verzögerung von genau 1,5 Taktzyklen dazu. Um in diesem Fall die gewünschte Eineinhalbzyklusverzögerung, also von 1,5 Taktzyklen zu erzeugen wird Rechner 101 mit der invertierten Clock, also dem invertierten Takt am Takteingang CLK2 gespeist. Dadurch müssen aber auch die vorgenannten Anschlüsse des Rechners also seine Daten bzw. Befehle über die Busse um die genannten Taktzyklen, also hier insbesondere 1,5 Taktzyklen verzögert werden, wozu eben wie gesagt die Versatz- oder Verzögerungsbausteine 112 bis 115 vorgesehen sind. Neben den beiden Rechnern oder Prozessoren 100 und 101 sind Komponenten 103 und 104 vorgesehen, die über Busse 116, bestehend aus den Busleitungen 116A und 116B und 116C sowie 117, bestehend aus den Busleitungen 117A und 117B mit den beiden Rechnern 100 und 101 in Verbindung stehen. 117 ist dabei ein Befehlsbus, bei welchem mit 117A ein Befehlsadressbus und mit 117B der Teil-Befehls(daten)bus bezeichnet ist. Der Adressbus 117A ist über einen Befehlsadressanschluss IA1 (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 I1 (Instruction 1) mit Rechner 100 und über einen Befehlsanschluss I2 (Instruction 2) mit Rechner 101 verbunden ist. In diesem Befehlsbus 117 bestehend aus 117A und 117B ist eine Komponente 103 z. B. ein Befehlsspeicher, insbesondere ein sicherer Befehlsspeicher oder dergleichen zwischengeschaltet. Auch diese Komponente, insbesondere als Befehlsspeicher wird in diesem Beispiel mit dem Takt CLK betrieben. Daneben ist mit 116 ein Datenbus dargestellt, welcher einen Datenadressbus oder eine Datenadressleitung 116A und einen Datenbus oder eine Datenleitung 116B enthält. Dabei ist 116A, also die Datenadressleitung, über einen Datenadressanschluss DA1 (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 DO1 (Data Out 1) und einen Datenanschluss DO2 (Data Out 2) mit Rechner 100 bzw. Rechner 101 verbunden. Weiterhin zu Datenbus 116 gehört die Datenbusleitung 116C, welche über einen Datenanschluss DI1 (Data In 1) und einen Datenanschluss DI2 (Data In 2) jeweils mit Rechner 100 bzw. Rechner 101 verbunden ist. In diesem Datenbus 116 bestehend aus den Leitungen 116A, 116B und 116C ist eine Komponente 104 zwischengeschaltet, beispielsweise ein Datenspeicher, insbesondere ein sicherer Datenspeicher o. ä. Auch diese Komponente 104 wird in diesem Beispiel mit dem Takt CLK versorgt.
  • Dabei stehen die Komponenten 103 und 104 stellvertretend für beliebige Komponenten die über einen Datenbus und/oder Befehlsbus mit den Rechnern des Zweirechnersystems verbinden sind und entsprechend der Zugriffe über Daten und/oder Befehle des Zweirechnersystems bezüglich Schreiboperationen und/oder Leseoperationen fehlerhafte Daten und/oder Befehle erhalten oder abgeben können. Zur Fehlervermeidung sind zwar Fehlerkennungsgeneratoren 105, 106 und 107 vorgesehen welche eine Fehlerkennung erzeugen wie beispielsweise ein Parity-Bit oder auch einen anderen Fehlercode wie beispielsweise einen Error-Correction-Code, also ECC, o. ä.. Dazu vorgesehen sind dann auch die entsprechenden Fehlerkennungsprüfeinrichtungen oder Check-Einrichtungen 108 und 109 zur Überprüfung der jeweiligen Fehlerkennung also beispielsweise des Parity-Bit oder eines anderen Fehlercodes wie ECC.
  • Der Vergleich der Daten und/oder Befehle bezüglich der redundanten Ausführung im Zweirechnersystem erfolgt in den Vergleichern oder Komparatoren 110 und 111 wie in 1 dargestellt. Existiert nun aber ein Zeitversatz, insbesondere ein Takt- oder Taktzyklusversatz zwischen den Rechnern 100 und 101, entweder hervorgerufen durch ein nichtsynchrones Zweiprozessorsystem oder bei einem synchronen Zweiprozessorsystem durch Fehler in der Synchronisierung oder auch wie in diesem speziellen Beispiel durch einen zur Fehlererkennung gewünschten Zeit- bzw. Taktzyklusversatz, insbesondere hier von 1,5 Taktzyklen, so kann in diesem Zeit- oder Taktversatz ein Rechner hier insbesondere Rechner 100 fehlerhafte Daten und/oder Befehle in Komponenten, insbesondere externe Komponenten wie z. B. hier insbesondere die Speicher 103 oder 104, aber auch bezüglich anderen Teilnehmern oder Aktuatoren oder Sensoren schreiben oder lesen. So kann er auch in fehlerhafter Weise einen Schreibzugriff anstatt eines vorgesehenen Lesezugriffs durch diesen Taktversatz durchführen. Diese Szenarien führen selbstverständlich zu Fehlern im gesamten System, insbesondere ohne klare Anzeigemöglichkeit welche Daten und/oder Befehle gerade fehlerhaft geändert wurden, wodurch auch die Recovery-Problematik entsteht.
  • Um diese Problematik zu lösen wird nun eine Verzögerungseinheit 102 wie dargestellt in die Leitungen des Datenbusses und/oder in den Befehlsbus geschaltet. Aus Gründen der Übersichtlichkeit ist nur die Einschaltung in den Datenbus dargestellt. Bezüglich des Befehlsbusses ist dies natürlich genauso möglich und denkbar. Diese Verzögerungseinheit 102 oder die Delay Unit verzögert die Zugriffe, hier insbesondere die Speicherzugriffe so, dass ein möglicher Zeit- oder Taktversatz kompensiert wird, insbesondere bei einer Fehlererkennung beispielsweise über die Komparatoren 110 und 111 z.B. mindestens solange, bis das Fehlersignal im Zweirechnersystem erzeugt ist, also die Fehlererkennung im Zweirechnersystem durchgeführt ist. Dabei können verschiedene Varianten implementiert sein:
    Verzögerung der Schreib- und Leseoperationen, Verzögerung nur der Schreiboperationen oder auch, wenn auch nicht bevorzugt, eine Verzögerung der Leseoperationen. Dabei kann durch ein Änderungssignal, insbesondere das Fehlersignal, eine verzögerte Schreiboperation in eine Leseoperation gewandelt werden um fehlerhaftes Schreiben zu unterbinden.
  • Nachfolgend anhand 2 nun eine beispielhafte Implementierung bezüglich der Datenverteilungseinheit (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:
    IIIOpDetect: 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 IIIOp in den Prozessor geladen wird. Wird der Befehl detektiert, so wird dieses Ereignis der Modeswitch Einheit mitgeteilt. Die "'Switch-Detect'" Einheit ist für jeden Prozessor einzeln vorhanden. Die Einheit "Switch-Detect"' muss nicht fehlertolerant ausgeführt sein, da sie doppelt und somit redundant vorhanden ist. Andererseits ist es denkbar diese Einheit fehlertolerant und damit singulär auszuführen, bevorzugt ist aber die redundante Ausführung.
  • Modeswitch: Die Umschaltung zwischen den beiden Modi wird durch die "'Switch-Detect'" Einheit getriggert. Soll eine Umschaltung vom Lock in den Split Modus erfolgen, detektieren beide "'Switch-Detect'" Einheiten die Umschaltung, da beide Prozessoren den gleichen Programmcode im Lock Modus abarbeiten. Die "'Switch-Detect'" Einheit des Prozessor 1 erkennt dies 1,5 Takte vor der "'Switch-Detect'" Einheit des Prozessors 2. Die "'Modeswitch'" Einheit hält mit Hilfe des Wait Signals den Prozessor 1 um 2 Takte an. Der Prozessor 2 wird 1,5 Takte später ebenfalls angehalten, aber nur um einen halben Takt, damit er zum Systemtakt synchronisiert wird. Anschließend wird das Status-Signal auf Split geschaltet für die weiteren Komponenten und die beiden Prozessoren arbeiten weiter. Damit die beiden Prozessoren nun unterschiedliche Tasks ausführen, müssen sie im Programmcode auseinanderlaufen. Dies erfolgt, indem direkt nach Umschalten in den Split-Modus ein Lesezugriff auf die Prozessor-ID erfolgt. Diese ausgelesene Prozessor-ID ist für jeden der beiden Prozessoren unterschiedlich. Wird nun auf eine Soll-Prozessor-ID verglichen, kann anschließend mit einem Conditional Jump Befehl der entsprechende Prozessor an eine andere Programmstelle gebracht werden. Bei einer Umschaltung vom Split-Modus in den Lock-Modus wird dies ein Prozessor bemerken, bzw. einer der beiden zuerst. Dieser Prozessor wird Programmcode ausführen, in dem der Umschaltbefehl enthalten ist. Dies wird nun durch die "'Switch-Detect'" Einheit registriert und teilt dies der Modeswitch Einheit mit. Diese hält den entsprechenden Prozessor an und teilt dem zweiten den Wunsch der Synchronisation durch einen Interrupt mit. Der zweite Prozessor erhält einen Interrupt und kann nun eine Softwareroutine zur Beendigung seines Tasks ausführen. Nun springt er ebenfalls an die Programmstelle, in der sich der Befehl zur Umschaltung befindet. Seine "'Switch-Detect'" Einheit signalisiert nun ebenfalls den Wunsch zum Moduswechsel an die Modeswitch Einheit. Zur nächsten steigenden Systemtaktflanke wird nun das Wait Signal für den Prozessor 1 deaktiviert und 1,5 Takte später für den Prozessor 2. Nun arbeiten beide wieder mit einem Taktversatz von 1,5 Takten synchron.
  • Befinden sich das System im Lock Modus, so müssen beide "'Switch-Detect'" Einheiten der Modeswitch Einheit mitteilen, dass sie in den Split Modus wollen. Erfolgt der Umschaltwunsch nur von einer Einheit, so wird der Fehler von den Vergleichseinheiten erkannt, da diese von einem der beiden Prozessoren weiterhin Daten geliefert bekommen und diese nicht mit dem angehaltenen Prozessoren übereinstimmen.
  • Sind die beiden Prozessoren im Split Modus und einer schaltet nicht zurück in den Lock-Modus, so kann dies durch einen externen Watchdog erkannt werden. Bei einem Triggersignal für jeden Prozessor bemerkt der Watchdog dass der wartende Prozessor sich nicht mehr meldet. Ist nur ein Watchdogsignal für das Prozessorsystem vorhanden, so darf die Triggerung des Watchdogs nur im Lock-Modus erfolgen. Somit würde der Watchdog erkennen, dass die Modusumschaltung nicht erfolgte. Das Modussignal liegt als Dual-Rail Signal vor. Dabei steht "'10'" für den Lock-Modus und "'01'" für den Split-Modus. Bei "'00'" und "'11'" sind Fehler aufgetreten.
  • IramControl: Der Zugriff auf den Befehlsspeicher der beiden Prozessoren wird über die IRAM Control gesteuert. Diese muss sicher ausgelegt sein, da sie ein Single Point of Failure ist. Sie besteht aus zwei Zustandsautomaten für jeden Prozessor: als je einen taktsynchronen iram 1 clkreset und einen asynchronen readiram 1. Im sicherheitskritischen Modus überwachen sich die Zustandsautomaten der beiden Prozessoren gegenseitig und im Performancemodus arbeiten sie getrennt.
  • Das Nachladen der beiden Caches der Prozessoren werden durch 2 Zustandsautomaten gesteuert. Einem synchronen Zustandsautomaten iramclkreset und einem asynchronen readiram. Durch diese beiden Zustandsautoamten 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 -- Prozessor 2 die Speicherzugriffserlaubnis zugeteilt. Diese beiden Zustandsautomaten sind für jeden Prozessor implementiert. Im Lock-Modus werden die Ausgangssignale der Automaten verglichen um auftretende Fehler erkennen zu können.
  • Die Daten zum Aktualisieren des Cache 2 im Lock-Modus werden in der IRAM-Control Einheit um 1,5 Takte verzögert.
  • In Bit 5 im Register 0 der SysControl wird codiert um welchen Core es sich handelt. Core 1 ist das Bit 0 und bei Core 2 ist es High. Dieses Register ist in den Speicherbereich mit der Adresse 65528 gespiegelt.
  • Bei einem Speicherzugriff von Core 2 wird erst überprüft in welchem Modus sich der Rechner befindet. Ist er im Lock-Modus so wird sein Speicherzugriff unterdrückt. Dieses Signal liegt als Common-Rail Signal vor, da es sicherheitskritisch ist.
  • Der Programmcounter des Prozessors 1 wird um 1,5 Takte verzögert um im Lock-Modus mit dem Programmcounter des Prozessors 2 verglichen werden zu können.
  • Im Split Modus können die Caches der beiden Prozessoren unterschiedlich nachgeladen werden. Wenn nun in den Lock-Modus umgeschaltet wird, sind die beiden Caches nicht kohärent zueinander. Dadurch können die beiden Prozessoren auseinanderlaufen und die Vergleicher signalisieren folglich einen Fehler. Um dies zu vermeiden, ist in der IRAM Control eine Flag Tabelle aufgebaut. In dieser wird vermerkt, ob eine Cachezeile im Lock- oder im Split-Modus geschrieben wurde. Im Lock-Modus wird der für die Cachezeile entsprechende Eintrag bei einer Cachezeilennachladung auf 0 gesetzt und im Split-Modus -- auch bei einer Cacheaktualisierung der Cachezeile von nur einem Cache -auf 1. Führt der Prozessor nun im Lock-Modus einen Speicherzugriff aus, so wird überprüft, ob diese Cachezeile im Lock-Modus aktualisiert wurde, d.h. in beiden Caches gleich ist. Im Split-Modus kann der Prozessor immer auf die Cachezeile zugreifen, unabhängig wie der Flag_Vector ist. Diese Tabelle muss nur einmal vorhanden sein, da bei einem Fehler die beiden Prozessoren auseinanderlaufen und somit an den Vergleichern dieser Fehler sicher erkannt wird. Da die Zugriffszeiten auf der zentralen Tabelle relativ hoch sind, kann diese Tabelle auch zu jedem Cache kopiert werden.
  • DramControl: In dieser Komponente werden für die Adress-, Daten- und Speichersteuersignale von jedem Prozessor das Parity gebildet.
  • Es gibt einen Prozess für beide Prozessor zum Sperren des Speichers. Dieser Prozess muss nicht sicher implementiert sein, da im Lock-Modus fehlerhafte Speicherzugriffe durch die Vergleicher erkannt werden und im Split-Modus keine sicherheitsrelevanten Anwendungen ausgeführt werden. Hierin wird überprüft, ob der Prozessor den Speicher für den anderen Prozessor sperren möchte. Dieses Sperren des Datenspeichers erfolgt durch einen Zugriff auf die Speicheradresse $FBFF$=64511. Dieses Signal soll genau ein Takt lang anliegen, auch wenn am Prozessor zum Zeitpunkt des Aufrufens ein waitcommand anliegt. Der Zustandsautomat zur Verwaltung der Datenspeicherzugriffe besteht aus 2 Hauptzuständen:
    • – Prozessorstatus Lock: Die beiden Prozessoren arbeiten im Lock-Modus. D.h. die Funktionalität des Datenspeicherlocking ist nicht notwendig. Prozessor 1 koordiniert die Speicherzugriffe.
    • – Prozessorstatus Split: Nun ist eine Zugriffskonfliktauflösung auf den Datenspeicher nötig und ein Speichersperren muss erfolgen können.
  • Der Zustand im Split-Modus ist wiederum in 7 Zustände untergliedert, die die Zugriffskonflikte auflösen und den Datenspeicher für jeweils den anderen Prozessor sperren können. Bei gleichzeitigem Wunsch der beiden Prozessoren bei einem Zugriff, stellt die aufgeführte Reihenfolge gleichzeitig die Priorisierung dar.
    • – Corel\_Lock: Prozessor 1 hat den Datenspeicher gesperrt. Möchte in diesem Zustand Prozessor 2 auf den Speicher zugreifen, so wird er durch ein Wartesignal angehalten, bis Prozessor 1 den Datenspeicher wieder freigibt.\
    • – Core2\_Lock: Ist der gleiche Zustand wie der vorige nur dass nun Prozessor 2 den Datenspeicher gesperrt hat und Prozessor 1 bei Datenspeicheroperationen angehalten wird.
    • – lockl\_wait: Der Datenspeicher war durch den Prozessor 2 gesperrt als Prozessor 1 ihn ebenfalls für sich reservieren wollte. Prozessor 1 ist somit für die nächste Speichersperrung vorgemerkt.
    • – nex: Das gleiche für Prozessor 2. Der Datenspeicher war während des Sperrversuchs durch Prozessor 1 gesperrt. Prozessor 2 bekommt den Speicher vorreserviert. Bei normalen Speicherzugriff ohne Sperren kann hier Prozessor 2 vor Prozessor 1 zugreifen wenn davor Prozessor 1 dran war.
    • – Speicherzugriff von Prozessor 1: Der Speicher ist in diesem Fall nicht gesperrt. Prozessor 1 darf auf den Datenspeicher zugreifen. Falls er ihn sperren möchte, kann er dies in diesem Zustand vornehmen.
    • – Speicherzugriff durch Prozessor 2. Im selben Takt wollte Prozessor 1 nicht auf den Speicher zugreifen somit ist der Speicher frei für den Prozessor 2.
    • – kein Prozessor möchte auf den Datenspeicher zugreifen
  • Die DVE setzt sich wie erwähnt zusammen aus dem Detektierung des Umschaltwunsches (IIIOPDetect) der ModeSwitch-Einheit und der Iram- und DramControl.
  • In 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.
  • In 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.
  • Daneben löst aber auch die dargestellte spezielle Implementierung die Eingangs genannten Aufgaben.
  • Beiden Implementierungen von insbesondere Zweiprozessorsystemen (Dual-Core) wird für jeden Prozessor ein Cache vorgesehen wie nochmals schematisch in 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.
  • Caches 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 wird bei Zweiprozessorsystemen für jeden Prozessor üblicherweise ein eigener Cache vorgesehen.
  • Wenn diese beiden Prozessoren nun mit einem Taktversatz betrieben werden, kann nun mit dem in 5 vorgeschlagenen Verfahren auf den zweiten Cache für den Slave-Prozessor verzichtet werden.
  • Ein Cache benötigt viel Chipfläche und auch viel Strom. Dadurch 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.
  • Bei dem hier vorgestellten Zweirechnersystem ist 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, Daten, 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.
  • Um gemäß 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 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.

Claims (5)

  1. Vorrichtung zur Verzögerung der Zugriffe auf Daten und/oder Befehle eines Mehrprozessorsystems mit einem ersten und einem zweiten Prozessor, denen eine Speichereinheit zugeordnet ist, wobei der erste und zweite Prozessor mit einem Taktversatz arbeiten und die Vorrichtung derart ausgebildet ist, dass beide Prozessoren mit diesem Taktversatz auf die gleiche Speichereinheit zugreifen.
  2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass als Zugriffe Schreiboperationen und Leseoperationen verzögert werden.
  3. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass diese derart ausgestaltet ist, dass diese zwischen Verzögerung der Zugriffe und Nicht-Verzögerung der Zugriffe umschaltbar ist.
  4. Mehrprozessorsystem mit einer Vorrichtung nach Anspruch 1.
  5. Verfahren zur zur Verzögerung der Zugriffe auf Daten und/oder Befehle eines Mehrprozessorsystems mit einem ersten und einem zweiten Prozessor, denen eine Speichereinheit zugeordnet ist, wobei der erste und zweite Prozessor mit einem Taktversatz arbeiten und beide Prozessoren mit diesem Taktversatz auf die gleiche Speichereinheit zugreifen.
DE200410051992 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems Withdrawn DE102004051992A1 (de)

Priority Applications (161)

Application Number Priority Date Filing Date Title
DE200410051992 DE102004051992A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems
DE102005037222A DE102005037222A1 (de) 2004-10-25 2005-08-08 Verfahren und Vorrichtung zur Auswertung eines Signals eines Rechnersystems mit wenigstens zwei Ausführungseinheiten
DE102005037223A DE102005037223A1 (de) 2004-10-25 2005-08-08 Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
DE102005037213A DE102005037213A1 (de) 2004-10-25 2005-08-08 Verfahren und Vorrichtung zur Umschaltung zwischen Betriebsmodi eines Multiprozessorsystems durch wenigstens ein externes Signal
DE102005037242A DE102005037242A1 (de) 2004-10-25 2005-08-08 Verfahren und Vorrichtung zur Umschaltung und zum Signalvergleich bei einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten
CNA2005800365300A CN101048752A (zh) 2004-10-25 2005-10-25 在拥有至少两个执行单元的计算机系统中切换的装置和方法
JP2007537303A JP2008518310A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステム内のメモリユニットを監視する方法および装置
DE502005006442T DE502005006442D1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
RU2007119321/09A RU2007119321A (ru) 2004-10-25 2005-10-25 Способ и устройство для переключения между режимами работы многопроцессорной системы посредством по меньшей мере одного внешнего сигнала
AT05801485T ATE420402T1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
JP2007537297A JP2008518305A (ja) 2004-10-25 2005-10-25 少なくとも2つの処理ユニットを有する計算機システムにおける駆動モードの切り替え方法、及び駆動モード切り替え装置
AT05797110T ATE426204T1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur trennung der abarbeitung von programmcode bei einem rechnersystem mit wenigstens zwei ausfuhrungseinheiten
US11/666,377 US20080209170A1 (en) 2004-10-25 2005-10-25 Method and Device for Performing Switchover Operations and for Signal Comparison in a Computer System Having at Least Two Processing Units
EP05801485A EP1812855B1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
DE502005005287T DE502005005287D1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur erzeugung eines modussignals bei einem rechnersystem mit mehreren komponenten
EP05801384A EP1812854A1 (de) 2004-10-25 2005-10-25 Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP05811130A EP1807760B1 (de) 2004-10-25 2005-10-25 Datenverarbeitungssystem mit variabler taktrate
KR1020077008951A KR20070062565A (ko) 2004-10-25 2005-10-25 적어도 2개의 처리 유닛들을 갖는 컴퓨터 시스템에서 모드전환 및 신호 비교를 위한 방법 및 장치
EP05797173A EP1810147A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
PCT/EP2005/055495 WO2006045773A2 (de) 2004-10-25 2005-10-25 Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP05797174A EP1810148A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
DE502005006441T DE502005006441D1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
JP2007538399A JP2008518339A (ja) 2004-10-25 2005-10-25 少なくとも2つの実施ユニットを有する計算機において切り替える装置および方法
JP2007537290A JP2008518298A (ja) 2004-10-25 2005-10-25 複数のコンポーネントを有する計算機システムで信号を生成するための方法および装置
US11/666,325 US20080270747A1 (en) 2004-10-25 2005-10-25 Method and Device for Switching Over Between Operating Modes of a Multi-Processor System Using at Least One External Signal
EP05801268A EP1807761A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur datenverteilung aus wenigstens einer datenquelle in einem mehrprozessorsystem
DE502005005428T DE502005005428D1 (de) 2004-10-25 2005-10-25 Datenverarbeitungssystem mit variabler taktrate
PCT/EP2005/055548 WO2006045806A2 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur steuerung eines rechnersystems
US11/666,405 US7853819B2 (en) 2004-10-25 2005-10-25 Method and device for clock changeover in a multi-processor system
PCT/EP2005/055504 WO2006045778A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur auswertung eines signals eines rechnersystems mit wenigstens zwei ausführungseinheiten
US11/666,403 US20080263340A1 (en) 2004-10-25 2005-10-25 Method and Device for Analyzing a Signal from a Computer System Having at Least Two Execution Units
JP2007537296A JP2008518304A (ja) 2004-10-25 2005-10-25 少なくとも3つの処理ユニットを有する計算機システムにおけるモード切替及びデータ比較方法および装置
JP2007537293A JP2008518301A (ja) 2004-10-25 2005-10-25 少なくとも2つの実行ユニットを有する計算機システムで切替を行うための方法および装置
US11/666,182 US20080313384A1 (en) 2004-10-25 2005-10-25 Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units
CNA200580036469XA CN101048741A (zh) 2004-10-25 2005-10-25 具有可变时钟速率的数据处理系统
KR1020077009143A KR101052994B1 (ko) 2004-10-25 2005-10-25 적어도 2개의 실행 유닛을 포함하는 컴퓨터 시스템에서전환을 위한 방법 및 장치
RU2007119318/09A RU2007119318A (ru) 2004-10-25 2005-10-25 Способ и устройство для разделения выполнения программного кода в вычислительной системе по меньшей мере с двумя исполнительными блоками
DE502005005286T DE502005005286D1 (de) 2004-10-25 2005-10-25 Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
PCT/EP2005/055499 WO2006045774A1 (de) 2004-10-25 2005-10-25 Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
PCT/EP2005/055507 WO2006045780A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur trennung der abarbeitung von programmcode bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP05804490A EP1812859B1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
EP05811008A EP1812861A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur verzögerung von zugriffen auf daten und/oder befehle eines mehrprozessorsystems
CNA2005800364878A CN101048748A (zh) 2004-10-25 2005-10-25 控制计算机系统的方法和装置
PCT/EP2005/055500 WO2006045775A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur umschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
KR1020077008952A KR101017444B1 (ko) 2004-10-25 2005-10-25 적어도 2개의 처리 유닛들을 갖는 컴퓨터 시스템에서 모드전환 및 신호 비교를 위한 방법 및 장치
EP05801572A EP1812856B1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur auswertung eines signals eines rechnersystems mit wenigstens zwei ausführungseinheiten
JP2007537294A JP2008518302A (ja) 2004-10-25 2005-10-25 外部で発生される少なくとも1つの信号によりマルチプロセッサシステムの動作モードを切替える方法及び装置
PCT/EP2005/055512 WO2006045785A1 (de) 2004-10-25 2005-10-25 VERFAHREN UND VORRICHTUNG ZUR MODUSUMSCHALTtMG UND ZUM SIGNALVERGLEICH BEI EINEM RECHNERSYSTEM MIT WENIGSTENS ZWEI VERARBEITUNGSEINHEITEN
US11/666,412 US20090125749A1 (en) 2004-10-25 2005-10-25 Method and device for controlling a computer system
KR1020077009250A KR20070083771A (ko) 2004-10-25 2005-10-25 멀티 프로세서 시스템의 데이터 및/또는 명령어에 대한접근을 지연시키기 위한 방법 및 장치
CNB2005800364971A CN100520730C (zh) 2004-10-25 2005-10-25 在具有至少两个执行单元的计算机系统中对程序代码的执行进行分离的方法和设备
JP2007537304A JP2008518311A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステムにおいてクロックを切り替えるクロック切り替え方法、クロックを切り替えるユニットおよびクロックを切り替えるユニットを有するシステム
KR1020077009142A KR20070062576A (ko) 2004-10-25 2005-10-25 적어도 2개의 실행 유닛을 포함하는 컴퓨터 시스템에서프로그램 코드로부터 처리를 분리하기 위한 방법 및 장치
EP05808034A EP1817662B1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur umschaltung zwischen betriebsmodi eines multiprozessorsystems durch wenigstens ein externes signal
US11/666,260 US20090119540A1 (en) 2004-10-25 2005-10-25 Device and method for performing switchover operations in a computer system having at least two execution units
RU2007119314/09A RU2384877C2 (ru) 2004-10-25 2005-10-25 Способ и устройство для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов
JP2007537291A JP2008518299A (ja) 2004-10-25 2005-10-25 少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法および装置
PCT/EP2005/055517 WO2006045789A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
CNA2005800365495A CN101048755A (zh) 2004-10-25 2005-10-25 在具有至少两个处理单元的计算机系统中进行模式转换和信号比较的方法和设备
US11/666,184 US8090983B2 (en) 2004-10-25 2005-10-25 Method and device for performing switchover operations in a computer system having at least two execution units
KR1020077008953A KR20070062567A (ko) 2004-10-25 2005-10-25 적어도 2개의 처리 유닛들을 갖는 컴퓨터 시스템에서 모드전환 및 신호 비교를 위한 방법 및 장치
DE502005007806T DE502005007806D1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur umschaltung zwischennigstens ein externes signal
JP2007537298A JP2008518306A (ja) 2004-10-25 2005-10-25 少なくとも2つの処理ユニットを有する計算機システムにおける切り替えおよび信号比較の方法および装置
CNB2005800365777A CN100483359C (zh) 2004-10-25 2005-10-25 在具有至少两个处理单元的计算机系统中进行模式转换和信号比较的方法和设备
JP2007537301A JP2008518308A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステム内のデータを分配するための方法およびデータ分配ユニット
AT05797084T ATE407398T1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem
KR1020077008954A KR20070083732A (ko) 2004-10-25 2005-10-25 적어도 2개의 처리 유닛들을 포함하는 컴퓨터 시스템에서모드 전환 및 신호 비교를 위한 방법 및 장치
JP2007538402A JP2008518341A (ja) 2004-10-25 2005-10-25 少なくとも2つの処理ユニットを有する計算機システムにおいて切り替え、かつ信号を比較する方法および装置
JP2007537295A JP4669007B2 (ja) 2004-10-25 2005-10-25 少なくとも2つの処理ユニットを有する計算機システムにおいて切替及びデータを比較する方法及び装置
US11/665,727 US7856569B2 (en) 2004-10-25 2005-10-25 Method and device for a switchover and for a data comparison in a computer system having at least two processing units
KR1020077009253A KR20070083772A (ko) 2004-10-25 2005-10-25 멀티 프로세서 시스템에서의 동기화 방법 및 장치
PCT/EP2005/055516 WO2006045788A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
EP05801427A EP1807762A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur umschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP05801543A EP1807763B1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem
CNB2005800365781A CN100520731C (zh) 2004-10-25 2005-10-25 在具有至少两个处理单元的计算机系统中进行模式转换和信号比较的方法和设备
EP05801574A EP1812858B1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur erzeugung eines modussignals bei einem rechnersystem mit mehreren komponenten
DE502005006496T DE502005006496D1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
US11/666,413 US20090164826A1 (en) 2004-10-25 2005-10-25 Method and device for synchronizing in a multiprocessor system
PCT/EP2005/055538 WO2006045801A2 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem
AT05808034T ATE438138T1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur umschaltung zwischen betriebsmodi eines multiprozessorsystems durch wenigstens ein externes signal
DE502005005285T DE502005005285D1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur auswertung eines signals eines rechnersystems mit wenigstens zwei ausführungseinheiten
CNA2005800364793A CN101120320A (zh) 2004-10-25 2005-10-25 在具有至少两个执行单元的计算机系统中进行模式转换的设备和方法
PCT/EP2005/055519 WO2006045790A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
AT05804490T ATE420403T1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
JP2007537302A JP4532561B2 (ja) 2004-10-25 2005-10-25 マルチプロセッサシステムにおける同期化のための方法および装置
PCT/EP2005/055509 WO2006045782A2 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur umschaltung zwischen betriebsmodi eines multiprozessorsystems durch wenigstens ein externes signal
RU2007119317/09A RU2007119317A (ru) 2004-10-25 2005-10-25 Способ и устройство для переключения в вычислительной системе, включающей в себя по меньшей мере два исполнительных блока
CNA2008101697667A CN101393533A (zh) 2004-10-25 2005-10-25 在具有至少两个处理单元的计算机系统中进行模式转换和信号比较的方法和设备
AT05801543T ATE409327T1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem
EP05801573A EP1812857B1 (de) 2004-10-25 2005-10-25 Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
KR1020077009144A KR20070083759A (ko) 2004-10-25 2005-10-25 적어도 2개의 실행 유닛을 포함하는 컴퓨터 시스템에서모드 전환을 위한 방법 및 장치
PL05801572T PL1812856T3 (pl) 2004-10-25 2005-10-25 Sposób i urządzenie do oceny sygnału systemu komputerowego z co najmniej dwiema jednostkami wykonawczymi
US11/666,394 US20080091927A1 (en) 2004-10-25 2005-10-25 Method And Device For A Switchover In A Computer System Having At Least Two Processing Units
AT05801572T ATE407399T1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur auswertung eines signals eines rechnersystems mit wenigstens zwei ausführungseinheiten
KR1020077009249A KR20070068405A (ko) 2004-10-25 2005-10-25 가변 클록 속도를 갖는 데이터 처리 시스템
KR1020077008960A KR20070062568A (ko) 2004-10-25 2005-10-25 적어도 2개의 처리 유닛들을 갖는 컴퓨터 시스템에서 모드전환 및 신호 비교를 위한 방법 및 장치
EP05811107A EP1820102A2 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur taktumschaltung bei einem mehrprozessorsystem
PCT/EP2005/055502 WO2006045776A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur erzeugung eines modussignals bei einem rechnersystem mit mehreren komponenten
PCT/EP2005/055549 WO2006045807A2 (de) 2004-10-25 2005-10-25 Datenverarbeitungssystem mit variabler taktrate
AT05804493T ATE421120T1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
PCT/EP2005/055508 WO2006045781A2 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur umschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
JP2007537292A JP2008518300A (ja) 2004-10-25 2005-10-25 少なくとも2つの実行ユニットを備えるコンピュータシステムにおけるプログラムコードの処理分割方法および装置
US11/666,328 US20070294559A1 (en) 2004-10-25 2005-10-25 Method and Device for Delaying Access to Data and/or Instructions of a Multiprocessor System
US11/666,407 US20080126718A1 (en) 2004-10-25 2005-10-25 Method And Device For Monitoring A Memory Unit In A Mutliprocessor System
JP2007537306A JP2008518313A (ja) 2004-10-25 2005-10-25 可変のクロックレートを伴うデータ処理システム
DE502005006899T DE502005006899D1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur trennung der abarbeitung von programmcode bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
CNA2005800364863A CN101048730A (zh) 2004-10-25 2005-10-25 在具有至少两个执行单元的计算机系统中进行转换的方法和设备
EP05797110A EP1810146B1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur trennung der abarbeitung von programmcode bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP05801429A EP1805618A2 (de) 2004-10-25 2005-10-25 Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
AT05801573T ATE407400T1 (de) 2004-10-25 2005-10-25 Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
ES05801572T ES2311238T3 (es) 2004-10-25 2005-10-25 Procedimiento y dispositivo para la evaluacion de una señal de un sistema de ordenadores con al menos dos unidades de ejecucion.
JP2007537288A JP2008518296A (ja) 2004-10-25 2005-10-25 少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする方法及び装置
US11/666,404 US20080288758A1 (en) 2004-10-25 2005-10-25 Method and Device for Switching Over in a Computer System Having at Least Two Execution Units
JP2007537299A JP2008518307A (ja) 2004-10-25 2005-10-25 少なくとも2つの処理ユニットを有する計算機システムにおいて切替える方法及び装置
US11/666,183 US7669079B2 (en) 2004-10-25 2005-10-25 Method and device for switching over in a computer system having at least two execution units
US11/666,409 US20070255875A1 (en) 2004-10-25 2005-10-25 Method and Device for Switching Over in a Computer System Having at Least Two Execution Units
JP2007537289A JP2008518297A (ja) 2004-10-25 2005-10-25 少なくとも2つの実行ユニットを有する計算機システムで切替を行うための装置および方法
KR1020077009127A KR100994039B1 (ko) 2004-10-25 2005-10-25 복수의 컴포넌트를 구비한 컴퓨터 시스템에서 신호를생성하기 위한 방법 및 장치
CNA2005800365762A CN101048757A (zh) 2004-10-25 2005-10-25 在拥有至少两个执行单元的计算机系统中切换的方法和装置
CNB2005800364219A CN100538654C (zh) 2004-10-25 2005-10-25 在具有多个组件的计算机系统中产生模式信号的方法和设备
KR1020077009252A KR20070067168A (ko) 2004-10-25 2005-10-25 멀티 프로세서 시스템에서 메모리 유닛을 모니터링하기위한 방법 및 장치
EP05801271A EP1810149A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
RU2007119316/09A RU2007119316A (ru) 2004-10-25 2005-10-25 Способ и устройство для контроля запоминающего устройства в многопроцессорной системе
CNA200580036412XA CN101048743A (zh) 2004-10-25 2005-10-25 在具有至少两个执行单元的计算机系统中进行转换的方法和设备
KR1020077009266A KR20070083776A (ko) 2004-10-25 2005-10-25 적어도 하나의 외부 신호에 의한 멀티 프로세서 시스템의작동 모드 사이의 스위칭을 위한 방법 및 장치
EP05803464A EP1807764A2 (de) 2004-10-25 2005-10-25 Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
US11/666,406 US20080163035A1 (en) 2004-10-25 2005-10-25 Method for Data Distribution and Data Distribution Unit in a Multiprocessor System
PCT/EP2005/055511 WO2006045784A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
US11/666,185 US20080320340A1 (en) 2004-10-25 2005-10-25 Method and Device for Performing Switchover Operations and for Comparing Data in a Computer System Having at Least Three Execution Units
RU2007119323/09A RU2007119323A (ru) 2004-10-25 2005-10-25 Способ и устройство для анализа сигнала вычислительной системы по меньшей мере с двумя исполнительными блоками
EP05797084A EP1810145B1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem
KR1020077009363A KR20070067169A (ko) 2004-10-25 2005-10-25 컴퓨터 시스템의 제어 장치 및 방법
PCT/EP2005/055514 WO2006045786A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
DE502005005284T DE502005005284D1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem
PCT/EP2005/055539 WO2006045802A2 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur taktumschaltung bei einem mehrprozessorsystem
KR1020077009128A KR20070062573A (ko) 2004-10-25 2005-10-25 적어도 2개의 실행 유닛을 구비한 컴퓨터 시스템의 전환장치 및 전환 방법
PCT/EP2005/055537 WO2006045800A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem
EP05804493A EP1812860B1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
DE502005005490T DE502005005490D1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur überwachung einer sp
PCT/EP2005/055532 WO2006045798A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur datenverteilung aus wenigstens einer datenquelle in einem mehrprozessorsystem
JP2007538400A JP2008518340A (ja) 2004-10-25 2005-10-25 少なくとも2つの実施ユニットを有する計算機システムにおいて切り替える方法および装置
KR1020077009130A KR20070062574A (ko) 2004-10-25 2005-10-25 적어도 2개의 실행 유닛을 구비한 컴퓨터 시스템의 전환방법 및 그 전환 장치
AT05811130T ATE408863T1 (de) 2004-10-25 2005-10-25 Datenverarbeitungssystem mit variabler taktrate
KR1020077009148A KR20070062577A (ko) 2004-10-25 2005-10-25 적어도 2개의 실행 유닛을 포함하는 컴퓨터 시스템의신호를 평가하기 위한 방법 및 장치
RU2007119322/09A RU2007119322A (ru) 2004-10-25 2005-10-25 Способ и устройство для переключения в вычислительной системе, включающей в себя по меньшей мере два обрабатывающих блока
KR1020077009126A KR20070085278A (ko) 2004-10-25 2005-10-25 적어도 2개의 실행 유닛을 구비한 컴퓨터 시스템의 전환방법 및 그 전환 장치
PCT/EP2005/055503 WO2006045777A1 (de) 2004-10-25 2005-10-25 Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
JP2007538398A JP5053854B2 (ja) 2004-10-25 2005-10-25 少なくとも2つの実施ユニットを有する計算機システムにおける切替え方法および装置
EP05801505A EP1810150A2 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur steuerung eines rechnersystems
US11/666,175 US20080270746A1 (en) 2004-10-25 2005-10-25 Method and Device for Performing Switchover Operations and for Comparing Signals in a Computer System Having at Least Two Processing Units
JP2007537305A JP2008518312A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステムのデータおよび/または指令へのアクセスを遅延させる方法および装置
EP05826785.7A EP1820093B1 (de) 2004-10-25 2005-10-25 Verfahren und einrichtung zum umschalten in einem computersystem mit mindestens zwei ausführungseinheiten
PCT/EP2005/055506 WO2006045779A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur umschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
US11/666,396 US20080320287A1 (en) 2004-10-25 2005-10-25 Method and Device for Performing Switchover Operations in a Computer System Having at Least Two Processing Units
US11/666,410 US20090265581A1 (en) 2004-10-25 2005-10-25 Data system having a variable clock pulse rate
KR1020077009145A KR20070083760A (ko) 2004-10-25 2005-10-25 적어도 2개의 실행 유닛을 구비한 컴퓨터 시스템에서전환을 위한 방법 및 장치
CNB2005800365264A CN100565466C (zh) 2004-10-25 2005-10-25 在具有至少两个处理单元的计算机系统中进行模式转换和信号比较的方法和设备
PCT/EP2005/055542 WO2006045804A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur verzögerung von zugriffen auf daten und/oder befehle eines mehrprozessorsystems
US11/666,383 US20090044048A1 (en) 2004-10-25 2005-10-25 Method and device for generating a signal in a computer system having a plurality of components
KR1020077009251A KR20070062579A (ko) 2004-10-25 2005-10-25 멀티 프로세서 시스템에서 적어도 하나의 데이터소스로부터 데이터를 분배하기 위한 방법 및 장치
AT05801574T ATE407401T1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur erzeugung eines modussignals bei einem rechnersystem mit mehreren komponenten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200410051992 DE102004051992A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems

Publications (1)

Publication Number Publication Date
DE102004051992A1 true DE102004051992A1 (de) 2006-04-27

Family

ID=36129016

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410051992 Withdrawn DE102004051992A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems

Country Status (1)

Country Link
DE (1) DE102004051992A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010003551A1 (de) 2010-03-31 2011-10-06 Robert Bosch Gmbh Timermodul und Verfahren zur Überprüfung von Ausgangssignalen eines Timermoduls

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010003551A1 (de) 2010-03-31 2011-10-06 Robert Bosch Gmbh Timermodul und Verfahren zur Überprüfung von Ausgangssignalen eines Timermoduls
WO2011120818A1 (de) 2010-03-31 2011-10-06 Robert Bosch Gmbh Timermodul und verfahren zur überprüfung von ausgangssignalen eines timermoduls
US9501370B2 (en) 2010-03-31 2016-11-22 Robert Bosch Gmbh Timer module and method for testing output signals of a timer module

Similar Documents

Publication Publication Date Title
EP1807763B1 (de) Verfahren und vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem
WO2007057271A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
EP1820093B1 (de) Verfahren und einrichtung zum umschalten in einem computersystem mit mindestens zwei ausführungseinheiten
EP1812858B1 (de) Verfahren und vorrichtung zur erzeugung eines modussignals bei einem rechnersystem mit mehreren komponenten
EP1812856B1 (de) Verfahren und vorrichtung zur auswertung eines signals eines rechnersystems mit wenigstens zwei ausführungseinheiten
WO2007057270A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
EP1398701A1 (de) Verfahren zur Ereignissynchronisation, insbesondere für Prozessoren fehlertoleranter Systeme
CN100511167C (zh) 监控多处理器系统中的存储单元的方法和设备
DE102011011333A1 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
DE102004051937A1 (de) Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem
EP1776636A2 (de) Verfahren zum registrieren von fehlern und entsprechendes register
DE102004051992A1 (de) Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems
DE102004051964A1 (de) Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem
DE102004051950A1 (de) Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem
DE102004038590A1 (de) Verfahren zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Zweirechnersystems sowie entsprechende Verzögerungseinheit
WO2004034172A2 (de) Verfahren zur ereignissynchronisation, damit synchronisierte prozessoren und fehlertoleranter systeme mit derartigen prozessoren
EP1915687A1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten
DE102012204644B4 (de) Steuervorrichtung
EP1915695A1 (de) Verfahren und vorrichtung zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle
DE102005037258A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Übernehmen des Startzustandes

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110502