PatentDe  


Dokumentenidentifikation DE102004059401B4 31.05.2007
Titel Mehrfachprozessorsystem mit Registerzugriffsprotokoll
Anmelder Avago Technologies Enterprise IP (Singapore) Pte. Ltd., Singapore, SG
Erfinder Taylor, Richard David, Eagle, Id., US
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Anmeldedatum 09.12.2004
DE-Aktenzeichen 102004059401
Offenlegungstag 06.10.2005
Veröffentlichungstag der Patenterteilung 31.05.2007
Veröffentlichungstag im Patentblatt 31.05.2007
IPC-Hauptklasse G06F 9/50(2006.01)A, F, I, 20061214, B, H, DE

Beschreibung[de]

Mehrfachprozessorsysteme, z. B. MODEMS, Netzwerkperipheriegeräte, werden üblich, da auf Prozessor oder digitaler Signalverarbeitung (DSP; DSP = digital signal processing) basierende I/Os zu Systemen hinzugefügt werden. Die Prozessoren können innerhalb eines einzelnen Chips umfasst sein oder in separaten verbundenen integrierten Schaltungen (ICs; IC = integrated circuit) angeordnet sein. Das Mehrfachprozessorsystem kann über Register kommunizieren, wie in 1 und 2 gezeigt ist. Es muss darauf geachtet werden, die Prozessoren daran zu hindern, die Register unabsichtlich zu verfälschen, z. B. am gleichzeitigen Versuchen zum Lesen – Modifizieren – Schreiben innerhalb desselben Registers. Die Register können verfälscht werden, außer eine explizite Konfliktverwaltungstechnik wird eingesetzt.

Bekannte Konfliktverwaltungsschemata basieren auf Software, Semaphoren oder fester Prioritätshardwareentscheidung innerhalb der Register. Die Schemata sind häufig anfällig für Fehler, unflexibel und schwierig zu verifizieren.

Aus der US-A-4,901,230 ist bereits ein Mehrfachprozessorsystem und ein Verfahren zum Betreiben eines derartigen Systems bekannt. Ein Paar von Prozessoren ist mit einem zentralen Speicher sowie mit einer Mehrzahl von gemeinsam benutzten Registern verbunden, die durch jeden der Prozessoren mit einer Häufigkeit direkt adressiert werden können, die von den innerhalb der Prozessoren ablaufenden Operationen abhängt. Ein Multiport-Speicher hat eine Schaltung zur Behandlung von Konflikten, welche bei Auftreten derartiger Konflikte eine Priorisierung vornimmt. Das Vielfachverarbeitungsverfahren ermöglicht die gleichzeitige Abarbeitung von Aufgaben (Multitasking) innerhalb der Mehrfachprozessoren, wobei es durch die gemeinsam zugreifbaren Register ermöglicht wird, unterschiedliche Aufgaben gleichzeitig auszuführen.

Es ist die Aufgabe der vorliegenden Erfindung, ein System mit verbesserten Charakteristika zu schaffen.

Diese Aufgabe wird durch ein System gemäß Anspruch 1 gelöst.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:

1 ein Mehrfachprozessorsystem gemäß dem Stand der Technik;

2 ein Mehrfachprozessorsysteme gemäß dem Stand der Technik; und

3 ein darstellendes Beispiel des Konfigurationsregisters der vorliegenden Erfindung.

Die vorliegende Erfindung ist ein Konfliktverwaltungsprotokoll, das für Flexibilität und Robustheit in der Hardware zur Laufzeit konfigurierbar ist. Für jedes Element, z. B. Bit, Register oder Registerbank, spezifiziert die programmierbare Konfliktverwaltung, welche Ebene von Schreibzugriff jeder Prozessor für das spezifizierte Element hat.

