DE19544920C2 - Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl von Signalen - Google Patents
Verfahren zur schnellen und fairen, Hardware-basierten Zufallsauswahl von SignalenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling 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.
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).
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.
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)
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 |
-
1995
- 1995-12-01 DE DE1995144920 patent/DE19544920C2/de not_active Expired - Lifetime
Non-Patent Citations (1)
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)
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 |