DE10247408A1 - Mehrprozessorsystem und Verfahren zu dessen Programmierung - Google Patents

Mehrprozessorsystem und Verfahren zu dessen Programmierung Download PDF

Info

Publication number
DE10247408A1
DE10247408A1 DE2002147408 DE10247408A DE10247408A1 DE 10247408 A1 DE10247408 A1 DE 10247408A1 DE 2002147408 DE2002147408 DE 2002147408 DE 10247408 A DE10247408 A DE 10247408A DE 10247408 A1 DE10247408 A1 DE 10247408A1
Authority
DE
Germany
Prior art keywords
processors
volatile memory
processor
read access
multiprocessor system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE2002147408
Other languages
English (en)
Inventor
Guenter Braun
Rainer Sommer
Johannes Wehle
Taskin Ege
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 DE2002147408 priority Critical patent/DE10247408A1/de
Publication of DE10247408A1 publication Critical patent/DE10247408A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

Ein Mehrprozessorsystem umfasst wenigstens zwei Prozessoren (1'', 2''), einen nichtflüchtigen Speicher (3), der Programmcode für die Prozessoren enthält, einen flüchtigen Speicher (5) sowie Mittel (1'') zum Kopieren wenigstens eines Teils (C2, C12) des Programmcodes in den flüchtigen Speicher (5). Wenigstens einer der Prozessoren (2'') hat Lesezugriff auf den flüchtigen Speicher (5).