Die Zugriffstypen sind definiert: LESEN, LESEN/LÖSCHEN, LESEN/EINSTELLEN und LESEN/SCHREIBEN. Für LESEN (READ) kann der Prozessor das Element nur Lesen. Versuche zu schreiben werden ignoriert oder erzeugen optional einen Fehler. Für LESEN/LÖSCHEN (READ/CLEAR) kann der Prozessor Bits innerhalb des Elements lesen oder löschen. Für LESEN/EINSTELLEN (READ/SET) kann der Prozessor Bits innerhalb des Elements lesen oder einstellen. Für LESEN/SCHREIBEN (READ/WRITE) kann der Prozessor innerhalb des Elements Bits lesen, einstellen oder löschen.

Die Zugriffstypen (Access Type) ermöglichen, dass einfache Handshake-Protokolle zwischen Prozessoren implementiert werden. Zum Beispiel wird ein einfacher verriegelter bzw. „interlocked" Handshake implementiert, wenn es einem Prozessor nur erlaubt ist, ein bestimmtes Element einzustellen, und es einem zweiten Prozessor nur erlaubt ist, dasselbe zu löschen.

Zusätzlich zu dem Zugriffstyp wird ferner eine optionale Entscheidungspriorität spezifiziert. Dies definiert, was passiert, wenn ein Konflikt zwischen Prozessorzugriffstypen vorliegt. Zur Darstellung, wenn ein Prozessor versucht, ein bestimmtes Element zu LESEN/LÖSCHEN, während ein anderer Prozessor versucht, dasselbe Element zu LESEN/EINSTELLEN, definiert die Entscheidungspriorität das Ergebnis. Für Systeme, die ohne Entscheidungspriorität (Arbitration Priority) implementiert sind, wären die Zugriffstypen als gegenseitig ausschließend konfiguriert.

Bei einem darstellenden Ausführungsbeispiel für ein Zweiprozessorsystem können fünf Konfigurationsbits für jedes Element verwendet werden, wie in Tabelle 1 gezeigt ist.

Somit würde ein Wert von „10110" anzeigen, dass Prozessor1 einen LESEN/LÖSCHEN-Zugriff hat und Prozessor2 einen LESEN/EINSTELLEN-Zugriff hat. In dem Fall eines Konflikts hat Prozessor2 Priorität über Prozessor1. Dies könnte für ein Interrupt von Prozessor2 zu Prozessor1 verwendet werden.

Prozessor2 stellt das Interrupt-Bit ein und es bleibt eingestellt, bis Prozessor1 das Löschen desselben bestätigt.

3 stellt ein darstellendes Beispiel der Daten innerhalb eines gemeinschaftlich verwendeten Systems oder eines Konfigurationsregisters dar. Bei diesem Ausführungsbeispiel werden die höchstwertigen fünf Bits zur Zugriffssteuerung verwendet. Die verbleibenden Bits in dem Register speichern die Daten.

Die Erfindung erlaubt es einer Konfiguration eines breiten Bereichs von Schnittstellenprotokollen, zu ermöglichen, dass die Hardware entwickelt wird, bevor ein Protokoll bekannt ist, und der Hardware zu ermöglichen, neu konfiguriert zu werden, um ein unterschiedliches Protokoll zu unterstützen. Die allgemeinste Implementierung würde die Konfigurationsbits für jedes Bit in einem Register liefern. Es ist jedoch eine kostengünstigere Implementierung möglich, durch Schützen von Sammlungen von Bits oder Registern. Die Konfigurationsbits können durch einen einzelnen Prozessor oder gemeinsam gesteuert werden. Alternativ kann das Zugriffsprotokoll codiert werden und als eine Bauzeitoption in dem Hardwareentwurfsquellcode ausgewählt werden oder codiert werden und als Eingangssignale zu dem Hardwareentwurf geliefert werden.

