Patent DE-102012224276-B4 (DE)
Title: Verzögerte Ausführung auf mehreren Prozessoren
Inventor: BELLOWS MARK D
IPC: G06F11/32
Filed: 2012-12-21
Granted: 2020-06-18
Abstract: Verfahren zum Überprüfen einer Ausführung eines Programmcodes, aufweisend:Empfangen einer ersten Prozessoreingabe in einem ersten First-in-first-out-(FIFO-)Speicher von einer ersten Prozessorgruppe, die einen ersten Prozessor aufweist, wobei die erste Prozessorgruppe so konfiguriert ist, dass sie den Programmcode auf der Grundlage der ersten Prozessoreingabe ausführt, wobei die erste Prozessoreingabe einen Satz von Eingangssignalen, ein Taktsignal und entsprechende Daten aufweist, die zur Ausführung des Programmcodes verwendet werden;Speichern der ersten Prozessoreingabe in den ersten Cachespeicher-Zeilen des ersten FIFO-Speichers, wobei jede der ersten Cachespeicher-Zeilen der ersten Prozessoreingabe in Verbindung mit jedem Taktzyklus entspricht, der auf dem Taktsignal der ersten Prozessoreingabe beruht;Ausgeben der ersten Prozessoreingabe aus dem ersten FIFO-Speicher an einen zweiten FIFO-Speicher und an einen zweiten Prozessor, wobei der zweite Prozessor mit dem ersten FIFO-Speicher verbunden ist, wobei die erste Prozessoreingabe entsprechend einer ersten Verzögerung an den zweiten Prozessor ausgegeben wird, wobei die erste Verzögerung mehr als zwei Taktzyklen betragt;Ausführen einer Emulation der Ausführung von mindestens einem ersten Teil des Programmcodes als Reaktion auf die erste Prozessoreingabe in dem zweiten Prozessor, wobei eine von dem zweiten Prozessor während des Ausführens der Emulation der Ausführung des Programmcodes erzeugte Ausgabe ignoriert wird;Speichern der ersten Prozessoreingabe in den zweiten Cachespeicher-Zeilen des zweiten FIFO-Speichers, wobei jede der zweiten Cachespeicher-Zeilen der ersten Prozessoreingabe in Verbindung mit jedem Taktzyklus entspricht, der auf dem Taktsignal der ersten Prozessoreingabe beruht;Ausgeben der ersten Prozessoreingabe aus dem zweiten FIFO-Speicher an einen dritten Prozessor, der mit dem zweiten FIFO-Speicher verbunden ist, wobei die erste Prozessoreingabe entsprechend einer zweiten Verzögerung an den dritten Prozessor ausgegeben wird, wobei die zweite Verzögerung mehr als zwei Taktzyklen betragt und ungleich der ersten Verzögerung ist;Ausführen einer Emulation der Ausführung von mindestens einem zweiten Teil des Programmcodes als Reaktion auf die erste Prozessoreingabe In den dritten Prozessor, wobei eine von dem dritten Prozessor während des Ausführens der Emulation der Ausführung des Programmcodes erzeugte Ausgabe ignoriert wird, wobei der erste, der zweite und der dritte Prozessor im Gleichschritt die entsprechenden Teile des Programmcodes ausführen;gleichzeitigen Anhalten der Ausführung des ersten Prozessors, des zweiten Prozessors und des dritten Prozessors beruhend entweder auf Erkennen eines Eintretens eines Ereignisses in Bezug auf die Ausführung des Programmcodes oder auf Erkennen eines Anzeigers in dem ersten FIFO-Speicher oder dem zweiten FIFO-Speicher, wobei sich der Anzeiger auf die Ausführung des Programmcodes bezieht;Entnehmen von ersten Informationen aus mindestens dem ersten Prozessor, dem zweiten Prozessor oder dem dritten Prozessor, nachdem die Ausführung des ersten Prozessors, des zweiten Prozessors und des dritten Prozessors gleichzeitig angehalten wurde, wobei sich die ersten Informationen auf Informationen über das Prozessorsystem beziehen; undDurchführen einer Analyse der ersten Informationen, um einen Ausführungszustand des Programmcodes In mindestens dem zweiten Prozessor oder dem dritten Prozessor festzustellen.