Description

  • Stand der Technik
  • Die vorliegende Erfindung betrifft ein Daten verarbeitendes System mit mehreren Prozessoren und ein Verfahren zu dessen Programmierung.
  • Mehrprozessorsysteme werden in vielen Gebieten eingesetzt, um im Vergleich zu einem System mit einem einzelnen Prozessor höhere Arbeitsleistungen dadurch zu erzielen, dass Verarbeitungsaufgaben auf mehreren Prozessoren verteilt werden, oder um die Ausfallsicherheit eines Systems zu erhöhen, indem für den Fall einer Störung eines der Prozessoren ein Reserveprozessor bereit steht, der dessen Aufgaben übernehmen kann.
  • Jeder Prozessor eines solchen Systems muss auf einen Speicher lesend zugreifen können, in welchem sein Betriebsprogramm abgelegt ist. Ein solches Betriebsprogramm wird üblicherweise zunächst in einer Hochsprache geschrieben und dann in einem mehrstufigen Prozess in eine Kette von hexadezimalen Zeichen, auch als HEX-File bezeichnet, umgesetzt, die für den Prozessor ohne weitere Vorverarbeitung aus fährbare Anweisungen und konstante Parameter enthält. Die einzelnen Schritte des Prozesses werden – auf dem Prozessor selbst oder in einer auf den Prozessor zugeschnittenen Entwicklungsumgebung – von als Compiler, Assembler, Linker und Locator bezeichneten Programmen durchgeführt. Das so erhaltene HEX-File wird in einen Programmspeicher eines Prozessors programmiert, der es auszuführen hat, und dann im entsprechenden Prozessor zur Ausführung gebracht. Bei Mehrprozessorsystemen sind folgende Varianten bekannt:
    • 1. Für jeden Prozessor existiert ein eigener Quellcode und infolgedessen ein eigenes Hex-File, das in den Programmspeicher des entsprechenden Prozessors geladen werden muss. Diese Variante ist geeignet, wenn die von den mehreren Prozessoren auszuführenden Aufgaben klar voneinander unterschieden sind. Eine Kompatibilität der Befehlssätze der Prozessoren ist nicht erforderlich. Da kein Prozessor in der Lage ist, die Aufgaben des anderen zu übernehmen, ist lediglich eine Steigerung der Verarbeitungsleistung erreichbar, aber keine Verbesserung der Ausfallsicherheit.
    • 2. Bei dem aus DE 9947252A1 bekannten Mehrprozessorsystem ist jedem Prozessor ein Programmspeicher zugeordnet, das darin gespeicherte Hex-File ist jedoch für die mehreren Prozessoren identisch. Es führt nicht notwendigerweise jeder Prozessor das gesamte gespeicherte Programm aus. Es kann Programmteile geben, die nur von dem einen oder nur von dem anderen Prozessor ausgeführt werden. Da aber jeder Prozessor über den gesamten Programmcode verfügt, ist er in der Lage, im Falle einer Störung Aufgaben des gestörten Prozessors zumindest in eingeschränkten Umfang mit zu übernehmen.
  • Ein sekundärer Vorteil, der sich aus der Einheitlichkeit des Codes für die mehreren Prozessoren ergibt, ist, dass es beim Laden des HEX-Files in die Programmspeicher aufgrund der Einheitlichkeit der Files zu keinen Verwechslungen mehr kommen kann.
  • Bei diesem herkömmlichen System muss jeder Prozessor über einen eigenen nichtflüchtigen Speicher verfügen, in dem das HEX-File gespeichert ist.
  • Vorteile der Erfindung
  • Die vorliegende Erfindung ermöglicht es, die Zahl der nichtflüchtigen Speicher, die in einem Mehrprozessorsystem zum Speichern der HEX-Files benötigt werden, zu verringern. Dies führt zum einen zu einer strukturellen Vereinfachung der Mehrprozessorsysteme, darüber hinaus ergibt sich eine Verringerung der Kosten eines solchen Systems, da sich die Zahl von spezifisch vorprogrammierten und dementsprechend kostspieligen, in das Mehrprozessorsystem einzubauenden nichtflüchtigen Speichern verringert, bzw., wenn als nichtflüchtige Speicher sogenannte Flash-Speicher oder andere Typen von elektrisch programmierbaren nichtflüchtigen Speichern eingesetzt werden, verringert sich der Zeitaufwand für deren beim Zusammenbau des Mehrprozessorsystems stattfindende Programmierung, und die Mehrkosten derartiger Speicherbausteine gegenüber flüchtigen Speichern können eingespart werden.
  • Diese Vorteile werden zum einen dadurch erreicht, dass bei einem Mehrprozessorsystem mit wenigstens zwei Prozessoren, einem nichtflüchtigen Speicher, der Programmcode für die Prozessoren enthält, und einem flüchtigen Speicher die wenigstens zwei Prozessoren Lesezugriff auf den nichtflüchtigen Speicher haben.
  • Dieser Lesezugriff kann in unterschiedlicher Weise genutzt werden. Einer ersten Variante zufolge können die wenigstens zwei Prozessoren den Lesezugriff während der gesamten Betriebsdauer des Systems nutzen, um Befehle und Parameter jeweils zu dem Zeitpunkt, wo diese benötigt werden, aus dem nichtflüchtigen Speicher zu lesen. Dies ist z.B. möglich durch Verwendung eines nichtflüchtigen Speichers mit Zweitorstruktur oder durch Aufteilung der Übertragungskapazität eines den nichtflüchtigen Speicher mit den Prozessoren verbindenden Busses auf die mehreren Prozessoren.
  • Einer zweiten Variante zufolge nutzt wenigstens einer der mehreren Prozessoren den Lesezugriff auf den nichtflüchtigen Speicher nur während einer Startphase des Mehrprozessorsystems, um den darin enthaltenen Programmcode oder gegebenenfalls wenigstens diejenigen Teile des Programmcodes, die er auszuführen hat, in einen flüchtigen Speicher zu kopieren, auf den er anschließend im Laufe des Normalbetriebs des Systems zugreift, um den Programmcode auszuführen.
  • Die gleichen Vorteile werden erreicht durch ein Mehrprozessorsystem mit wenigsten zwei Prozessoren, einem nichtflüchtigem Speicher, der Programmcode für die Prozessoren enthält, und einem flüchtigen Speicher, bei dem Mittel zum Kopieren des Programmcodes oder wenigstens von Teilen desselben in den flüchtigen Speicher vorhanden sind, wobei wenigstens einer der Prozessoren Lesezugriff auf den in den flüchtigen Speicher kopierten Code hat. Dieser Prozessor wird im folgenden als sekundärer Prozessor bezeichnet, um ihn von einem primären Prozessor zu unterscheiden, der über Lesezugriff auf den nichtflüchtigen Speicher verfügt. Der sekundäre Prozessor benötigt diesen Lesezugriff auf den nichtflüchtigen Speicher nicht.
  • Um den Speicherplatz effektiv zu nutzen, ist vorzugsweise wenigstens ein Teil des Programmcodes durch jeden der wenigsten zwei Prozessoren ausführbar. Ein solcher Teil kann z.B. eine Funktion sein, die von unterschiedlichen Hauptprogrammen der wenigstens zwei Prozessoren in gleicher Weise aufrufbar ist.
  • Umgekehrt ist vorzugsweise wenigstens ein Teil des Programmcodes nur durch einen der wenigstens zwei Prozessoren ausführbar. Im allgemeinen können sich die von den Prozessoren ausgeführten Steuerungsaufgaben unterscheiden; im Extremfall kann der nur durch einen der Prozessoren ausführbare Programmteil aber auch nur derjenige Programmteil sein, der vom primärem Prozessor ausgeführt werden muss, um die anderen Programmteile in den flüchtigen Speicher des wenigstens einen sekundären Prozessors zu kopieren.
  • Speicherbedarf und Ladezeit lassen sich verringern, wenn die Mittel zu Kopieren selektiv nur denjenigen Teil des Programmcodes, der durch den sekundären Prozessor ausführbar ist, in dessen flüchtigen Speicher kopieren. Um diesen Kopiervorgang zu steuern, sind im nichtflüchtigen Speicher vorzugsweise Angaben darüber enthalten, welche Teile des darin gespeicherten Codes durch welchen Prozessor ausführbar sind.
  • Gegenstand der Erfindung ist auch ein Verfahren zum Inbetriebnehmen eines Mehrprozessorsystems mit wenigstens zwei Prozessoren, einem nichtflüchtigen und wenigstens einem flüchtigen Speicher, bei dem ein Programm zunächst in den nichtflüchtigen Speicher geladen wird, wenigstens Teile des Programms in einen flüchtigen Speicher eines sekundären Prozessors geladen werden und der sekundäre Prozessor die kopierten Teile anschließend aus dem flüchtigen Speicher liest und ausführt.
  • Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen mit Bezug auf die beigefügten Figuren.
  • Figuren
  • Es zeigen:
  • l ein Blockdiagramm eines Mehrprozessorsystems gemäß einer ersten Ausgestaltung der Erfindung;
  • 2 ein Blockdiagramm einer Abwandlung des Mehrprozessorsystems aus 1;
  • 3 eine zweite Ausgestaltung des erfindungsgemäßen Mehrprozessorsystems;
  • 4-6 verschiedene Belegungsmuster des nichtflüchtigen Speichers.
  • Bei dem Ausführungsbeispiel der 1 umfasst das Mehrprozessorsystem zwei Prozessoren 1, 2, die zusammen mit einem nichtflüchtigen Speicher 3 und flüchtigen Speichern 4, 5 in einer Baueinheit 6, z.B. auf einer gemeinsamen Leiterplatte, zusammengefasst sind. Die Prozessoren 1, 2 und die Speicher 3, 4, 5 nutzen einen gemeinsamen internen Bus 7. Der nichtflüchtige Speicher 3 ist ein Flash-Speicherbaustein; eine Schnittstelle 8, die zum Eintragen einer gemeinsamen Programmdatei für die zwei Prozessoren 1, 2 in den nichtflüchtigen Speicher 3 dient und auch zur Kommunikation zwischen den Prozessoren 1, 2 und nicht dargestellten Peripheriegeräten über einen externen Bus 14 dienen kann, ist an den Bus 7 angeschlossen.
  • Bei diesem System wechseln sich die Prozessoren 1, 2 in der Herrschaft über den internen Bus 7 ab. Die Zuteilung der Busherrschaft an einen der Prozessoren 1, 2 kann in einem periodischen zeitlichen Mus ter erfolgen, so dass jeweils abwechselnd der Prozessor 1 und anschließend der Prozessor 2 einen Programmbefehl oder einen anderen Datenwert aus dem nichtflüchtigen Speicher 3 lesen kann. Es ist auch eine bedarfsorientierte Zuteilung der Busherrschaft denkbar, bei der jeweils einem Prozessor die Busherrschaft zugeteilt wird, wenn der andere mit internen Operationen beschäftigt ist, die keinen Buszugriff erfordern. Jeder Prozessor greift über die gesamte Betriebsdauer des Systems hinweg fortlaufend auf den nichtflüchtigen Speicher 3 zu, um daraus Programmbefehle jeweils zu dem Zeitpunkt zu lesen, an dem sie benötigt werden. Da nur ein einziger interner Bus 7 vorhanden ist, über den sich die Prozessoren 1, 2 die Herrschaft teilen, müssen sich die Prozessoren 1, 2 auch bei einem Zugriff auf die ihnen zugewiesenen flüchtigen Speicher 4, 5 zeitlich koordinieren. Außerdem steht jedem Prozessor 1, 2 nur ein Teil des möglichen Adressraums zum Adressieren des ihm zugewiesenen flüchtigen Speichers 4 bzw. 5 zur Verfügung.
  • Eine weiterentwickelte Ausgestaltung ist in 2 gezeigt. Bei dieser ist jeder der zwei Prozessoren 1', 2' mit dem ihm zugeordneten flüchtigen Speicher 4, 5 über einen eigenen internen Bus 7 bzw. 9 verbunden. Beide Busse arbeiten unabhängig voneinander, so dass die Prozessoren 1, 2 gleichzeitig auf beliebige Speicherplätze der flüchtigen Speicher 4, 5 zugreifen können und gleiche Adressen können vom Prozessor 1' zum Adressieren des flüchtigen Speichers 4 und vom Prozessor 2' zum Adressieren des flüchtigen Speichers 5 gebraucht werden.
  • Der nichtflüchtige Speicher 3 ist über einen Schalter wahlweise mit dem internen Bus 7 oder mit dem internen Bus 9 verbindbar. Für die Arbeitsweise des Schalters 10 sind mehrere Alternativen denkbar.
  • Einer ersten Alternative zufolge ist der Schalter 10 automatisch durch die von den Prozessoren 1', 2' auf ihre jeweiligen Busse 7 bzw. 9 ausgegebenen Adressen gesteuert. Wenn z.B. der Prozessor 1' einen Befehl zum Lesen einer Adresse im Adressbereich des nichtflüchtigen Speichers 3 ausgibt und der Speicher 3 nicht gleichzeitig vom Prozessor 2' gelesen wird, reagiert der Schalter 10 automatisch, in dem er den nichtflüchtigen Speicher 3 an den internen Bus 7 anschaltet und es ihm so ermöglicht, die von Prozessor 1' ausgegebene Adresse zu erfassen und den dieser Adresse entsprechenden Datenwert zurück zu liefern. Wenn ein anderer Prozessor, hier der Prozessor 2', ebenfalls einen Zugriffsbefehl auf einen Speicherplatz des nichtflüchtigen Speichers 3 ausgibt, bleibt dieser solange unbeantwortet, bis der laufende Lesezugriff durch den Prozessor 1' beendet ist. Sobald dies geschehen ist, verbindet der Schalter 10 den nichtflüchtigen Speicher 3 mit dem Prozessor 2'. Auch bei dieser Variante teilen sich die Prozessoren 1', 2' während des gesamten Betriebs des Mehrprozessorsystems den Zugriff auf den nichtflüchtigen Speicher 3 und lesen aus diesem nach Bedarf Instruktionen und Parameter des auszuführenden Programms.
  • Einer zweiten Variante zufolge verbindet der Schalter 10 den Prozessor 2' nur in einer Initialisierungsphase des Mehrprozessorsystems mit dem nicht flüchtigen Speicher 3. Diese Initialisierungsphase dauert so lange, wie der Prozessor 2' benötigt, um den im nichtflüchtigem Speicher 3 gespeicherten Programmcode oder wenigstens diejenigen Teile davon, die der Prozessor 2' benötigt, in den flüchtigen Speicher 5 zu kopieren. Wenn dies geschehen ist, wird der Schalter 10 dauerhaft umgeschaltet, und während des sich anschließenden Normalbetriebes des Mehrprozessorsystems hat der Prozessor 1' ständigen und uneingeschränkten Lesezugriff auf den nichtflüchtigen Speicher 3.
  • 3 zeigt eine dritte Ausgestaltung eines erfindungsgemäßen Mehrprozessorsystems. Das System umfasst zwei Prozessoren 1'', 2'', wobei der Prozessor 1'' mit dem nichtflüchtigen Speicher 3, einem flüchtigen Speicher 4 und einer Programmierschnittstelle 8 zum Eintragen des Programmcodes von außen in den nichtflüchtigen Speicher 3 in einer Baueinheit 6 zusammengefasst ist, und der Prozessor 2 zusammen mit einem flüchtigen Speicher 5 eine zweite Baueinheit 11 bildet. Die Baueinheiten 6, 11 verfügen über von einander unabhängige interne Busse 7, 9; eine Datenübertragung zwischen den Baueinheiten ist möglich über einen externen, vorzugsweise seriellen Bus 12, der mit den internen Bussen 7, 9 über deren Adressräume trennende Schnittstellenschaltungen 13 verbunden ist. Der Bus 12 kann z. B. vom Typ CAN oder K-Line sein.
  • In 3 ist der serielle Bus 12 zwar getrennt von dem an die Programmierschnittstelle 8 angeschlossenen externen Bus 14 dargestellt, doch können diese zwei Busse und die Schnittstellen 8, 13 auch identisch sein.
  • In einer Initialisierungsbetriebsphase des Mehrprozessorsystems führt der Prozessor 1 zunächst einen Boot-Abschnitt des im nichtflüchtigen Speicher 3 niedergelegten Codes aus, der ihn anweist, den gesamten Inhalt des nichtflüchtigen Speichers 3 oder, alternativ, in einer ebenfalls im nichtflüchtigen Speicher 3 enthaltenen Liste spezifizierte Teile des darin gespeicherten Codes über den seriellen Bus 12 an den flüchtigen Speicher 5 des Prozessors 2'' zu übertragen. Wenn die Übertragung abgeschlossen ist, verfügen beide Prozessoren 1'', 2'' über den benötigten Code und können diesen unabhängig voneinander, ohne ihre Speicherzugriffe koordinieren zu müssen, abarbeiten.
  • Die Initialisierungsbetriebsphase kann bei dieser Ausgestaltung wie auch bei der zweiten Variante der Ausgestaltung aus 2 selbsttätig vom Prozessor 1' bzw. 1'' ausgelöst werden, wenn das System zwecks Inbetriebnahme mit Spannung versorgt wird. Möglich ist auch, die Initialisierungsphase von außen, über die Schnittstelle 8, auszulösen, wenn der Code im nichtflüchtigen Speicher 3 verändert wurde, oder sie periodisch auszulösen. Es können aber auch Mittel am Prozessor 2' bzw. 2'' zum Erfassen eines Datenverlusts im Speicher 5, insbesondere infolge Ausfalls der Versorgungsspannung, vorgesehen werden, die den Prozessor veranlassen, eine Initialisierungsbetriebsphase einzuleiten. Dies kann z. B. ein Einschalt-Bootprogramm sein, das vom Prozessor 2', 2'' automatisch beim Einsetzen der Versorgungsspannung ausgeführt wird.
  • Die 4-6 zeigen Beispiele für mögliche Aufteilungen des nichtflüchtigen Speichers 3.
  • Gemäß 4 ist der Speicher 3 in zwei Abschnitte B und C unterteilt, die jeweils den Bootabschnitt bzw. von beiden Prozessoren 1'', 2'' in gleicher Weise auszuführenden Code enthalten. Beim Starten des in 3 gezeigten Zweiprozessorsystems kann man sich darauf beschränken, den gemeinsamen Codeabschnitt C vom nichtflüchtigen Speicher 3 in den flüchtigen Speicher 5 des Prozessors 2'' zu kopieren, da der Bootabschnitt von Prozessor 2'' niemals ausgeführt wird.
  • Bei dem Ausführungsbeispiel der 5 ist der Speicher aufgeteilt in zwei Abschnitte C1 bzw. C2, wobei der Abschnitt C1, zu dem auch der Bootabschnitt B gehört, nur zur Ausführung durch den Prozessor 1'' und der Abschnitt C2 nur zur Ausführung durch den Prozessor 2 vorgesehen ist. Beim Starten genügt es, den Abschnitt C2 in den flüchtigen Speicher 5 des Prozessors 2 zu übertragen. Die Startadresse des Abschnitts C2, ab der die Übertragung des Codes beginnen muss, ist im Bootabschnitt B verzeichnet.
  • 6 zeigt eine Unterteilung des nichtflüchtigen Speichers 3 in drei Abschnitte C1, C2, C12, wobei der Abschnitt C1 ausschließlich zur Ausführung durch den Prozessor 1 vorgesehenen Code und der Abschnitt C2 ausschließlich zur Ausführung durch den Prozessor 2 vorgesehenen Code enthält. Der Abschnitt C12 enthält von beiden Prozessoren 1'', 2'' auszuführenden Code, z.B. eine Funktionsbibliothek, die von den Hauptprogrammen der Abschnitte C1, C2 gemeinsam genutzt wird. In diesem Fall werden die Abschnitte C2 und C12 in den flüchtigen Speicher 5 des Prozessors 2 übertragen. Adressraum im flüchtigen Speicher 5, der dem Abschnitt C1 entspricht, bleibt wie im Falle der 5 für die Speicherung von Variablen verfügbar.
  • Wie man leicht sieht, sind die oben angegebenen Ausführungsbeispiele leicht auf eine größere Zahl von Prozessoren verallgemeinerbar. So genügt es zum Beispiel im Falle der 2, mehr als zwei Stellungen für den Schalter 10 vorzusehen, die es ihm ermöglichen, den nichtflüchtigen Speicher 3 wahlweise mit einer Vielzahl von voneinander unabhängigen lokalen Bussen mehrer Prozessoren zu verbinden. Im Falle der 3 können zusätzlich Baueinheiten mit weiteren Prozessoren an den externen Bus 12 angeschlossen sein und über diesen mit Kopien des im nichtflüchtigen Speicher 3 abgelegten Codes versorgt werden.
  • Selbstverständlich können in einem erfindungsgemäßen Mehrprozessorsystem Prozessoren, die sich den Zugriff auf einen gemeinsamen nichtflüchtigen Speicher in der oben beschriebenen Weise teilen, auch im Verbund mit Prozessoren eingesetzt werden, deren HEX-File, wie oben im Abschnitt „Stand der Technik" angegeben, in einem Nur-Lese-Speicher abgelegt ist, der dem Prozessor fest zugeordnet ist und auf den nur er allein Lesezugriff hat.
  • Das erfindungsgemäße Mehrprozessorsystem ist insbesondere als Steuergerät für ein Kraftfahrzeug vorteilhaft einsetzbar. Dabei können die mehreren Prozessoren z. B. jeweils zum Steuern einer von mehreren Zylindergruppen des Motors des Fahrzeugs oder für völlig unterschiedliche Steuerungsaufgaben dienen. Die mehrteilige Struktur insbesondere der Ausgestaltung aus 3 erlaubt es, jeden der mehreren Prozessoren in unmittelbarer Nachbarschaft zu von ihm zu steuernden Einrichtungen zu platzieren und so elektromagnetische Störeinflüsse auf die Kommunikation zwischen Prozessoren und von ihnen gesteuerten Einrichtungen zu minimieren.
  • Vorteilhafterweise können in dem erfindungsgemäßen Mehrprozessorsystem die genannten Elemente (Prozessor, flüchtiger/nichtflüchtiger Speicher etc.) als Gesamtheit oder in beliebigen Teilmengen auf einen oder mehreren Chips integriert sein. Umgekehrt ist auch denkbar, dass die genannten flüchtigen und/oder nichtflüchtigen Speicherelemente beispielsweise aus Kosten-/Verfügbarkeitsgründen aus mehreren funktional gleichwertigen Bauteilen zu einem logischen Element zusammengesetzt sind.

Claims (17)

  1. Mehrprozessorsystem mit wenigstens zwei Prozessoren (1, 2), einem nichtflüchtigen Speicher (3), der Programmcode für die Prozessoren enthält, und einem flüchtigen Speicher (4, 5), dadurch gekennzeichnet, dass die wenigstens zwei Prozessoren (1, 2) Lesezugriff auf den nichtflüchtigen Speicher (3) haben.
  2. Mehrprozessorsystem mit wenigstens zwei Prozessoren (1', 2'; 1'', 2'') einem nichtflüchtigen Speicher (3), der Programmcode für die Prozessoren enthält, und einem flüchtigen Speicher (5), dadurch gekennzeichnet, dass Mittel (2'; 1'') zum Kopieren wenigstens eines Teils (C2, C12) des Programmcodes in den flüchtigen Speicher (5) vorhanden sind und dass wenigstens einer der Prozessoren (2', 2''), als sekundärer Prozessor bezeichnet, Lesezugriff auf den flüchtigen Speicher (5) hat.
  3. Mehrprozessorsystem nach Anspruch 2, dadurch gekennzeichnet, dass der sekundäre Prozessor (2'') keinen Lesezugriff auf den nichtflüchtigen Speicher (3) hat.
  4. Mehrprozessorsystem nach Anspruch 3, dadurch gekennzeichnet, dass wenigstens ein anderer der Prozessoren (1''), als primärer Prozessor bezeichnet, Lesezugriff auf den nichtflüchtigen Speicher (3) hat.
  5. Mehrprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens ein Teil (C12) des Programmcodes durch jeden der wenigstens zwei Prozessoren ausführbar ist.
  6. Mehrprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens ein Teil (C1; C2) des Programmcodes nur durch einen der wenigstens zwei Prozessoren ausführbar ist.
  7. Mehrprozessorsystem nach Anspruch 6, soweit auf Anspruch 2 rückbezogen, dadurch gekennzeichnet, dass die Mittel zum Kopieren (2'; 1'') ausgelegt sind, selektiv nur denjenigen Teil (C2; C12) des Programmcodes, der durch den sekundären Prozessor (2'; 2'') ausführbar ist, in den flüchtigen Speicher (5) zu kopieren, auf den der sekundäre Prozessor (2', 2'') Lesezugriff hat.
  8. Mehrprozessorsystem nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass der nichtflüchtige Speicher (3) Angaben (B) darüber enthält, welche Teile des darin gespeicherten Codes durch welchen Prozessor ausführbar sind.
  9. Mehrprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass jeder Prozessor (1, 1', 1''; 2, 2', 2'') zusam men mit Speicher, auf den er Lesezugriff hat, in einer Baueinheit (6; 11) verbunden ist.
  10. Mehrprozessorsystem nach Anspruch 9, dadurch gekennzeichnet, dass die Baueinheiten (6, 11) der einzelnen Prozessoren durch eine serielle Datenleitung (12) verbunden sind.
  11. Mehrprozessorsystem nach einem der Ansprüche 2 bis 10, soweit nicht auf Anspruch 1 rückbezogen, gekennzeichnet durch Mittel zum Erfassen eines Datenverlusts im flüchtigen Speicher.
  12. Mehrprozessorsystem nach einem der vorhergehenden Ansprüche, gekennzeichnet durch eine Programmierschnittstelle (8) zum Beschreiben des nichtflüchtigen Speichers (3).
  13. Mehrprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es eine Steuerschaltung für eine Brennkraftmaschine, insbesondere eines Kraftfahrzeugs, ist.
  14. Verfahren zum Inbetriebnehmen eines Mehrprozessorsystems mit wenigstens zwei Prozessoren, einem nichtflüchtigen Speicher und wenigstens einem flüchtigen Speicher, mit den Schritten a) Laden eines Programms in den nichtflüchtigen Speicher; b) Kopieren wenigstens von Teilen des Programms in einen der flüchtigen Speicher, auf den einer der Prozessoren, als sekun därer Prozessor bezeichnet, Lesezugriff hat; c) Lesen der kopierten Teile des Programms aus dem flüchtigen Speicher und Ausführen derselben mittels des sekundären Prozessors.
  15. Verfahren nach Anspruch 14, mit dem weiteren Schritt d) Lesen wenigstens von Teilen des Programms aus dem nichtflüchtigen Speicher und Ausführen derselben mittels eines anderen der Prozessoren, als primärer Prozessor bezeichnet.
  16. Verfahren nach Anspruch 14 oder 15, dadurch gekennzeichnet, dass der Schritt b) zyklisch wiederholt wird.
  17. Verfahren nach Anspruch 14 oder 15, dadurch gekennzeichnet, dass der Schritt b) bei Erfassung eines Datenverlust im flüchtigen Speicher wiederholt wird.
