DE19544920C2 - Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl von Signalen - Google Patents

Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl von Signalen

Info

Publication number
DE19544920C2
DE19544920C2 DE1995144920 DE19544920A DE19544920C2 DE 19544920 C2 DE19544920 C2 DE 19544920C2 DE 1995144920 DE1995144920 DE 1995144920 DE 19544920 A DE19544920 A DE 19544920A DE 19544920 C2 DE19544920 C2 DE 19544920C2
Authority
DE
Germany
Prior art keywords
signals
selection
active
hardware
fair
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 - Lifetime
Application number
DE1995144920
Other languages
English (en)
Other versions
DE19544920A1 (de
Inventor
Andreas Kirstaedter
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE1995144920 priority Critical patent/DE19544920C2/de
Publication of DE19544920A1 publication Critical patent/DE19544920A1/de
Application granted granted Critical
Publication of DE19544920C2 publication Critical patent/DE19544920C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

Die Erfindung bezieht sich auf ein Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl von k Signalen (1 ≦ k ≦ a) aus einer veränderlichen Anzahl a von aktiven Signalen (1 ≦ a ≦ N) innerhalb einer Grundgesamtheit von N Signalen.
Die faire Auswahl konkurrierender Signale ist eine häufige Aufgabe innerhalb von Hard­ ware-Schaltungen, die Steuerungsaufgaben beinhalten.
Ein Beispiel ist die Auswahl konkurrierender Daten(-paket)ströme innerhalb von Vermitt­ lungseinrichtungen. Falls mehrere Eingänge der Vermittlungseinrichtung Daten zu dem­ selben Ausgang übertragen möchten, muß hier eine faire Auswahl zwischen den konkurrie­ renden (d. h. aktiven) Eingängen getroffen werden. Oft wird für diese Aufgabe eine zufällige Auswahl des jeweils durchzuschaltenden Eingangs eingesetzt [vgl. hierzu u. a.: Anderson, Thomas E./Owicki, Susan S./Saxe, James B./Thacker, Charles, P.: "High- Speed Switch Scheduling for Local-Area Networks" in: ACM Transactions on Computer Systems, Vol. 11, Nr. 4, Nov. 1993, S. 319-352].
Die prinzipielle Umgebung für das Zufallsauswahlverfahren sieht dann i. allg. so aus (vgl. Fig. 3), daß der Zufallsauswahleinheit (ZAE) zu Beginn des aktuellen Auswahlzyklus in einer Eingangsregisterbank (ERB) die Aktivität (d. h. der Wunsch, ausgewählt zu werden) bzw. Nichtaktivität jedes einzelnen der N Signale durch jeweils ein Status-Bit angezeigt wird (mittels der Steuerleitungen A' bis N'). Die ZAE selektiert dann eine vorgegebene An­ zahl k von Signalen zufällig aus den a aktiven Signalen (wobei selbstverständlich k nicht a überschreiten kann. Die getroffene Auswahl wird dann in eine (zuvor zu Beginn des ak­ tuellen Auswahlzyklus gelöschte) Ausgangsregisterbank ARB eingetragen. Die Status- Bits der ARB veranlassen dann das Durchschalten bzw. Nichtdurchschalten der zugehöri­ gen Signalleitungen (mittels der Steuerleitungen A'' bis N'' und den Und-Gattern G). Oft ändert sich das Vorliegen/Nichtvorliegen der Signale in so kurzen Zeitabständen (bzw. sind die Auswahlzyklen so kurz), daß die ZAE nicht in Software (d. h. Mikrokontroller-ba­ siert) implementiert werden kann und die Zufallsauswahl somit in dedizierter Hardware erfolgen muß. Ein Beispiel ist der Einsatz der ZAE zur Auswahl der pro Zelldauer durchzu­ schaltenden Zellen innerhalb von Vermittlungseinrichtungen des Asynchronen Transfer­ modus. Die Zelldauer und damit die max. Dauer eines Auswahlzyklus ist hier oft kürzer als eine Mikrosekunde.
Besondere Schwierigkeiten hierbei bereitet die Tatsache, daß die Anzahl a der aktiven Lei­ tungen, aus denen eine Auswahl zu treffen ist, variabel ist. Eine Erzeugung von Zufallszah­ len aus einem variablen Wertebereich (wie sie normalerweiser in einer Software-gestütz­ ten Lösung erfolgen würde) ist jedoch mit herkömmlichen Hardware-basierten Zufallsgeneratoren (z. B. rückgekoppelte Schieberegister) nur äußerst aufwendig realisier­ bar.
Deshalb werden heute i. allg. Tabellen mit im voraus berechneten Zufallswerten für diese Aufgabe verwendet. Im Prinzip ist dort jeder Kombination von aktiven/inaktiven Ein­ gangssignalen eine Zeile der Tabelle zugeordnet, in der die Indices der einzelnen aktiven Eingänge in zufälliger Reihenfolge spaltenweise eingetragen sind. Die zufällige Auswahl eines Eingangs erfolgt dann durch Indizierung der Spalten der Tabelle über einen Zufalls­ generator mit festem Wertebereich.
Nachteilig ist hier einerseits, daß die nötige Anzahl von Zeilen sehr rasch mit der Gesamt­ zahl N der Eingänge anwächst. Da außerdem alle Zeilen der Tabelle die gleiche Länge ha­ ben müssen und sich diese Länge aus dem kleinsten gemeinsamen Vielfachen aller mögli­ chen Werte von a (zwischen 1 und N) ergibt, sind Tabellen-basierte Lösungen nur für kleine Werte von N verwendbar.
Für die Auswahl von mehreren Signalen (d. h. für k < 1) aus den aktiven Signalen a inner­ halb eines Auswahlzyklus müssen die herkömmlichen Verfahren mehrfach ausgeführt werden, wodurch sich eine zusätzliche Zeitproblematik ergibt.
Es ist nun Aufgabe der vorliegenden Erfindung, ein Verfahren zur Verfügung zu stellen, das mit geringem Aufwand eine zufällige Auswahl eines oder mehrerer Signale aus einer großen, beliebig veränderlichen Anzahl von aktiven Signalen ermöglicht.
Erfindungsgemäß wird die vorstehend aufgezeigte Aufgabe dadurch gelöst, in einer für je­ den Auswahlzyklus neu pseudo-zufällig generierten Reihenfolge stets die Gesamtzahl N aller Signale auf Aktivität geprüft wird und entsprechend der gewünschten Anzahl k von auszuwählenden Signalen jeweils die in der Prüfreihenfolge zuerst als aktiv angetroffenen k Signale ausgewählt werden.
Die Erfindung bringt folgende Vorteile mit sich:
Durch die ständige Einbeziehung der festen Anzahl N aller Eingänge in das Prüfverfahren entfällt die Abhängigkeit von der variablen Anzahl a von aktiven Eingängen. Das Wegfal­ len dieser Variabilität führt zu einer starken Reduzierung des Hardware-Aufwands in der Implementierung (vgl. untenstehendes Ausführungsbeispiel). Außerdem ergibt sich ein hoher Geschwindigkeitsvorteil in Fällen, in denen mehr als eine Leitung auszuwählen ist, dadurch, daß hier nur ein Durchlauf der Prüfreihenfolge mit entsprechender Auswahl der ersten k (statt allein des ersten) als aktiv angetroffenen Signale genügt.
Eine Ausgestaltung nach Patentanspruch 2 erlaubt eine starke Reduzierung der Gesamtzahl von nötigen Prüffolgen, die zur Aufrechterhaltung der Fairneß zwischen konkurrierenden aktiven Eingängen benötigt werden. Für vollständige Permutation der Prüfreihenfolge müßten bei einer Gesamtzahl von N Eingängen N! (Fakultät von N) Folgen generiert werden. Diese hohe Anzahl wird jedoch bei weitem nicht benötigt, um Fairneß zwischen den konkurrierenden aktiven Eingängen herzustellen. Eine geeignete Untermenge an Prüf­ folgen läßt sich nun gemäß Anspruch 2 dadurch generieren, daß die Gesamtzahl der Ein­ gänge nach einem hierarchischen Schema in Gruppen unterteilt wird und dann nur noch die Gruppen auf den einzelnen Hierarchiebenen pseudo-zufallsgesteuert vertauscht wer­ den.
Im folgenden ist ein Ausführungsbeispiel näher beschieben.
Fig. 1 zeigt die prinzipielle Hardwarestruktur der Zufallsauswahleinheit (ZAE) aus Fig. 3 für das zufällig-sequentielle Abprüfen nach Anspruch 1.
Zu Beginn eines Abfragezyklus werden die FlipFlops der Eingangsregisterbank ERB und der Ausgangsregisterbank ARB zurückgesetzt und der Zufallsreihenfolgengenerator ZRG wird veranlaßt, eine neue Zufallsfolge zu generieren. Außerdem wird in den Rückwärts­ zähler CDC die Maximalanzahl k der auszuwählenden Signale geladen und die Aktivität /Nichtaktivität der Eingangssignale durch Setzen der Flipflops in der ERB vermerkt. Mit jedem neuen Taktsignal Cl wird nun vom ZRG die nächste Adresse des abzuprüfenden Ein­ gangssignals über einen Adreßbus b an den Multiplexer MUX und den Demultiplexer DE- MUX gelegt. Ist dieses Signal als aktiv in der ERB vermerkt und wurden bisher weniger als k Signale ausgewählt (Ausgangssignal von CDC ist größer als Null), so wird über das Und-Gatter das entsprechende FlipFlop der ARB gesetz (und somit der zugehörige Ein­ gang durchgeschaltet) und eine Dekrementierung des Rückwärtszählers veranlaßt.
Als Beispiel für eine hierarchische Gruppierung der Signaleingänge gemäß Anspruch 2 ist hier eine Gruppenhierarchiebildung auf der Basis von Potenzen der Zahl 2 gezeigt, die in vielen Fällen bereits eine ausreichende Fairneß gewährleisten kann:
die unterste Vertauschungsebene bilden hier jeweils zwei benachbarte Signaleingänge; die nächsthöhere Hierarchieebene wird dann von jeweils 2 benachbarten Paaren der untersten Ebene gebildet etc.
Beim Vorliegen von 8 Eingangssignalen A, B, C, D, E, F, G und H ergibt sich also die fol­ gende Gruppenhierarchie (Hierarchie von Vertauschungsebenen):
  • 1. Vertauschungsebene: A ↔ B, C ↔ D, E ↔ F, G ↔ H
  • 2. Vertauschungsebene: AB ↔ CD, EF ↔ GH
  • 3. Vertauschungsebene: ABCD ↔ EFGH
Unter Ausnutzung der Vertauschungsmöglichkeiten auf allen drei Ebenen ergeben sich al­ so die im folgenden gezeigten 8 Prüffolgen:
Folge 0: ABCDEFGH (Grundfolge, keine Vertauschung)
Folge 1: BADCFEHG (Vertauschung auf Ebene 0)
Folge 2: CDABGHEF (Vertauschung auf Ebene 1)
Folge 3: DCBAHGFE (Vertauschung auf Ebenen 0 und 1)
Folge 4: EFGHABCD (Vertauschung auf Ebene 2)
Folge 5: FEHGBADC (Vertauschung auf Ebenen 0 und 2)
Folge 6: GHEFCDAB (Vertauschung auf Ebenen 1 und 2)
Folge 7: HGFEDCBA (Vertauschung auf Ebenen 0, 1 und 2).
Für eine Konkurrenz der Eingänge A und B wird nun A bei den Prüffolgen 0, 2, 4 und 6 und B bei den Prüffolgen 1, 3, 5 und 7 zuerst auf Aktivität geprüft und damit bevorteilt. Wie man leicht sieht, gilt das auch für beliebige Konkurrenzsituationen anderer Eingänge. Das vorgestellte Vertauschungsschema läßt sich auch auf eine beliebige größere Anzahl von Eingängen erweitern. Z. B. für 16 Eingänge kommt eine Vertauschungsebene benach­ barter 8er-Gruppen hinzu, für 32 Signaleingänge eine Ebene benachbarter 16er-Gruppen etc.
Situationen, in denen die Gesamtzahl N von Eingangssignalen keine Potenz von 2 ist, las­ sen sich genausogut (und fair) handhaben, wenn das Vertauschungsschema der nächsthö­ heren 2er-Potenz verwendet wird. Dies kann man sich z. B. durch Weglassen der Eingänge G und H aus obigem Beispiel verdeutlichen: bei Beibehaltung der 8 Prüffolgen besteht wei­ terhin Fairneß zwischen beliebigen Eingangspaaren.
Es genügt also stets eine Anzahl von Prüffolgen, die der nächsthöheren Zweierpotenz N' der Eingangsanzahl N entspricht.
Fig. 2 zeigt eine mögliche Realisierung des Zufallsreihenfolgengenerators ZRG gemäß Anspruch 2 für die soeben erwähnten 2er-Gruppen-Vertauschungen:
Zu Beginn eines Abfragezyklus wird der Zufallszahlengenerator ZZG (realisiert z. B. mit rückgekoppelten Schieberegistern) veranlaßt, eine neue Zufallszahl (binär, zwischen 0 und N'-1) für den aktuellen Zyklus zu erzeugen und der Binärzähler Z (Wertebereich: 0 bis N'-1) wird auf 0 zurückgesetzt. Während des Abfragezyklus wird nun mit jedem Takt Cl der Zähler Z inkrementiert. Der Zählerstand wird jeweils im Gatterblock GB bitweise mit der Zufallszahl von Z exklusiv-oder-verknüpft. Durch diese Verknüpfung und das Hoch­ zählen von Z entstehen am Ausgang von G (d. h. auf dem Bus b) die MUX-Adressen aller FlipFlops des ERB aus der Fig. 1 in einer der oben erwähnten, durch 2er-Gruppen-Ver­ tauschung erzeugten, Reihenfolge. Diese Reihenfolge hängt somit von der Zufallszahl von ZZG ab und so für jeden Abfragezyklus pseudo-zufällig neu generiert.

Claims (2)

1. Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl einer Anzahl von k Signalen (1 ≦ k ≦ a) aus einer veränderlichen Anzahl a von aktiven Signalen (1 ≦ a ≦ N) innerhalb einer Grundgesamtheit von N Signalen dadurch gekennzeichnet, daß in einer pseudo-zufällig generierten Reihenfolge stets die Gesamtzahl N aller Signale auf Aktivität geprüft wird und entsprechend der gewünschten Anzahl k von auszuwählenden Signalen jeweils die in der Prüfreihenfolge zuerst als aktiv angetroffenen k Signale ausge­ wählt werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Gesamtzahl N der Signale nach einem hierarchischen, rekursiven Schema in Gruppen unterteilt werden und zur Erzeugung der einzelnen Prüfreihenfolgen eine zufallsgesteuerte Auswahl der Vertauschungsmöglichkeiten innerhalb der einzelnen Hierarchieebenen er­ folgt.
DE1995144920 1995-12-01 1995-12-01 Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl von Signalen Expired - Lifetime DE19544920C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE1995144920 DE19544920C2 (de) 1995-12-01 1995-12-01 Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl von Signalen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1995144920 DE19544920C2 (de) 1995-12-01 1995-12-01 Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl von Signalen

Publications (2)

Publication Number Publication Date
DE19544920A1 DE19544920A1 (de) 1997-06-05
DE19544920C2 true DE19544920C2 (de) 1998-10-01

Family

ID=7778976

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1995144920 Expired - Lifetime DE19544920C2 (de) 1995-12-01 1995-12-01 Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl von Signalen

Country Status (1)

Country Link
DE (1) DE19544920C2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19941851A1 (de) * 1999-09-02 2001-04-12 Infineon Technologies Ag Zellkonfliktauflösungseinheit für eine Einrichtung zur Vermittlung einer Mehrzahl von paket-orientierten Signalen

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Anderson, Thomas E./Owicki, Susan S./Saxe, James B./Thacker, Charles P.: High-Speed Switch Scheduling for Local-Area Networks, In: ACM Transactions on Computer Systems, Vol. 11, Nr. 4, Nov. 1993, S. 319-352 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19941851A1 (de) * 1999-09-02 2001-04-12 Infineon Technologies Ag Zellkonfliktauflösungseinheit für eine Einrichtung zur Vermittlung einer Mehrzahl von paket-orientierten Signalen
DE19941851C2 (de) * 1999-09-02 2003-04-10 Infineon Technologies Ag Zellkonfliktauflösungseinheit für eine Einrichtung zur Vermittlung einer Mehrzahl von paket-orientierten Signalen

Also Published As

Publication number Publication date
DE19544920A1 (de) 1997-06-05

Similar Documents

Publication Publication Date Title
DE3224034C2 (de)
DE3300260C2 (de)
EP0107026B1 (de) Speicherprogrammierbare Steuerung
DE2015971C3 (de) Datenverarbeitungsanlage mit einer Anzahl von zeitmultiplex von einem zentralen Rechenwerk bedienten virtuellen Prozessoren
DE19900365A1 (de) Hochgeschwindigkeits-Halbleiterspeichervorrichtung, die eine Datensequenz für eine Burst-Übertragung ändern kann
DE2359178A1 (de) Speicheranordnung
DE2928488A1 (de) Speicher-subsystem
DE69822866T2 (de) System und verfahren zum beenden von lock-step-sequenzen in einem multiprozessorsystem
DE4206286A1 (de) Speicherzugriffssystem
EP0031485A1 (de) Prioritätseinrichtung für eine Einheit einer Datenverarbeitungsanlage mit einer Daten-Sammelleitung
DE2212373A1 (de) Schnelles Sperrgatter
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE1524111C3 (de) Elektronische Datenverarbeitungsanlage
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
EP0380509B1 (de) Messverfahren und messeinrichtung zur störungsanalyse digitaler übertragungswege
DE19544920C2 (de) Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl von Signalen
DE3333366A1 (de) Aufloesungsnetzwerk fuer zuletzt erfolgte benutzungen
DE4115084C2 (de) Vorrichtung zum Testen einer Halbleiterspeichereinrichtung
DE3105115A1 (de) Datenverarbeitungssystem mit bezueglich einer schluesselspeicherung ringfoermig angeschlossenen mulitprozessoren
DE69836236T2 (de) Verfahren zum Zuordnen von Daten zu ATM Zellen
DE4343588A1 (de) Verfahren und Einrichtung zur zufälligen Auswahl einer von N gleichen Einheiten, sowie Koppelelement, Koppelnetz und Vermittlungsstelle damit
EP0009625A2 (de) Datentransferschalter mit assoziativer Adressauswahl in einem virtuellen Speicher
DE69629823T2 (de) Verfahren und gerät zur erkennung doppelter eintragungen in einer nachschlagtabelle
DE19701508C2 (de) Selbstkonfigurierendes modulares Elektroniksystem, insbesondere Computersystem
DE1774849C3 (de) Adressierungseinrichtung für eine Speicherabschnittkette

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8122 Nonbinding interest in granting licenses declared
D2 Grant after examination
8364 No opposition during term of opposition
8320 Willingness to grant licenses declared (paragraph 23)
8330 Complete disclaimer