Ein Fachmann auf dem Gebiet kann das erfinderische Konzept ausdehnen. Für ein Mehrfachprozessorsystem mit N Prozessoren, wobei N eine ganze Zahl ist, N ≥ 2, besteht jedes programmierbare Konfigurationsregister aus 2N Bits, wobei jeder der konfigurierbaren Zugriffstypen in zwei Bits codiert ist. Wenn die optionale Entscheidungspriorität umfasst ist, können zusätzlich N·ceiling(log2N) Bits verwendet werden, wobei jeder Satz von ceiling(log2N)-Bits eine relative Entscheidungspriorität für jeden Prozessor liefert. Die ceiling-Funktion ist wie folgt definiert: für jede gegebene echte Zahl x ist ceiling(x) die kleinste ganze Zahl nicht kleiner als x. In einem 8-Prozessor-System könnte z. B. die relative Priorität von jedem Prozessor in drei Bits codiert werden. Wenn jeder Prozessor mit einer eindeutigen Entscheidungsprioritätsnummer codiert ist, kann die Logik bestimmen, welcher Prozessor Schreibpriorität hat. In diesem Beispielfall wären 5 Bits pro Prozessor erforderlich, oder insgesamt 40 Bits für jedes gemeinschaftlich verwendete Registerelement.


Anspruch[de]
Ein System, das ein Zugriffsprotokoll verwendet, das verhindert, dass Daten, die in gemeinschaftlich verwendeten Systemregistern gespeichert sind, verfälscht werden, aufgrund dessen, dass auf die Register gleichzeitig durch mehrere Prozessoren zugegriffen werden kann, wobei das System folgende Merkmale aufweist:

N Prozessoren, N ≥ 2, wobei N eine ganze Zahl ist,

ein oder mehrere Systemregister, die durch die N Prozessoren gemeinschaftlich verwendet werden, wobei jedes Register ein Zugriffsprotokoll und Daten umfasst, wobei es das Zugriffsprotokoll den N Prozessoren ermöglicht, die Systemregister gemeinschaftlich zu verwenden, ohne die Daten zu verfälschen, die in den Registern gespeichert sind, wobei das Zugriffsprotokoll einen konfigurierbaren Zugriffstyp für jeden der N Prozessoren umfasst, wobei der Zugriffstyp aus einer Gruppe ausgewählt ist, die LESEN, LESEN/LÖSCHEN, LESEN/EINSTELLEN und LESEN/SCHREIBEN umfasst; und ein oder mehrere programmierbare Konfigurationsregister, wobei jedes Konfigurationsregister einem der Systemregister entspricht, und wirksam ist, um das Zugriffsprotokoll zu codieren und zu speichern.
System gemäß Anspruch 1, bei dem:

jedes programmierbare Konfigurationsregister aus N·2 Bits besteht; und

die konfigurierbaren Zugriffstypen in 2 Bits codiert sind.
System gemäß Anspruch 1 oder 2, bei dem das Zugriffsprotokoll codiert und als Eingangssignale zu dem Hardwareentwurf geliefert wird. System gemäß einem der Ansprüche 1 bis 3, bei dem das Zugriffsprotokoll codiert und ausgewählt ist als eine Bauzeitoption in dem Hardwareentwurfsquellcode. System gemäß einem der Ansprüche 1 bis 4, bei dem das Zugriffsprotokoll ferner eine Entscheidungspriorität umfasst. System gemäß Anspruch 5, das programmierbare Konfigurationsregister aufweist, die wirksam sind, um das Zugriffsprotokoll zu codieren und zu speichern, wobei jedes Konfigurationsregister einem der gemeinschaftlich verwendeten Systemregister entspricht. System gemäß Anspruch 6, bei dem:

N 2 ist; und

jedes programmierbare Register 5 Bits umfasst, wobei 2 Bits den Zugriffstyp von einem der zwei Prozessoren darstellen, 2 Bits den Zugriffstyp des anderen der zwei Prozessoren darstellen und 1 Bit die Entscheidungspriorität darstellt.
System gemäß Anspruch 6 oder 7, bei dem:

jedes programmierbare Konfigurationsregister aus N·(2 + ceiling(log2N)) Bits besteht; und

das Zugriffsprotokoll, das die vier Zugriffstypen umfasst, in 2 Bits pro Prozessor codiert ist, und die Entscheidungspriorität in ceiling(log2N) Bits codiert ist.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com