DE102004059401B4 - Mehrfachprozessorsystem mit Registerzugriffsprotokoll - Google Patents

Mehrfachprozessorsystem mit Registerzugriffsprotokoll Download PDF

Info

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
Application number
DE102004059401A
Other languages
English (en)
Other versions
DE102004059401A1 (de
Inventor
Richard David Taylor
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies Enterprise IP Singapore Pte Ltd
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 Avago Technologies Enterprise IP Singapore Pte Ltd filed Critical Avago Technologies Enterprise IP Singapore Pte Ltd
Publication of DE102004059401A1 publication Critical patent/DE102004059401A1/de
Application granted granted Critical
Publication of DE102004059401B4 publication Critical patent/DE102004059401B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program 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.

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 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 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.
  • Figure 00040001
  • 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)

  1. 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.
  2. System gemäß Anspruch 1, bei dem: jedes programmierbare Konfigurationsregister aus N·2 Bits besteht; und die konfigurierbaren Zugriffstypen in 2 Bits codiert sind.
  3. System gemäß Anspruch 1 oder 2, bei dem das Zugriffsprotokoll codiert und als Eingangssignale zu dem Hardwareentwurf geliefert wird.
  4. System gemäß einem der Ansprüche 1 bis 3, bei dem das Zugriffsprotokoll codiert und ausgewählt ist als eine Bauzeitoption in dem Hardwareentwurfsquellcode.
  5. System gemäß einem der Ansprüche 1 bis 4, bei dem das Zugriffsprotokoll ferner eine Entscheidungspriorität umfasst.
  6. 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.
  7. 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.
  8. 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.
DE102004059401A 2004-03-11 2004-12-09 Mehrfachprozessorsystem mit Registerzugriffsprotokoll Expired - Fee Related DE102004059401B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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