DE10164456A1 - Datenwarteschlangensystem - Google Patents
DatenwarteschlangensystemInfo
- Publication number
- DE10164456A1 DE10164456A1 DE10164456A DE10164456A DE10164456A1 DE 10164456 A1 DE10164456 A1 DE 10164456A1 DE 10164456 A DE10164456 A DE 10164456A DE 10164456 A DE10164456 A DE 10164456A DE 10164456 A1 DE10164456 A1 DE 10164456A1
- Authority
- DE
- Germany
- Prior art keywords
- queue
- identifier
- blocks
- data
- memory
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System (AREA)
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
Abstract
Ein Datenwarteschlangensystem beinhaltet mehrere Speicherblöcke, die in einem Speicher definiert sind, sowie eine Warteschlange, die eine Anzahl von Speicherblöcken beinhaltet, die jeweils eine Verkettung mit dem folgenden Block in der Datenwarteschlange aufweisen. Ein Warteschlangenbezeichner beinhaltet Identifizierer, die identifizieren: den letzten Block in der Warteschlange, die Speicherstelle, bei welcher die letzte Lesefestschreibung stattfand (und optional einen Offset von einer vorgegebenen Stelle in jenem Block), die Speicherstelle, bei welcher die letzte Schreibfestschreibung stattfand (und optional einen Offset von einer vorgegebenen Stelle in jenem Speicherblock), die Größe der Blöcke, die Speicherstelle, bei welcher der letzte Schreibvorgang stattfand, die Anzahl von nicht verwendeten Blöcken, die Anzahl von Blöcken, die zu lesende Daten enthalten, den Typ von Datenwarteschlange, die Speicherstelle, bei welcher der letzte Lesevorgang stattfand, und die Anzahl von Blöcken, die seit der letzten Lesefestschreibung gelesen wurden.
Description
Diese Erfindung bezieht sich auf ein Datenwarteschlangensystem.
Gemäß der Erfindung wird ein Datenwarteschlangensystem bereitgestellt,
das beinhaltet: mehrere Speicherblöcke, die in einem Speicher definiert
sind; eine Datenwarteschlange mit einer Anzahl von Speicherblöcken, wo
bei jeder nichtendseitige Speicherblock eine Verkettung zu dem folgenden
Block in der Datenwarteschlange beinhaltet, sowie einem Warteschlan
genbezeichner, der im Speicher gespeichert ist, wobei der Warteschlan
genbezeichner beinhaltet: einen ersten Identifizierer, der den letzten Block
in der Warteschlange identifiziert; einen zweiten Identifizierer, der die Spei
cherstelle identifiziert, bei welcher die letzte Lesefestschreibung stattfand,
und einen dritten Identifizierer, der die Speicherstelle identifiziert, bei wel
cher die letzte Schreibfestschreibung stattfand.
Diese Erfindung ermöglicht, dass sowohl Hardware als auch Software mit
dem Warteschlangensystem intrigieren, und insbesondere dem War
teschlangenbezeichner. Diese Erfindung ermöglicht außerdem, dass eine
Anzahl von Warteschlangen in dem Speicher aufgebaut wird, die nicht
durch Hardware begrenzt ist.
In den Ausführungsformen findet eine Lesefestschreibung als Folge des
Empfangs einer Bestätigung statt, dass kein Auslesen von Daten aus einer
Warteschlange mehr erforderlich ist. In ähnlicher Weise findet eine
Schreibfestschreibung als Folge des Empfangs einer Bestätigung statt,
dass Daten, die in eine Warteschlange geschrieben wurden, zum Lesen
zur Verfügung gestellt werden sollen.
Nunmehr werden Ausführungsformen der vorliegenden Erfindung lediglich
beispielhaft unter Bezugnahme auf die begleitenden Zeichnungen be
schrieben, von denen
Fig. 1 ein Warteschlangenverwaltersystem mit vier Warteschlangennut
zern zeigt.
Bezugnehmend auf Fig. 1 ist ein Warteschlangenverwaltersystem 10 ge
zeigt, das mit einem ersten bis vierten Warteschlangennutzer 11 bis 14
über je eine von einer ersten bis vierten Hardware-Warteschlangennutzer
schnittstelle 15 bis 18 verbunden ist. Das Warteschlangenverwaltersystem
10 beinhaltet einen Hardware-Warteschlangenverwalterkern 19, der über
eine Software-Schnittstelle 20 durch Software gesteuert wird. Der Warte
schlangenverwalterkern 19 ist mit jeder der Warteschlangennutzer-Schnitt
stellen 15 bis 18 über je eines von einem ersten bis vierten Warteschlan
genportal 21 bis 24 und einen gemeinsamen Bus (nicht gezeigt) verbun
den.
Die Software-Schnittstelle 20 ist für die Erzeugung und Auflösung von War
teschlangen, für den Neuaufbau von Warteschlangen und für die Zufüh
rung zu den Speicherblöcken verantwortlich, die in den Warteschlangen
verwendet werden. Die Hauptaufgabe des Warteschlangenverwalterkerns
19 besteht in der Wiederzuweisung "verwendeter Blöcke" zurück an die
Enden der Warteschlangen. Der Warteschlangenverwalterkern 19 beinhal
tet außerdem einen Buszuteiler (nicht gezeigt), der steuert, wie und wann
parallele Hardware- und Softwarefunktionen auf den Bus (nicht gezeigt)
zugreifen können.
Die Warteschlangenportale 21 bis 24 stellen einen Zugriff auf die Warte
schlangen bereit. Jedes Warteschlangenportal 21 bis 24 beinhaltet zwei
Teile. Ein Teil kann dazu verwendet werden, in eine Warteschlange zu
schreiben, der andere Teil kann dazu verwendet werden, aus einer Warte
schlange zu lesen (jeder Teil kann auf verschiedene Warteschlangen
zugreifen). Wenngleich lediglich vier Warteschlangenportale 21 bis 24 ge
zeigt sind, gibt es keine Beschränkung für die Anzahl an Portalen, die ver
wendet werden können. Die Haupteinschränkung für die Anzahl an Porta
len ist die im ungünstigsten Fall durch diese erforderliche Busbandbreite.
Für jeden Warteschlangennutzer 11 bis 14 ist ein Warteschlangenportal 21
bis 24 erforderlich. Ein Warteschlangennutzer 11 bis 14 kann auf mehrere
Warteschlangen zugreifen und kann gleichzeitig aus einer Warteschlange
lesen, während er in eine andere Warteschlange schreibt. In diesem Fall
bestehen die Aufgaben gleichzeitig, die Zugriffe auf den Bus werden je
doch durch den Buszuteiler sequentiell durchgeführt. Jedes Mal jedoch,
wenn ein Warteschlangennutzer 11 bis 14 aus einer anderen Warte
schlange lesen oder in eine andere Warteschlange schreiben möchte,
muss er deren Warteschlangenportal 21 bis 24 mitteilen, die momentanen
Warteschlangenzeiger zu entladen und dann neue Warteschlangenzeiger
zu laden.
Jeder Warteschlangennutzer 11 bis 14 ist eine Standard-Komponente oder
-Funktion mit der Möglichkeit eines direkten Speicherzugriffs (DMA). Daher
ist für jeden Warteschlangennutzer 11 bis 14 seine Warteschlangennutzer-
Schnittstelle 15 bis 18 erforderlich, um DMA-Anforderungs- und Bestäti
gungssignale in einen Standard-Satz von Signalen zu übersetzen, die von
den Warteschlangenportalen 21 bis 24 erkannt werden. Bei einigen An
wendungen ist dies eine einfache Signalübersetzung, während die Schnitt
stelle 15 bis 18 bei anderen Anwendungen Daten hinzufügt oder entfernt,
um in ein oder von einem anwendungsspezifischen Paketformat zu über
setzen.
Der grundlegende Aufbaublock von asynchronen Warteschlangen ist ein
Block eines Speichers mit wahlfreiem Zugriff (RAM) (nicht gezeigt). Die
Menge an RAM, die für das Warteschlangenverwaltersystem 10 zur Verfü
gung steht, ist in viele kleine Speicherblöcke der gleichen Größe auf
gesplittet, um das zusätzliche Speichern der Speicher-"Blockgröße" mit je
dem Speicherblock zu vermeiden. Alternativ können verschiedene Warte
schlangen unterschiedliche Speicherblockgrößen verwenden, wenngleich
dies die Software kompliziert machen würde, welche die Warteschlangen
erzeugt und skaliert. In dieser Ausführungsform sind die Speicherblöcke 64
Byte lang.
Jeder Speicherblock beginnt mit einem "Verkettungsfeld", das einen Zeiger
für die Adresse des Verkettungsfeldes des nächsten Speicherblocks dar
stellt. Der von der Warteschlange verwendete Speicher besteht aus einer
Anzahl von Speicherblöcken, die irgendwo in dem RAM verteilt sein kön
nen und die durch Verkettungsfelder verkettet sind. Dieses Warteschlan
genverwaltersystem 10 verwendet lediglich unidirektionale Verkettungsfel
der, so dass das QMS über Blöcke hinweg nur vorwärts suchen kann.
Wenn der momentane Block das letzte Glied in der Kette ist, enthält sein
Verkettungsfeld überall Einsen (= 1). Alternativ können bidirektionale
Verkettungsfelder verwendet werden, wenn auch mit zusätzlicher
Komplexität und mit reduzierter Speichernutzungseffizienz.
Es gibt außerdem zwei ausführungsabhängige Einschränkungen. Die erste
besteht darin, dass alle Speicherblöcke (und daher Verkettungsfelder) an
einer geradzahligen Bytegrenze beginnen. Die zweite Einschränkung be
steht darin, dass die maximale RAM-Größe 64 kByte beträgt. Diese zwei
Einschränkungen bedeuten, dass das Verkettungsfeld in einem Buszyklus
gelesen oder geschrieben werden kann.
Unmittelbar nach dem Verkettungsfeld befindet sich ein "Blocksteuerungs"-
Feld. Dieses enthält ein Längenfeld, das anzeigt, wie viele Informations
bytes momentan in dem Block gespeichert sind, sowie vier Steuerbits. Die
vier höchstwertigen Bits (MSBs) des Blocksteuerfeldes bilden die Steuer
bits, die Grenzen in dem Datenfluss anzeigen. Das Längenfeld ist in den
niedrigstwertigen Bits (LSBs) des Blocksteuerfeldes gespeichert.
In Tabelle 1 ist ein Speicherblock gezeigt:
Viele Kommunikationssysteme gehen mit Paketen von Daten anstatt ei
nem kontinuierlichen Datenstrom um. Das Warteschlangenverwaltersys
tem 10 identifiziert mehrere Typen von Paketgrenzen durch Verwenden
der vier Steuermerker in jedem Speicherblock. Diese Steuermerker sind
die 4 MSBs des Blocksteuerfeldes. Wenn das höchstwertige Steuerbit ge
setzt ist, bedeutet das, dass das erste Informationsbyte in dem Speicher
block der Beginn eines Pakets ist. Die restlichen drei Steuerbits zeigen an
dere Typen von Grenzen an. Das nächste MSB zeigt Transportpaketgren
zen an, und das nächste Bit zeigt Anwendungspaketgrenzen an. Wenn die
drei LSBs ohne das MSB verwendet werden, könnte das System nicht an
zeigen, wo in dem Speicherblock die Grenze auftritt.
Wenn ein Warteschlangennutzer 11 bis 14 beim Schreiben in sein Warte
schlangenportal 21 bis 24 in das MSB des Steuermerkers schreibt, hört
das Warteschlangenportal auf, in den momentanen Speicherblock zu
schreiben, und schiebt seine Zeiger (nicht gezeigt) zu dem Verkettungsfeld
des nächsten Speicherblocks. Wenn ein Warteschlangennutzer 11 bis 14
ein Warteschlangenportal 21 bis 24 fragt, wie viele Bytes von Daten zur
Verfügung stehen, führt der Warteschlangennutzer 11 bis 14 auch die er
forderliche Anzahl an Bytes zu und bringt eine Maske an dem Steuerfeld
an. Das Warteschlangenportal 21 bis 24 sucht dann durch die Warte
schlange, bis es entweder den durch die Maske identifizierten Satz von
Steuermerkern erreicht, es die erfoderliche Anzahl an Bytes findet oder es
das Ende der verfügbaren Daten erreicht, je nachdem was zuerst auftritt.
Dieser Mechanismus ermöglicht, dass eine Steuerinformation in dem Da
tenstrom am Beginn eines Datenpakets enthalten ist. Die Warteschlangen
nutzer-Schnittstelle 15 bis 18, die nachfolgend die Daten aus der Warte
schlange ausliest, kann dann die Steuerinformation extrahieren.
Wenn der Datenstrom ein kontinuierlicher Datenstrom ist, werden die
Steuermerker nicht verwendet, d. h. sie sind stets null.
Eine übliche asynchrone Warteschlange weist eine definierte Anzahl an
Speicherblöcken auf, die ihr zugewiesen sind. Wenn Daten schneller ab
gearbeitet werden, als sie zu der Warteschlange hinzugefügt werden, wird
die Warteschlange möglicherweise leer. Die der Warteschlange zugewie
senen Blöcke sind ungenutzt, jedoch für andere Warteschlangen nicht ver
fügbar. Währenddessen empfängt eine andere Warteschlange möglicher
weise zu viele Daten. Die Warteschlange wird gefüllt, und dann muss der
Sender entweder gestoppt werden, oder die Daten gehen verloren. Dieser
Typ von Warteschlange wird als eine "einzelne Warteschlange" bezeichnet.
Der Vorteil dieses Typs von Warteschlange liegt darin, dass die für eine
Warteschlange verfügbaren Ressourcen definiert sind. In einem System,
das Speicherblöcke nach Bedarf dynamisch neu zuweist, wenn eine War
teschlange kaum zu leeren ist, kann es alle verfügbaren Speicherblöcke
verwenden. In diesem Fall werden alle anderen Warteschlangen mögli
cherweise gestoppt, da keine Speicherblöcke mehr verfügbar sind.
Das Warteschlangenverwaltersystem 10 unterstützt eine dynamische
Speicherzuweisung unter Verwendung von "gruppierten Warteschlangen".
Eine gruppierte Warteschlange besteht aus einer Anzahl von "Element-
Warteschlangen" und einer "Ressourcen-Warteschlange". Die Element-
Warteschlangen sind dasselbe wie einzelne Warteschlangen mit der Aus
nahme, dass es einen Unterschied in der Anzahl von Ersatzblöcken gibt,
die Element-Warteschlangen zugewiesen sind. Daten werden aus Ele
ment-Warteschlangen gelesen und in diese geschrieben. Die Ressourcen-
Warteschlange ist in Wirklichkeit eine verkettete Liste von Ersatzspeicher
blöcken. Alle Element-Warteschlangen in einer gruppierten Warteschlange
verwenden Speicherblöcke derselben Größe.
Wenn Speicherblöcke aus dem Kopf einer einzelnen Warteschlange frei
gegeben werden, werden sie dem Ende der gleichen Warteschlange neu
zugewiesen, solange es keine Anforderung gab, die Größe der Warte
schlange zu reduzieren. Wenn Speicherblöcke aus dem Kopf einer Ele
ment-Warteschlange freigegeben werden, werden sie üblicherweise der
Ressourcen-Warteschlange zugewiesen. Während eine Element-
Warteschlange nicht zum Schreiben geladen ist, weist sie keinerlei "leere
Blöcke" auf. Das Ende der Element-Warteschlange zeigt zu dem gleichen
Speicherblock, zu dem das letzte "festgeschriebene Schreiben" zeigt.
Wenn ein Warteschlangenportal 21 bis 24 eine Element-Warteschlange
zum Schreiben lädt, wird die Ressourcen-Warteschlange an das Ende der
Element-Warteschlange angekoppelt, was dazu führt, dass alle Blöcke in
der Ressourcen-Warteschlange zur Verfügung stehen. Wenn das Warte
schlangenportal 21 bis 24 eine Element-Warteschlange entlädt (wobei es
an diesem Punkt ein Festschreiben oder Verwerfen ausführt), werden jeg
liche Ersatzspeicherblöcke aus der Element-Warteschlange entfernt und
der Ressourcen-Warteschlange neu zugewiesen.
Die Haupteinschränkung dieses Systems besteht darin, dass lediglich in
ein Element einer gruppierten Warteschlange zu einem jeweiligen Zeit
punkt geschrieben werden kann, denn die gesamte Ressourcen-
Warteschlange wird zu dem aktiven Element hinzugefügt. In den meisten
Fällen schreibt ein einziges Warteschlangenportal 21 bis 24 in die
gruppierte Warteschlange, und daher ist immer nur eine Element-
Warteschlange zum Schreiben geladen. In der Theorie gibt es keine Be
grenzung für die Anzahl an einzelnen oder gruppierten Warteschlangen,
die erzeugt werden können. Die Haupteinschränkung sind die erforderli
chen Speicherressourcen.
Der andere Typ von Warteschlange ist eine isochrone (ISO) Warteschlan
ge. Isochrone Daten sind zeitkritische Daten, wie Telefonsprachdaten. Eine
ISO-Warteschlange verwendet verschiedene Steuermechanismen, die
durch unterschiedliche Hardware verwaltet werden. Ein Steuermechanis
mus für eine ISO-Warteschlange kann eine zusätzliche Komponente oder
eine alternative Komponente zu einem Warteschlangenportal 21 bis 24
sein. Eine ISO-Warteschlange verwendet einen einzigen sequentiellen
Speicherblock anstelle der verketteten Speicherblöcke, die von asynchro
nen Warteschlangen verwendet werden. Dieses Speichergebiet ist typi
scherweise ziemlich klein, zum Beispiel 32 Byte bis 256 Byte. Eine ISO-
Warteschlange stellt einen kleinen Pufferraum bereit, um Warteschlangen
nutzer zu isolieren, die Daten jitterartig oder in einer diskontinuierlichen
Weise erzeugen und/oder nutzen. Wenn eine ISO-Warteschlange voll wird,
werden die ältesten Daten durch Überschreiben derselben getilgt. Dieser
Typ von Warteschlange wird nicht verwendet, wenn die Datenintegrität
wichtig ist. Wenn die Warteschlange leer oder effektiv leer wird, werden die
Daten, die zuletzt aus der Warteschlange gelesen wurden, erneut gelesen.
Typischerweise sind isochrone Daten lineare Impulscodemodulati
ons(PCM)-Daten, die Proben eines analogen Signals beinhalten, wie eine
Stimmenaufzeichnung. In diesem Fall bestehen die erneut aus der Warte
schlange gelesenen Daten aus einer Anzahl von Bytes von Daten, die,
wenn sie in ein Audiosignal rekonstruiert werden, gleich oder ähnlich wie
Klänge unmittelbar davor und danach klingen. Dies ist viel weniger be
merkbar als eine Lücke in einem Audiosignal.
Wenn isochrone Daten solche Daten wie kontinuierliche Daten mit variab
lem Modulationsdelta (CVSD) sind, werden spezielle Anordnungen getrof
fen, um sicherzustellen, dass der Mittelwert des rekonstruierten Signals
null bleibt, da ansonsten möglicherweise Sättigung oder digitaler Überlauf
auftritt. Dieser Typ von Daten und dazu ähnliche Typen werden in einer
von zwei Weisen angepasst. Erstens können die erneut gelesenen Daten
verarbeitet werden, um einen Offset von null bereitzustellen. Es ist ersicht
lich, dass es viele Weisen gibt, dies zu erreichen. Zweitens können Daten
erzeugt werden, die einer Sequenz alternierender Inkremente und Dekre
mente entsprechen, d. h. es wird ein kleines sinusförmiges Amplitudensig
nal anstelle von Daten erzeugt, die erneut gelesen werden.
Wie vorstehend beschrieben, werden viele Speicherblöcke verkettet, um
eine Kette von Blöcken zu bilden, in der eine Sequenz von Daten gespei
chert ist. Ein Warteschlangenbezeichner ist ein Satz von Zeigern und
Steuerfeldern, die steuern, wie die Kette von Blöcken verwendet und ver
waltet wird. Die Warteschlangenbezeichner sind in einem anderen Spei
cherteil gespeichert. Wenn die Software-Schnittstelle 20 eine Warte
schlange erzeugt, erzeugt sie auch einen Warteschlangenbezeichner. Eine
Warteschlange ist durch die Adresse des Beginns des entsprechenden
Warteschlangenbezeichners identifiziert. Wenn ein Warteschlangennutzer
11 bis 14 durch ein Warteschlangenportal 21 bis 24 auf eine Warteschlan
ge zugreift, stellt er die Adresse des Beginns des Bezeichners bereit, die
hier im Folgenden als Warteschlangenidentifizierer (QID) bezeichnet wird.
Die einzelnen Warteschlangen und Element-Warteschlangen verwenden
ähnliche Warteschlangenbezeichner. Dieser Typ von Warteschlangenbe
zeichner besteht aus einer Anzahl von Unterbezeichnern und Zugriffsteu
erbits. Die Ressourcen-Warteschlange verwendet eine vereinfachte Versi
on eines Warteschlangenbezeichners. Die Zugriffsteuerbits in den War
teschlangenbezeichnern stellen sicher, dass zu jedem beliebigen Zeitpunkt
lediglich ein Warteschlangenportal oder die Software-Schnittstelle 20 ein
Feld in dem Bezeichner modifizieren darf.
Tabelle 2 stellt die Felder in Bezeichnern von einzelnen Warteschlangen
und Element-Warteschlangen dar und, wo das Feld im Speicher gespei
chert wird, für eine asynchrone Warteschlange:
Tabelle 3 stellt die Felder in einem Betriebsquellen-
Warteschlangenbezeichner dar, bei dem RID der Betriebsquellen-
Warteschlangenidentifizierer ist.
In einem Betriebsquellen-Warteschlangenbezeichner ist das Sperrsteuer
feld ein Feld mit einer Breite von einem Byte, das Bits zur Steuerung der
Schreiberlaubnis zu anderen Feldern in dem Bezeichner enthält. Die
Hardware beinhaltet eine nicht unterbrechbare Lese-Modifizier-Schreib-
Sequenz, um sicherzustellen, dass lediglich eine Funktion (Portal 21 bis 24
oder Software-Schnittstelle 20) den Sperrwert zu irgendeinem gegebenen
Zeitpunkt ändern kann. Die Sperrbitspalte in den zwei Tabellen zeigt an,
welche Bits Zugriffe auf welche Felder steuern. Das Sperrbit 0 wird nur auf
das Feld "zu entfernende Blöcke" angewendet. Das Sperrsteuerfeld kann
modifiziert werden, während das Bit 0 gesetzt ist.
Das Feld "zu entfernende Blöcke" ist ein Feld mit einer Breite von einem
Byte, das die Anzahl an Speicherblöcken anzeigt, die aus der Warte
schlange entfernt werden sollten. Dies erfordert eine Zugriffssteuersperre,
da es zwei Funktionen gibt, die den Wert modifizieren können. Die Soft
ware-Schnittstelle 20 kann den Wert modifizieren, um die zu skalierende
Wartenschlangenlänge anzufordern, und die Wiederzuweisungsfunktion
dekrementiert dann den Wert, wenn Blöcke freigegeben werden.
Das Feld "zu entfernende Blöcke" ist nur für einzelne Warteschlangen und
Ressourcen-Warteschlangen gültig - d. h. bei Element-Warteschlangen
bezeichnern ist das Feld ungenutzt. Wenn Blöcke aus einer gruppierten
Warteschlange zu entfernen sind, fordert die Software-Schnittstelle 20 an,
dass sie aus der Ressourcen-Warteschlange anstatt aus den Element-
Warteschlangen entfernt werden. Wenn das Feld "zu entfernende Blöcke"
auf 255 gesetzt wird, werden alle Blöcke in der Warteschlange entfernt,
wenn sie durch eine Wiederzuweisung gehen. Hierbei wird der Wert "zu
entfernende Blöcke" nicht reduziert.
Das Feld "Blockgröße" ist ein Feld von 12 Bit, d. h. ausschließlich der vier
Steuerbits, die anzeigen, wie viele Bytes an Information in die von der War
teschlange verwendeten Speicherblöcke geschrieben werden können. Das
Feld "Blockgröße" wird nur modifiziert, wenn die Warteschlange erzeugt
wird. Während die Warteschlange aktiv ist, wird nur das Feld "Blockgröße"
gelesen und erfordert daher keine Sperre. Die Element-Warteschlangen
bezeichner definieren die "Blockgröße" der Ressourcen-Warteschlange,
welche die gleiche für alle Elemente in einer gruppierten Warteschlange
ist.
Anstelle des Feldes "Blockgröße" weisen Ressourcen-Warteschlangen ein
Feld "Kopf von Blöcken" mit einer Wortbreite von 2 Byte auf. Das Feld "Kopf
von Blöcken" enthält die Adresse des Speicherblocks am Kopf der Kette
ungenutzter Blöcke. Wenn ein Warteschlangenportal 21 bis 24 eine Ele
ment-Warteschlange lädt, sperrt es das Feld "Kopf von Blöcken" der zuge
hörigen Ressourcen-Warteschlange. Dies stellt sicher, dass zu jedem be
liebigen gegebenen Zeitpunkt lediglich eine Element-Warteschlange die
zugehörige Ressourcen-Warteschlange verwenden kann. Das Warte
schlangenportal koppelt dann die Ressourcen-Warteschlange an die Ele
ment-Warteschlange an. Das Feld "Kopf von Blöcken" der Ressourcen-
Warteschlange, das überall 1s (= -1) ist, zeigt an, dass die Ressourcen-
Warteschlange leer ist. Wenn die Ressourcen-Warteschlange leer ist, gibt
das Warteschlangenportal sofort die Ressourcen-Warteschlange durch
Entsperren des "Kopfes von Blöcken" frei. Wenn die Ressourcen-
Warteschlange beim Laden der Element-Warteschlange nicht leer ist, ak
tualisiert ein Warteschlangenportal 21 bis 24 das Feld "Kopf von Blöcken"
und löst die Sperre, wenn es eine Warteschlange entlädt. Wenn die Warte
schlange entladen ist, wird das Feld "Kopf von Blöcken" überall mit 1s (= -1)
geladen, wenn es keine Ersatzspeicherblöcke mehr gibt.
Das Feld "Ende der Blöcke" in einer einzelnen Warteschlange ist ein Feld
mit einer Breite von einem Wort, das die Adresse des letzten Speicher
blocks enthält, der zu der Warteschlange hinzuzufügen ist. Die Block-
Wiederzuweisungsfunktion verwendet dieses Feld, um zu identifizieren, wo
freigegebene Blöcke zurück an das Ende der Warteschlange gekoppelt
werden sollten. Das Feld "Ende der Blöcke" zeigt zu dem Verkettungsfeld in
dem Speicherblock am Ende der Warteschlange. Da die Wiederzuwei
sungsfunktion die einzige Funktion ist, die das Feld "Ende der Blöcke" mo
difiziert, ist eine Sperrsteuerung nicht erforderlich. Da alle einzelnen War
teschlangen wenigstens einen Speicherblock enthalten müssen, ist das
Feld "Ende der Blöcke" stets gültig.
Das Feld "Ende der Blöcke" in einer Ressourcen-Warteschlange ist dem
"Ende der Blöcke" in einer einzelnen Warteschlange ähnlich. Eine Ressour
cen-Warteschlange kann jedoch leer werden, was das Feld "Ende der Blö
cke" ungültig machen würde. Der Ressourcenbezeichner beinhaltet daher
ein Zugriffsteuerbit für das Feld "Ende der Blöcke". Wenn ein Warteschlan
genportal 21 bis 24 eine Element-Warteschlange entladen möchte, sperrt
es zuerst das Feld "Ende der Blöcke" im zugehörigen Ressourcen-
Warteschlangenbezeichner und fährt dann mit der Entladeprozedur fort.
Wenn die Entladeprozedur keine Ersatzblöcke aufweist, um sie zu der
Ressourcen-Warteschlange zurückzuführen, schreibt sie überall 1s (= -1),
sowohl in "Ende der Blöcke" als auch in "Kopf der Blöcke". Das Warte
schlangenportal entsperrt dann sowohl das Feld "Kopf der Blöcke" als auch
das Feld "Ende der Blöcke". Die Wiederzuweisungsfunktion sperrt stets das
Feld "Ende der Blöcke", bevor sie wieder Blöcke auf die Ressourcen-
Warteschlange zuweist.
Das Feld "leere Blöcke" ist ein Feld mit einer Breite von einem Byte, das die
Anzahl an (ungenutzten) Ersatzblöcken am Ende einer einzelnen Warte
schlange anzeigt, wenngleich einige der Blöcke möglicherweise durch ei
nen nicht festgeschriebenen Schreibprozess verwendet werden, der noch
geladen ist. Eine einzelne Warteschlange enthält ein Maximum von 255
Blöcken, die es möglich machen, auf das Feld "leere Blöcke" und das Feld
"verwendete Blöcke" zusammen zuzugreifen. Der Wert in "leere Blöcke"
multipliziert mit der "Blockgröße" ergibt eine gute Näherung für den Spei
cherraum (RAM), der momentan verfügbar ist, wenngleich dies jeglichen
Raum ausschließt, der in dem Block zur Verfügung steht, auf den "Block
mit festgeschriebenem Ende" zeigt.
Die Felder "leere Blöcke" und "verwendete Blöcke" werden unter Verwen
dung einer nicht unterbrechbaren Lese-Modifizier-Schreib-Sequenz anstatt
der Verwendung eines Sperrbits modifiziert. Wenn ein Warteschlangenpor
tal 21 bis 24 einen Schreibvorgang festschreibt, erhöht es den Wert in dem
Feld "verwendete Blöcke" um die Anzahl an Blöcken, die festgeschrieben
wird, und verkleinert den Wert in dem Feld "leere Blöcke" um die gleiche
Menge. Wenn die Wiederzuweisungsfunktion einen Block zu einer Warte
schlange hinzufügt, inkrementiert sie den Wert in "leere Blöcke".
Das Feld "leere Blöcke" von Element-Warteschlangenbezeichnern wird der
"Schwellenwert verwendeter Blöcke" genannt. Wenn eine Element-
Warteschlange zum Schreiben geladen wird, wird üblicherweise die Res
sourcen-Warteschlange an die Element-Warteschlange gekoppelt. Wenn
jedoch der Wert in dem Feld "verwendete Blöcke" größer als der Wert in
dem Feld "Schwellenwert verwendeter Blöcke" ist, wird die Ressourcen-
Warteschlange nicht an die Element-Warteschlange angehängt. Das Feld
"Schwellenwert verwendeter Blöcke" kann dazu verwendet werden, zu ver
hindern, dass ein Element einer gruppierten Warteschlange alle Ersatz
speicherblöcke verwendet.
Der Schwellenwert wird nur angewendet, wenn die Warteschlange geladen
ist. Wenn eine Element-Warteschlange mit der Ressourcen-Warteschlange
geladen ist, kann sie eine beliebige Anzahl von Blöcken bis zu der Anzahl
von Blöcken in der Ressourcen-Warteschlange festschreiben. Diese fest
geschriebenen Blöcke werden zu dem Feld "verwendete Blöcke" hinzuge
fügt, selbst wenn das Resultat größer als der "Schwellenwert verwendeter
Blöcke" ist.
In gruppierten Warteschlangen wird ein einzelner Zähler "leere Blöcke" in
der Ressourcen-Warteschlange gehalten. Das Feld "leere Blöcke" in einer
Element-Warteschlange wird dazu verwendet, das Feld "Schwellenwert
verwendeter Blöcke" zu speichern. Da die gruppierte Warteschlange mögli
cherweise mehr Ersatzblöcke verfolgen muss, um mehrere Element-
Warteschlangen zu bedienen, ist das Feld "leere Blöcke" im Ressourcen-
Warteschlangenbezeichner 12 Bit lang anstatt 8 Bit.
Das Feld "leere Blöcke" wird unter Verwendung einer nicht unterbrechbaren
Lese-Modifizier-Schreib-Sequenz aktualisiert. Wenn ein Warteschlangen
portal einen Schreibvorgang festschreibt, erhöht es den Wert in dem Feld
"verwendete Blöcke" des Element-Warteschlangenbezeichners um die An
zahl an Blöcken, die festgeschrieben wird, und verkleinert das Feld "leere
Blöcke" des Ressourcen-Warteschlangenbezeichners um den gleichen Be
trag. Wenn die Wiederzuweisungsfunktion einen Block zu einer Warte
schlange hinzufügt, inkrementiert sie den Wert in dem Feld "leere Blöcke"
des Ressourcen-Warteschlangenbezeichners.
Das Feld "verwendete Blöcke" ist ein Feld mit einer Breite von einem Byte,
das die Anzahl von Speicherblöcken in der Warteschlange anzeigt, die Da
ten enthalten, die zu lesen und festzuschreiben sind. Wenn ein Warte
schlangenportal einen Schreibvorgang festschreibt, erhöht es den Zähler
"verwendeter Block" um die Anzahl von extra Blöcken, die hinzugefügt wer
den (unter Verwendung einer nicht unterbrechbaren Lese-Modifizier-
Schreib-Sequenz). Wenn ein Warteschlangenportal einen Lesevorgang
festschreibt, wird die Anzahl an freigegebenen Blöcken von dem Wert in
dem Feld "verwendete Blöcke" subtrahiert. Der Zähler "verwendeter Block"
wird nicht direkt von dem Warteschlangenverwaltersystem 10 verwendet.
Der Zähler "verwendeter Block" wird aufrechterhalten, so dass externe
Steuerfunktionen überwachen und steuern können, wie viele Daten in einer
Warteschlange gespeichert sind. Bei Element-Warteschlangen gibt es eine
Komplikation dahingehend, dass eine Ressourcen-Warteschlange einer
Element-Warteschlange mehr als 255 Blöcke zuführen kann. Dies bewirkt,
dass der Zähler "verwendeter Block" überläuft, d. h. das erlaubte Maximum
übersteigt.
Das Feld "Typ" ist ein Feld mit einer Breite von einem Wort, das zwischen
einzelnen Warteschlangen und Element-Warteschlangen unterscheidet.
Das Typ-Feld für einzelne Warteschlangen ist überall 1s (= -1). Jeder an
dere Wert in dem Typ-Feld zeigt an, dass die Warteschlange eine Ele
ment-Warteschlange ist. Für Element-Warteschlangen enthält das Typ-
Feld die Adresse des zugehörigen Ressourcenidentifizierers (RID).
Das Typ-Feld wird als Teil des Schreib-Unterbezeichners behandelt, so
dass es gesperrt ist, wenn ein Warteschlangenportal 21 bis 24 die Warte
schlange zum Schreiben lädt. Es gibt zwei Gelegenheiten, zu denen in das
Feld geschrieben wird. Wenn die Warteschlange erzeugt wird, setzt die
Software-Schnittstelle 10 das Typ-Feld herauf. Wenn die Software-
Schnittstelle 20 eine gruppierte Warteschlange auflösen möchte, löst sie
alle mit Ausnahme einer der Element-Warteschlangen auf. Dann kettet sie
mit der letzten Element-Warteschlange die Ressourcen-Warteschlange an
die Element-Warteschlange und wandelt die Element-Warteschlange in
eine einzelne Warteschlange um. Die Ressourcen-Warteschlange existiert
nicht mehr, und die neu erzeugte einzelne Warteschlange kann in der glei
chen Weise aufgelöst werden, in der andere einzelne Warteschlangen auf
gelöst werden.
Das Feld "Block mit festgeschriebenem Ende" ist ein Feld mit einer Breite
von einem Wort, das Teil des Zeigers ist, der die Stelle des letzten festge
schriebenen Schreibvorgangs identifiziert. Das Feld "Block mit festge
schriebenem Ende" enthält die Adresse des Beginns des Speicherblocks,
in dem der festgeschriebene Schreibvorgang auftrat. Das Feld wird ge
sperrt, wenn ein Warteschlangenportal 21 bis 24 eine Warteschlange zum
Schreiben lädt. Das Warteschlangenportal 21 bis 24 lädt den festgeschrie
benen Zeiger in ein Register für den Zeiger für das momentane Ende, der
nur gültig ist, während die Warteschlange geladen wird. Während Schreib
vorgänge auftreten, wird der Zeiger für das momentane Ende aktualisiert,
der Zeiger für das festgeschriebene Ende wird jedoch nicht beeinflusst.
Wenn dem Warteschlangenportal mitgeteilt wird, geschriebene Daten fest
zuschreiben, lädt es den Zeiger für das momentane Ende in den Zeiger für
das festgeschriebene Ende. Wenn dem Warteschlangenportal mitgeteilt
wird, die geschriebenen Daten zu verwerfen, lädt es den Zeiger für das
festgeschriebene Ende in den Zeiger für das momentane Ende. Wenn das
Warteschlangenportal einen Schreib-Unterbezeichner entlädt, führt es
stets zuerst entweder eine Festschreib- oder eine Verwerf-Operation
durch. Dann wird, wenn der Schreib-Unterbezeichner entladen ist, das
Schreibzugriffsteuerbit entsperrt.
Das Feld "Offset des festgeschriebenen Endes", das den zweiten Teil des
Zeigers für das festgeschriebene Ende darstellt, ist ein Feld von 12 Bit, das
ein Versatz vom Beginn des "Blocks mit festgeschriebenem Ende" ist (so
weit nicht anderweitig definiert, sind die vier MSBs gleich null). Das Feld
"Offset des festgeschriebenen Endes" ist im Wesentlichen das gleiche wie
das Feld "Speicherblocklänge". Wann immer das Feld "Speicherblocklänge"
aktualisiert wird, wird es mit dem Offset des momentanen Endes geladen.
Das Feld "Offset des festgeschriebenen Endes" weist eine Auflösung von
Bytes auf und schließt die vier Bytes an Steuerinformation am Beginn des
Speicherblocks aus. Die Adresse, wo die letzte Schreib-Festschreibung
auftrat, ist durch Feld "Block mit festgeschriebenem Ende" + 4 + Feld "Off
set des festgeschriebenen Endes" gegeben. Alle Warteschlangenzeiger in
dem Warteschlangenverwaltersystem 10 sind vorinkrementiert, so dass die
Zeiger im statischen Zustand auf die letzte Schreibstelle anstatt auf die
nächste Schreibstelle zeigen.
Das Feld "momentaner Kopfblock" ist ein Feld mit einer Breite von einem
Wort, das Teil des Lese-Unterbezeichners ist. Anders als beim Schreib-
Unterbezeichner kann der Lese-Unterbezeichner entladen werden, ohne
einen Festschreib-/Verwerf-Vorgang auszuführen, da es länger dauern
kann, eine Rückkopplung zu erhalten, um anzuzeigen, dass die Daten er
folgreich aus dem Warteschlangenverwaltersystem 10 heraustransferiert
wurden. In dem Fall einer empfangenen Information, die in das Warte
schlangenverwaltersystem 10 geschrieben wurde, ist die Datenintegritäts
überprüfung üblicherweise Teil des Datenstroms, und so wird die Überprü
fung unmittelbar nach Empfang des Datenblocks durchgeführt. Daher ist
der Zeiger für den momentanen Kopf ebenso gespeichert wie der Zeiger
für den festgeschriebenen Kopf. Das Feld "momentaner Kopfblock" enthält
die Adresse für den Beginn des Speicherblocks, in dem der letzte Lese
vorgang auftrat.
Wenn ein Warteschlangenportal eine Warteschlange zum Lesen lädt,
sperrt es das Zugriffsteuerbit für den Lese-Unterbezeichner. Dann lädt es
den Zeiger für den momentanen Kopf in ein Register. Jegliche Lesevor
gänge bewirken, dass nur der Registerwert aktualisiert wird, nicht der im
RAM gespeicherte Wert. Wenn eine Lesefestschreibung auftritt, werden
die Inhalte des Zeigerregisters für den momentanen Kopf in den Zeiger für
den festgeschriebenen Kopf im RAM kopiert. Wenn eine Leseverwerfung
auftritt, wird der Zeiger für den festgeschriebenen Kopf im RAM in das Zei
gerregister für den momentanen Kopf kopiert. Wenn die Warteschlange
entladen ist, wird das Zeigerregister für den momentanen Kopf in den Zei
ger für den momentanen Kopf im RAM kopiert, und das Zugriffsteuerbit für
den Lese-Unterbezeichner wird entsperrt. Eine Lesefestschreibung tritt auf,
wenn eine Bestätigung empfangen wurde, dass die Daten erfolgreich
transferiert wurden, und ansonsten findet eine Leseverwerfung statt.
Das Feld "Offset des momentanen Kopfes" ist der zweite Teil des Zeigers
für den momentanen Kopf. Es ist ein Feld von 12 Bit, das ein Versatz vom
Beginn des "momentanen Kopfblocks" ist. Das Feld "Offset des momenta
nen Kopfes" weist eine Auflösung von Bytes auf und schließt die vier Bytes
an Steuerinformation am Beginn eines Speicherblocks aus. Die Adresse,
bei welcher der letzte Lesevorgang auftrat, ist durch Feld "momentaner
Kopfblock" + 4 + Feld "Offset des momentanen Kopfes" gegeben.
Das Feld "Block mit festgeschriebenem Kopf" ist ein Feld mit einer Breite
von einem Wort, das Teil des Lese-Unterbezeichners ist. Das Feld "Block
mit festgeschriebenem Kopf" enthält die Adresse am Beginn des Speicher
blocks, bei welcher die letzte Lesefestschreibung auftrat. Wenn ein Warte
schlangenportal einen Lesevorgang festschreibt und es wenigstens einen
Speicherblock gibt, der freigegeben werden kann, wird die Freigabeproze
dur getriggert. Die Freigabeprozedur lädt den Warteschlangenidentifizierer
und den Wert in dem Feld der Anzahl freizugebender Blöcke in den Beginn
des Datenbereichs des Speicherblocks, auf den das Feld "Block mit fest
geschriebenem Kopf" zeigt. Die Adresse in dem Feld "Block mit festge
schriebenem Kopf" wird dann zu der Warteschlange freigegebener Blöcke
geleitet, die für eine Wiederzuweisung bereit ist. Die Lesefestschreibpro
zedur wird dann durch Kopieren des Zeigers für den momentanen Kopf in
den Zeiger für den festgeschriebenen Kopf vervollständigt. Wenn eine Le
severwerfung stattfindet, wird der Zeiger für den festgeschriebenen Kopf in
den Zeiger für den momentanen Kopf kopiert.
Das Feld "Offset des festgeschriebenen Kopfes" ist der zweite Teil des Zei
gers für den festgeschriebenen Kopf. Es ist ein Feld von 12 Bit, das ein
Versatz vom Beginn des Blocks mit festgeschriebenem Kopf ist. Das Feld
hat eine Auflösung von Bytes und schließt die vier Bytes an Steuerinforma
tion am Beginn eines Speicherblocks aus. Die Adresse, bei welcher die
letzte Lesefestschreibung stattfand, ist durch Feld "Block mit festgeschrie
benem Kopf" + 4 + Feld "Offset des festgeschriebenen Kopfes" gegeben.
Das Feld "freizugebende Blöcke" ist ein Feld mit einer Breite von einem
Byte, das die Anzahl an Blöcken verfolgt, die möglicherweise freigegeben
werden, wenn eine Lesefestschreibung durchgeführt wird. Das Feld wird in
ein Register transferiert, wenn die Warteschlange geladen wird. Wenn ein
Lesevorgang verursacht, dass der Zeiger für den momentanen Kopf zu ei
nem neuen Speicherblock weitergeht, wird das Register der freizugeben
den Blöcke inkrementiert. Wenn eine Lesefestschreibung durchgeführt
wird, wird das Register freizugebender Blöcke durch die Freigabeprozedur
verwendet.
Am Ende entweder eines Festschreib- oder Verwerfvorgangs wird das Re
gister freizugebender Blöcke auf null gesetzt. Wenn die Warteschlange
entladen wird, wird das Register freizugebender Blöcke auf null zurückge
setzt und in das Feld freizugebender Blöcke im RAM kopiert.
Der Segmentierungs- und Wiederaufbaumechanismus in dem (QMS) 10
beinhaltet ein Mittel zum Anzeigen von Paketgrenzen auf verschiedenen
Kommunikationsprotokollebenen. Durch Speichern der Information in ei
nem effizienten, generischen Format können Geräte, welche Warteschlan
gen verwenden, Entscheidungen hinsichtlich Verbinden und Aufsplitten
von Paketen ohne Kenntnis von verschiedenen Paketformaten treffen. Die
vier höchstwertigen Bits (MSBs) des Felds "Blocksteuerung" werden dazu
verwendet, Grenzen in dem Datenfluss anzuzeigen. Diese Bits werden im
Folgenden als Steuerbits oder -merker bezeichnet.
Der Hauptzweck des QMS 10 besteht darin, Daten von einem Gerät zu
einem anderen zu transferieren, wie von einer Hauptrechnerschnittstelle
(nicht gezeigt) eines universellen seriellen Busses (USB) zu einem Radio-
Sendeempfängermodul (nicht gezeigt). Die USB-Hauptrechnerschnittstelle
kann den Warteschlangennutzer "A" 11 bilden, und das Radio-
Sendeempfängermodul kann den Warteschlangennutzer "B" 12 bilden. Ein
PC-Hauptrechner (nicht gezeigt) oder irgendein anderes Hauptrechnerge
rät ist mit der USB-Hauptrechnerschnittstelle 11 verbunden. An der USB-
Hauptrechnerschnittstelle 11 werden die Daten in den Nutzinformationsbe
reich eines L2CAP-Pakets eingegeben, welches das folgende Format auf
weist:
2 Byte Protokoll/Service-Multiplexer
0 bis 65533 Byte Nutzinformationsdaten
2 Byte Protokoll/Service-Multiplexer
0 bis 65533 Byte Nutzinformationsdaten
Das L2CAP-Paket wird durch die USB-Hauptrechnerschnittstelle 11 in ein
oder mehrere "Hauptrechnersteuerschnittstellen" (HCl)-Pakete eingegeben,
wobei ein HCl-Paket das folgende Format aufweist:
12 Bit Verbindungskennung + 2 Bit Paketgrenze + 2 Bit Rundfunktyp
2 Byte Längenfeld
0 bis 65533 Byte Nutzinformationsdaten
12 Bit Verbindungskennung + 2 Bit Paketgrenze + 2 Bit Rundfunktyp
2 Byte Längenfeld
0 bis 65533 Byte Nutzinformationsdaten
Jedes HCl-Paket wird dann in ein oder mehrere USB-Pakete geformt, wo
bei ein USB-Paket besteht aus:
8 Bit Datentransfer-Sendeberechtigung, welche die Datenrichtung anzeigt
7 Bit Adresse + 4 Bit Endpunkt, um Bluetooth-Datenverbindung zu identifi zieren
5 Bit Prüfsumme
8 Bit Datentransferumschaltung (um sicherzustellen, dass keine Daten ver loren sind)
Nutzinformationsdaten HCl-Fragment
16 Bit Prüfsumme
8 Bit Datentransfer-Sendeberechtigung, welche die Datenrichtung anzeigt
7 Bit Adresse + 4 Bit Endpunkt, um Bluetooth-Datenverbindung zu identifi zieren
5 Bit Prüfsumme
8 Bit Datentransferumschaltung (um sicherzustellen, dass keine Daten ver loren sind)
Nutzinformationsdaten HCl-Fragment
16 Bit Prüfsumme
Die extra USB-Information wird dazu verwendet, sicherzustellen, dass Da
ten vom Hauptrechner korrekt transferiert werden, wird jedoch nicht ge
speichert. Die extra USB-Information wird durch die USB-
Hauptrechnerschnittstelle 11 extrahiert, welche die verbleibenden USB-
Nutzinformationsdaten zu der Warteschlangennutzerschnittstelle 15 trans
ferieren. Wenn die USB-Nutzinformationsdaten der Beginn eines HCl-
Pakets sind, extrahiert die Warteschlangennutzerschnittstelle 15 die ersten
4 Byte eines HCl-Paketkopfes und transferiert den Rest der Nutzinformati
onsdaten zu dem QMS 10. Wenn ein USB-Paket der Beginn eines HCl-
Pakets ist, werden die ersten zwei Byte des HCl-Pakets von der Warte
schlangennutzerschnittstelle 11 dazu verwendet, zu entscheiden, welche
Warteschlange die Daten einspeichern soll. In den ersten zwei Byte sind 2
Bit enthalten, die anzeigen, wenn das HCl-Paket der Beginn oder die Fort
setzung eines L2CAP-Pakets ist. Wenn es der Beginn eines L2CAP-
Pakets ist, wird Bit 2 des Merkerfeldes von 4 Bit, das von dem QMS 10
aufrechterhalten wird, durch die Warteschlangennutzerschnittstelle 11 ge
setzt. Das QMS 10 ist von dem Beginn verschiedener Pakete durch die
USB-Hauptrechnerschnittstelle mittels der Verwendung vordefinierter An
weisungscodes informiert. Wenn das USB-Paket den Beginn des HCl-
Pakets enthält, wird Bit 3 des Merkerfeldes von 4 Bit, das von dem QMS
aufrechterhalten wird, gesetzt. Wenn das USB-Paket eine Fortsetzung ei
nes HCl-Pakets enthält, werden keine Merker gesetzt. Die Merker werden
durch die vier Bit gebildet, die benachbart zu dem Feld Blockgröße in den
Speicherblöcken sind, welche die Warteschlange bilden.
Wenn USB-Pakete transferiert werden, werden die Nutzinformationsdaten
(ausschließlich der 4 Byte des Kopfes eines HCl-Pakets) in der Warte
schlange gespeichert. Am Ende jeglichen guten USB-Pakettransfers wer
den die Daten in der Warteschlange festgeschrieben. Wenn der Daten
transfer versagt, werden die Daten verworfen.
Auf der Seite des Radio-Sendeempfängermoduls 12 der Warteschlange ist
der Beginn einer L2CAP-Nachricht am Beginn eines Radiopakets. HCl-
Paketgrenzen müssen jedoch nicht aufrechterhalten werden. Daher kann
ein Radiopaket aus einem Fragment eines HCl-Pakets bestehen, oder es
kann mehrere HCl-Pakete enthalten. Ein Radiopaket beginnt mit einem
Feld von 2 Bit, das anzeigt, ob es der Beginn oder die Fortsetzung eines
L2CAP-Pakets ist. Dann gibt es ein Flussbit (das anzeigt, ob das Radio
Daten empfangen kann), sowie ein Feld mit einer Länge von entweder 5
Bit oder 9 Bit, abhängig von dem verwendeten Pakettyp. Wenngleich sich
das Radio-Sendeempfängermodul 12 nicht mit HCl-Paketgrenzen befasst,
zählt es, wie viele HCl-Pakete erfolgreich gesendet wurden und informiert
den PC-Hauptrechner durch das QMS 10, wie viel mehr Pakete es herun
terladen kann. Dank der Paketgrenzenmerker, die durch das Warteschlan
genverwaltersystem 10 verwaltet werden, braucht das Radio-Sende
empfängermodul nicht die Fähigkeit, HCl- und L2CAP-Pakete zu decodie
ren.
Wenn das Radio-Sendeempfängermodul 12 Pakete empfängt, setzt es Bit
3 des Merkerfeldes von 4 Bit, das durch das QMS 10 aufrechterhalten
wird, um den Beginn eines Radiopakets anzuzeigen, indem der geeignete
Anweisungscode erzeugt wird. Wenn der Paketkopf anzeigt, dass dies der
Beginn eines L2CAP-Pakets ist, wird auch Bit 2 gesetzt. Das Längenfeld
des Radiopakets wird durch das Radio-Sendeempfängermodul verworfen.
Die Nutzinformationsdaten werden in der Warteschlange gespeichert, die
mit der Verbindung oder dem Kanal verknüpft ist, auf der/dem das Paket
empfangen wurde.
Die Hauptrechnerseite der Warteschlange ignoriert Radiopaketgrenzen
und erzeugt HCl-Pakete bis zu einer L2CAP-Paketgrenze. Um dies durch
zuführen, weist der Hauptrechner eine voreingestellte maximale HCl-
Paketgröße auf. Der Hauptrechner fragt das QMS 10, wie viele Daten von
dem momentanen Zeiger zu entweder dem Ende der Warteschlange oder
dem nächsten Punkt vorliegen, bei dem ein Feld von 2 Bit oder von 4 Bit
gesetzt wird, oder bis es genug Daten gibt, um eine HCl-Paketgröße zu
füllen. Der Hauptrechner baut dann unter Verwendung einer Verbindungs
kennung, die mit der Warteschlange verknüpft ist, einen HCl-Paketkopf,
sowie L2CAP-Beginn- oder Fortsetzungsmerker basierend auf den Steu
ermerkern und das Längenfeld basierend darauf auf, wie viele Daten zur
Verfügung stehen.
Für eine USB-Schnittstelle werden die HCl-Pakete weiter in USB-Pakete
unterteilt, wobei alle Datenpakete die gleiche USB-Adresse und den glei
chen Endpunkt verwenden.
Claims (11)
1. Datenwarteschlangensystem mit:
mehreren Speicherblöcken, die in einem Speicher definiert sind;
einer Datenwarteschlange mit einer Anzahl von Speicherblöcken, wobei je der nichtendseitige Speicherblock eine Verkettung zu dem folgenden Block in der Datenwarteschlange beinhaltet; und
einem Warteschlangenbezeichner, der im Speicher gespeichert ist, wobei der Warteschlangenbezeichner beinhaltet:
einen ersten Identifizierer, der den letzten Block in der Warteschlange iden tifiziert;
einen zweiten Identifizierer, der die Speicherstelle identifiziert, bei welcher die letzte Lesefestschreibung stattfand; und
einen dritten Identifizierer, der die Speicherstelle identifiziert, bei welcher die letzte Schreibfestschreibung stattfand.
mehreren Speicherblöcken, die in einem Speicher definiert sind;
einer Datenwarteschlange mit einer Anzahl von Speicherblöcken, wobei je der nichtendseitige Speicherblock eine Verkettung zu dem folgenden Block in der Datenwarteschlange beinhaltet; und
einem Warteschlangenbezeichner, der im Speicher gespeichert ist, wobei der Warteschlangenbezeichner beinhaltet:
einen ersten Identifizierer, der den letzten Block in der Warteschlange iden tifiziert;
einen zweiten Identifizierer, der die Speicherstelle identifiziert, bei welcher die letzte Lesefestschreibung stattfand; und
einen dritten Identifizierer, der die Speicherstelle identifiziert, bei welcher die letzte Schreibfestschreibung stattfand.
2. Datenwarteschlangensystem nach Anspruch 1, bei dem der zweite Identifi
zierer einen Identifizierer, der den Speicherblock identifiziert, in dem die
letzte Lesefestschreibung stattfand, und einen weiteren Identifizierer bein
haltet, der einen Offset von einer vorgegebenen Stelle in jenem Speicher
block identifiziert.
3. Datenwarteschlangensystem nach irgendeinem vorhergehenden Anspruch,
bei dem der dritte Identifizierer einen Identifizierer, der den Speicherblock
identifiziert, in dem die letzte Schreibfestschreibung stattfand, und einen
weiteren Identifizierer beinhaltet, der einen Offset von einer vorgegebenen
Stelle in jenem Speicherblock identifiziert.
4. Datenwarteschlangensystem nach irgendeinem vorhergehenden Anspruch,
bei dem der Warteschlangenbezeichner des Weiteren ein Sperrsteuerfeld
beinhaltet, das anzeigt, ob eine Funktion einen Schreibzugriff auf die Da
tenwarteschlange besitzt.
5. Datenwarteschlangensystem nach irgendeinem vorhergehenden Anspruch,
bei dem der Warteschlangenbezeichner des Weiteren einen Identifizierer
beinhaltet, der die Größe der Speicherblöcke identifiziert.
6. Datenwarteschlangensystem nach irgendeinem vorhergehenden Anspruch,
bei dem der Warteschlangenbezeichner des Weiteren einen Identifizierer
beinhaltet, der die Speicherstelle identifiziert, bei welcher der letzte
Schreibvorgang stattfand.
7. Datenwarteschlangensystem nach irgendeinem vorhergehenden Anspruch,
bei dem der Warteschlangenbezeichner des Weiteren einen Identifizierer
beinhaltet, der die Anzahl an nicht verwendeten Blöcken identifiziert, die mit
der Datenwarteschlange verknüpft sind.
8. Datenwarteschlangensystem nach irgendeinem vorhergehenden Anspruch,
bei dem der Warteschlangenbezeichner des Weiteren einen Identifizierer
beinhaltet, der die Anzahl an mit der Datenwarteschlange verknüpften
Speicherblöcken identifiziert, die zu lesende Daten enthalten.
9. Datenwarteschlangensystem nach irgendeinem vorhergehenden Anspruch,
bei dem der Warteschlangenbezeichner des Weiteren einen Identifizierer
beinhaltet, der den Typ der Datenwarteschlange identifiziert.
10. Datenwarteschlangensystem nach irgendeinem vorhergehenden Anspruch,
bei dem der Warteschlangenbezeichner des Weiteren einen Identifizierer
beinhaltet, der die Speicherstelle identifiziert, bei welcher der letzte Lese
vorgang stattfand.
11. Datenwarteschlangensystem nach irgendeinem vorhergehenden Anspruch,
bei dem der Warteschlangenbezeichner des Weiteren einen Identifizierer
beinhaltet, der die Anzahl an Speicherblöcken identifiziert, die seit der letz
ten Lesefestschreibung gelesen wurden.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0031761.0A GB0031761D0 (en) | 2000-12-29 | 2000-12-29 | Data queues |
GB0102278A GB2370661B (en) | 2000-12-29 | 2001-01-29 | Method of, and apparatus for, storing a data packet |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10164456A1 true DE10164456A1 (de) | 2002-08-01 |
Family
ID=26245499
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10164455A Withdrawn DE10164455A1 (de) | 2000-12-29 | 2001-12-21 | Verfahren zum Speichern eines Datenpakets |
DE10164453A Withdrawn DE10164453A1 (de) | 2000-12-29 | 2001-12-21 | Verfahren zum Verwalten von Daten |
DE10164456A Withdrawn DE10164456A1 (de) | 2000-12-29 | 2001-12-21 | Datenwarteschlangensystem |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10164455A Withdrawn DE10164455A1 (de) | 2000-12-29 | 2001-12-21 | Verfahren zum Speichern eines Datenpakets |
DE10164453A Withdrawn DE10164453A1 (de) | 2000-12-29 | 2001-12-21 | Verfahren zum Verwalten von Daten |
Country Status (5)
Country | Link |
---|---|
US (3) | US20020156764A1 (de) |
JP (3) | JP2002236608A (de) |
DE (3) | DE10164455A1 (de) |
FR (3) | FR2819069A1 (de) |
GB (2) | GB2382898B (de) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7024662B2 (en) | 2001-03-14 | 2006-04-04 | Microsoft Corporation | Executing dynamically assigned functions while providing services |
US7302634B2 (en) * | 2001-03-14 | 2007-11-27 | Microsoft Corporation | Schema-based services for identity-based data access |
US7260646B1 (en) * | 2002-01-25 | 2007-08-21 | Palmsource, Inc. | Method of software distribution among hand held computers via file sharing with link references to a web site for complete software versions |
US9886309B2 (en) * | 2002-06-28 | 2018-02-06 | Microsoft Technology Licensing, Llc | Identity-based distributed computing for device resources |
JP3955512B2 (ja) * | 2002-08-27 | 2007-08-08 | 富士通株式会社 | データ処理装置及びパケット判別方法 |
EP1559022B1 (de) * | 2002-10-18 | 2016-12-14 | Broadcom Corporation | System und verfahren zurempfangswarteschlangenprovisionierung |
KR100528967B1 (ko) * | 2002-12-18 | 2005-11-15 | 한국전자통신연구원 | 가변 길이의 패킷 저장을 위한 메모리 관리 장치 및 방법 |
US7080126B2 (en) * | 2003-02-28 | 2006-07-18 | Bea Systems, Inc. | Computer program product for performing resource pool maintenance by maintaining resources in several deques |
JP4041002B2 (ja) * | 2003-03-24 | 2008-01-30 | 株式会社三菱東京Ufj銀行 | データベース更新処理システム、データベース更新のための更新データ入力方法、更新データ処理方法、およびプログラム |
CN1323513C (zh) * | 2003-07-22 | 2007-06-27 | 中兴通讯股份有限公司 | 计费服务器定时输出用户计费信息的方法 |
US7408875B2 (en) | 2004-04-09 | 2008-08-05 | International Business Machines Corporation | System and program product for actively managing central queue buffer allocation |
US7349334B2 (en) * | 2004-04-09 | 2008-03-25 | International Business Machines Corporation | Method, system and program product for actively managing central queue buffer allocation using a backpressure mechanism |
US7555579B2 (en) * | 2004-05-21 | 2009-06-30 | Nortel Networks Limited | Implementing FIFOs in shared memory using linked lists and interleaved linked lists |
WO2006025338A1 (ja) * | 2004-08-31 | 2006-03-09 | Matsushita Electric Industrial Co., Ltd. | 情報記録媒体並びに多重化装置および復号化装置 |
JP4311312B2 (ja) * | 2004-09-10 | 2009-08-12 | 日本電気株式会社 | 時系列データ管理方法およびプログラム |
US20070022231A1 (en) * | 2005-07-25 | 2007-01-25 | Rolf Fritz | Method and System for Transferring a Stream of Data |
JP4798495B2 (ja) * | 2006-05-30 | 2011-10-19 | 日本電気株式会社 | 映像配信品質測定システム、装置および方法 |
US20080175442A1 (en) * | 2007-01-22 | 2008-07-24 | Dennis Megarry | Method of displaying graphic images |
US9720991B2 (en) * | 2014-03-04 | 2017-08-01 | Microsoft Technology Licensing, Llc | Seamless data migration across databases |
CN105743549B (zh) * | 2014-12-10 | 2019-02-01 | 展讯通信(上海)有限公司 | 用户终端及其音频蓝牙播放方法、数字信号处理器 |
EP3230879B1 (de) | 2015-05-02 | 2023-11-01 | Hewlett Packard Enterprise Development LP | Speicher mit direktem zugriff |
US10210106B2 (en) | 2017-03-15 | 2019-02-19 | International Business Machines Corporation | Configurable hardware queue management |
US10795836B2 (en) | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
CN108462652B (zh) * | 2017-07-31 | 2019-11-12 | 新华三技术有限公司 | 一种报文处理方法、装置和网络设备 |
DE102018220224A1 (de) * | 2018-11-26 | 2020-05-28 | Deutsche Bahn Ag | Verfahren zum manipulationssicheren Speichern von Daten in einem elektronischen Speicher unter Verwendung einer verketteten Blockchain-Struktur |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3821703A (en) | 1972-12-26 | 1974-06-28 | Ibm | Signal transferring |
US4507760A (en) * | 1982-08-13 | 1985-03-26 | At&T Bell Laboratories | First-in, first-out (FIFO) memory configuration for queue storage |
US4949301A (en) * | 1986-03-06 | 1990-08-14 | Advanced Micro Devices, Inc. | Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM's address inputs |
DE3689151D1 (de) * | 1986-12-30 | 1993-11-11 | Ibm | Nicht-sperrender Warteschlangenmechanismus. |
BE1000396A7 (fr) | 1987-03-18 | 1988-11-22 | Electronique Et Telecomm Bell | Systeme de commutation. |
EP0382699A3 (de) * | 1989-02-07 | 1992-07-15 | International Business Machines Corporation | System und Verfahren zur Datenübertragung zwischen Prozessoren |
US5249292A (en) * | 1989-03-31 | 1993-09-28 | Chiappa J Noel | Data packet switch using a primary processing unit to designate one of a plurality of data stream control circuits to selectively handle the header processing of incoming packets in one data packet stream |
US5016221A (en) * | 1989-12-01 | 1991-05-14 | National Semiconductor Corporation | First-in, first-out (FIFO) memory with variable commit point |
FR2660818B1 (fr) * | 1990-04-06 | 1992-06-19 | France Telecom | Relais-commutateur de trames pour reseau numerique asynchrone. |
IL96808A (en) * | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
WO1992006431A1 (en) * | 1990-09-28 | 1992-04-16 | Fujitsu Limited | Message control method for data communication system |
GB2267588B (en) * | 1992-06-06 | 1996-03-20 | Motorola Inc | FIFO memory system |
US5652879A (en) * | 1993-05-12 | 1997-07-29 | Apple Computer, Inc. | Dynamic value mechanism for computer storage container manager enabling access of objects by multiple application programs |
WO1995010805A1 (en) * | 1993-10-08 | 1995-04-20 | International Business Machines Corporation | Message transmission across a network |
US5687316A (en) * | 1994-07-29 | 1997-11-11 | International Business Machines Corporation | Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data |
US5696910A (en) * | 1995-09-26 | 1997-12-09 | Intel Corporation | Method and apparatus for tracking transactions in a pipelined bus |
US5870627A (en) * | 1995-12-20 | 1999-02-09 | Cirrus Logic, Inc. | System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue |
US6233637B1 (en) * | 1996-03-07 | 2001-05-15 | Sony Corporation | Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure |
GB2330479B (en) | 1997-10-15 | 2002-10-09 | Motorola Inc | Router and method for use in a communication system |
US6377574B1 (en) * | 1997-10-24 | 2002-04-23 | Hitachi, Ltd. | Packet switch and method for relaying management cells and data cells in a form of IP packet |
US6061690A (en) * | 1997-10-31 | 2000-05-09 | Oracle Corporation | Apparatus and method for storage of object collections in a database system |
DE69837113T2 (de) * | 1998-01-20 | 2007-06-06 | Fujitsu Ltd., Kawasaki | Datenspeicheranordnung und Steuerverfahren dafür |
US6157635A (en) * | 1998-02-13 | 2000-12-05 | 3Com Corporation | Integrated remote data access and audio/visual conference gateway |
US6115394A (en) * | 1998-03-04 | 2000-09-05 | Ericsson Inc. | Methods, apparatus and computer program products for packet transport over wireless communication links |
US6505255B1 (en) * | 1999-04-29 | 2003-01-07 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | Method for formatting and routing data between an external network and an internal network |
US6389468B1 (en) * | 1999-03-01 | 2002-05-14 | Sun Microsystems, Inc. | Method and apparatus for distributing network traffic processing on a multiprocessor computer |
GB2350533B (en) | 1999-05-28 | 2001-07-04 | Mitel Corp | Method to control data reception buffers for packetized voice channels |
US6308238B1 (en) * | 1999-09-24 | 2001-10-23 | Akamba Corporation | System and method for managing connections between clients and a server with independent connection and data buffers |
US6532503B1 (en) * | 2000-02-18 | 2003-03-11 | 3Com Corporation | Method and apparatus to detect lost buffers with a descriptor based queue |
-
2001
- 2001-01-29 GB GB0230171A patent/GB2382898B/en not_active Expired - Fee Related
- 2001-01-29 GB GB0230176A patent/GB2382899B/en not_active Expired - Fee Related
- 2001-12-21 DE DE10164455A patent/DE10164455A1/de not_active Withdrawn
- 2001-12-21 DE DE10164453A patent/DE10164453A1/de not_active Withdrawn
- 2001-12-21 DE DE10164456A patent/DE10164456A1/de not_active Withdrawn
- 2001-12-26 JP JP2001393974A patent/JP2002236608A/ja active Pending
- 2001-12-26 JP JP2001393973A patent/JP2002278830A/ja active Pending
- 2001-12-26 JP JP2001393972A patent/JP2002261840A/ja active Pending
- 2001-12-28 US US10/032,806 patent/US20020156764A1/en not_active Abandoned
- 2001-12-28 US US10/035,000 patent/US6760795B2/en not_active Expired - Fee Related
- 2001-12-28 US US10/035,002 patent/US20020129213A1/en not_active Abandoned
- 2001-12-31 FR FR0117083A patent/FR2819069A1/fr not_active Withdrawn
- 2001-12-31 FR FR0117086A patent/FR2819090A1/fr not_active Withdrawn
- 2001-12-31 FR FR0117087A patent/FR2821454A1/fr not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JP2002236608A (ja) | 2002-08-23 |
US6760795B2 (en) | 2004-07-06 |
JP2002278830A (ja) | 2002-09-27 |
US20020133648A1 (en) | 2002-09-19 |
FR2821454A1 (fr) | 2002-08-30 |
FR2819090A1 (fr) | 2002-07-05 |
GB2382898A (en) | 2003-06-11 |
GB0230176D0 (en) | 2003-02-05 |
US20020156764A1 (en) | 2002-10-24 |
JP2002261840A (ja) | 2002-09-13 |
GB0230171D0 (en) | 2003-02-05 |
GB2382899B (en) | 2003-12-17 |
DE10164453A1 (de) | 2002-07-25 |
GB2382899A (en) | 2003-06-11 |
FR2819069A1 (fr) | 2002-07-05 |
US20020129213A1 (en) | 2002-09-12 |
DE10164455A1 (de) | 2002-07-25 |
GB2382898B (en) | 2005-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10164456A1 (de) | Datenwarteschlangensystem | |
DE2913288C2 (de) | Multiprozessoranlage mit einer Vielzahl von Prozessorbausteinen | |
DE69906604T2 (de) | Rechnersystem und Verfahren zur Zuordnung von Speicherraum zu Kommunikationsportpuffern | |
DE60310255T2 (de) | Skalierbarer datenzugang in einem beliebig grossen dokument | |
DE69929095T2 (de) | Verwaltung eines durch eine Mehrzahl von Knoten benutzten Betriebsmittels | |
DE69024753T2 (de) | Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt | |
DE69217664T2 (de) | Multimedia-signalprozessor-rechnersystem | |
DE69834739T2 (de) | Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren | |
DE602004003583T2 (de) | System und Verfahren zum Datensichern bei Stromausfall | |
EP0703534B1 (de) | Speicherverwaltungssystem eines Rechnersystems | |
DE69734432T2 (de) | Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem | |
DE602005004508T2 (de) | Speichersystem und Speichersteuerverfahren | |
DE69733305T2 (de) | System/Verfahren zur wirkungsvollen Übermittlung von Datenströmen in einem Multimediasystem | |
DE3751487T2 (de) | Verfahren zur Steuerung eines Datenübertragungspuffers. | |
DE2856483A1 (de) | Verbindungseinheit fuer datenverarbeitungssysteme | |
DE69923658T2 (de) | Dynamische speicherplatzzuordnung | |
DE3853162T2 (de) | Gemeinsamer intelligenter Speicher für die gegenseitige Verbindung von verteilten Mikroprozessoren. | |
DE102008055892A1 (de) | Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich | |
DE69127399T2 (de) | Verfahren zur automatischen Löschung vorübergehender Dokumentverbindungen in einem Datenverarbeitungssystem | |
DE112011104491T5 (de) | Pufferverwaltungsschema für einen Netzwerkprozessor | |
DE112004002043B4 (de) | Verfahren, System und Programm zum Aufbau eines Pakets | |
DE60128993T2 (de) | Mehrfachratenringpuffer und entsprechendes Betriebsverfahren | |
DE69126823T2 (de) | Verfahren zur bedingten Löschung von Datenobjekten in einem Datenverarbeitungssystem | |
DE3136355A1 (de) | Mikrocomputersystem | |
DE2912073A1 (de) | Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8139 | Disposal/non-payment of the annual fee |