DE2002147408 2002-10-11 2002-10-11 Mehrprozessorsystem und Verfahren zu dessen Programmierung Ceased DE10247408A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2002147408 DE10247408A1 (de) 2002-10-11 2002-10-11 Mehrprozessorsystem und Verfahren zu dessen Programmierung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2002147408 DE10247408A1 (de) 2002-10-11 2002-10-11 Mehrprozessorsystem und Verfahren zu dessen Programmierung

Publications (1)

Publication Number Publication Date
DE10247408A1 true DE10247408A1 (de) 2004-04-22

Family

ID=32038502

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002147408 Ceased DE10247408A1 (de) 2002-10-11 2002-10-11 Mehrprozessorsystem und Verfahren zu dessen Programmierung

Country Status (1)

Country Link
DE (1) DE10247408A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011089563A1 (de) * 2011-12-22 2013-06-27 Conti Temic Microelectronic Gmbh Verfahren zum Generieren von Software

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011089563A1 (de) * 2011-12-22 2013-06-27 Conti Temic Microelectronic Gmbh Verfahren zum Generieren von Software

Similar Documents

Publication Publication Date Title
EP0947049B1 (de) Umkonfigurierungs-verfahren für programmierbare bausteine zur laufzeit
DE4312250B4 (de) Computer-System, das zum Betrieb sowohl in einer ersten wie auch in einer zweiten Bytereihenfolge-Betriebsart fähig ist, sowie ein Verfahren zum Booten eines solchen Computer-Systems
DE68923433T2 (de) Einrichtung und Methode um Festwertspeicher in einem Rechnerspeicherbereich anzuordnen.
DE10308545A1 (de) Verfahren und Vorrichtung zum Aktualisieren eines verteilten Programms
EP2881857B1 (de) Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
EP2698678A2 (de) Konfigurationstechnik für ein Steuergerät mit miteinander kommunizierenden Anwendungen
EP1924916A2 (de) Speicheranordnung und betriebsverfahren dafür
DE69831985T2 (de) Mikrocomputer mit Flash-EEPROM
DE102018202446A1 (de) Verfahren zum Modularisieren einer Softwarearchitektur
EP1021791B1 (de) Chipkarte mit speicher für anwendungsabhängig nachladbare programme
DE19525100C2 (de) Verfahren zur On-Board-Programmierung eines elektrisch programmierbaren Nur-Lese-Speichers
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE10244922A1 (de) Programmgesteuerte Einheit und Verfahren zum Debuggen von einer programmgesteuerten Einheit ausgeführten Programmen
DE10247408A1 (de) Mehrprozessorsystem und Verfahren zu dessen Programmierung
DE102004013493B4 (de) Zugriffs-Verfahren für einen NAND-Flash-Speicherbaustein und ein entsprechender NAND-Flash-Speicherbaustein
DE3101270C2 (de) Rechneranordnung zur Wortverarbeitung mit einer Einrichtung zur Funktionserweiterung
EP2367084A1 (de) Verfahren für die Konfigurierung einer Steuerungseinrichtung einer industriellen Automatisierungsanordnung und Komponente für eine industrielle Automatisierungsanordnung
EP1197854B1 (de) Verfahren zum Starten einer Datenverarbeitungsanlage sowie zugehörige Komponenten
EP1386200B1 (de) Verfahren und system zur lückenlosen belegung von ein- und ausgabeadressen eines modularen steuersystems
DE19701323C2 (de) Verfahren und Vorrichtung zur Aktualisierung der Betriebssoftware
DE102009057979A1 (de) Verfahren und Vorrichtung zur Konfiguration eines Steuergeräts eines Fahrzeugs
EP0556430B1 (de) Verfahren zur Steuerung eines Peripheriesystems
EP0613077B1 (de) Verfahren zur Reset-Erzeugung in Datenverarbeitungsanlagen
DE10064339B4 (de) Integrierte Schaltungsanordnung in einem Bremskraftregelsystem

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 9/445 AFI20051017BHDE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20120425