DE102004059401B4 - Mehrfachprozessorsystem mit Registerzugriffsprotokoll - Google Patents
Mehrfachprozessorsystem mit Registerzugriffsprotokoll Download PDFInfo
- Publication number
- DE102004059401B4 DE102004059401B4 DE102004059401A DE102004059401A DE102004059401B4 DE 102004059401 B4 DE102004059401 B4 DE 102004059401B4 DE 102004059401 A DE102004059401 A DE 102004059401A DE 102004059401 A DE102004059401 A DE 102004059401A DE 102004059401 B4 DE102004059401 B4 DE 102004059401B4
- Authority
- DE
- Germany
- Prior art keywords
- access
- registers
- processors
- bits
- read
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
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.
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.
Description
- 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 und2 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 Mehrfachprozesso ren, 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.
Claims (8)
- 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.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/799,047 US20050204102A1 (en) | 2004-03-11 | 2004-03-11 | Register access protocol for multi processor systems |
US10/799,047 | 2004-03-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102004059401A1 DE102004059401A1 (de) | 2005-10-06 |
DE102004059401B4 true DE102004059401B4 (de) | 2007-05-31 |
Family
ID=34920424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102004059401A Expired - Fee Related DE102004059401B4 (de) | 2004-03-11 | 2004-12-09 | Mehrfachprozessorsystem mit Registerzugriffsprotokoll |
Country Status (3)
Country | Link |
---|---|
US (1) | US20050204102A1 (de) |
JP (1) | JP2005259133A (de) |
DE (1) | DE102004059401B4 (de) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901230A (en) * | 1983-04-25 | 1990-02-13 | Cray Research, Inc. | Computer vector multiprocessing control with multiple access memory and priority conflict resolution method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1394431A (en) * | 1971-06-24 | 1975-05-14 | Plessey Co Ltd | Multiprocessor data processing system |
JP2743608B2 (ja) * | 1991-03-27 | 1998-04-22 | 日本電気株式会社 | 共有レジスタ制御方式 |
US5659784A (en) * | 1994-01-28 | 1997-08-19 | Nec Corporation | Multi-processor system having communication register modules using test-and-set request operation for synchronizing communications |
US6651145B1 (en) * | 2000-09-29 | 2003-11-18 | Intel Corporation | Method and apparatus for scalable disambiguated coherence in shared storage hierarchies |
-
2004
- 2004-03-11 US US10/799,047 patent/US20050204102A1/en not_active Abandoned
- 2004-12-09 DE DE102004059401A patent/DE102004059401B4/de not_active Expired - Fee Related
-
2005
- 2005-03-07 JP JP2005062090A patent/JP2005259133A/ja not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901230A (en) * | 1983-04-25 | 1990-02-13 | Cray Research, Inc. | Computer vector multiprocessing control with multiple access memory and priority conflict resolution method |
Also Published As
Publication number | Publication date |
---|---|
US20050204102A1 (en) | 2005-09-15 |
DE102004059401A1 (de) | 2005-10-06 |
JP2005259133A (ja) | 2005-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69421755T2 (de) | Initialisierung von Mehrfachbus-Netzwerken | |
DE69221045T2 (de) | Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen | |
DE69834739T2 (de) | Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren | |
DE3876780T2 (de) | Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung. | |
DE60224774T2 (de) | Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit | |
DE4017902A1 (de) | Zusatzkarte mit automatischer anpassung an die schlitzposition | |
DE3131341A1 (de) | "pufferspeicherorganisation" | |
DE3940302C2 (de) | ||
DE19903633A1 (de) | Implementierung von Boolescher Erfüllbarkeit mit nichtchronologischer Rückwärtsverarbeitung in rekonfigurierbarer Hardware | |
DE10312264A1 (de) | Verfahren und Vorrichtung zum Hervorrufen von Unterschieden bei mit Verriegelungsschritten versehenen Prozessoren | |
DE69223003T2 (de) | Vielfachkanalschnittstelle in einem Mikrocomputer | |
DE112007000688B4 (de) | Fehlerverwaltungstopologien | |
DE102020113949A1 (de) | Interconnect von Fabric-Die zu Fabric-Die für modularisierte integrierte Schaltungsvorrichtungen | |
DE102013113262A1 (de) | Auslöser-Leitwegeinheit | |
DE69429309T2 (de) | Adressendekoder mit geringer Schaltungsgrösse und Adressbereicherweiterungsmöglichkeit | |
DE69128908T2 (de) | Verfahren zum Durchführen von erlässlichen Befehlen in einem Rechner | |
DE102014119048A1 (de) | Ausführung von Verarbeitungsvorgängen in einer SIMD-Verarbeitungseinheit | |
DE2556617A1 (de) | Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes | |
DE2912073A1 (de) | Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem | |
DE10324337A1 (de) | Rechnersystem sowie zugehörige Speicherarchitektur und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms | |
DE102004003102A1 (de) | System und Verfahren zum Bestimmen einer Transaktionszeitüberschreitung | |
DE69518145T2 (de) | Verzeichnis für ein-/ausgangsdecoder | |
DE102004059401B4 (de) | Mehrfachprozessorsystem mit Registerzugriffsprotokoll | |
DE69817852T2 (de) | Speicherschutzsystem für ein multitaskingsystem | |
DE4135031C2 (de) | Eingabe/Ausgabe-Einrichtung und Verfahren zum Betreiben einer Eingabe/Ausgabe-Einrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: AVAGO TECHNOLOGIES ENTERPRISE IP (SINGAPORE) PTE. |
|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |