PatentDe  


Dokumentenidentifikation DE112005000219T5 07.12.2006
Titel Verfahren und Vorrichtung zum Verwalten von Speicherzugriffsanforderungen
Anmelder Intel Corporation, Santa Clara, Calif., US
Erfinder Bogin, Zohar, Folsom, Calif, US;
Hunter, jr., Arthur, Cameron Park, Calif., US;
Venkataramana, Krishnamurthy, Folsom, Calif., US
Vertreter BOEHMERT & BOEHMERT, 28209 Bremen
DE-Aktenzeichen 112005000219
Vertragsstaaten AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BW, BY, BZ, CA, CH, CN, CO, CR, CU, CZ, DE, DK, DM, DZ, EC, EE, EG, ES, FI, GB, GD, GE, GH, GM, EP, HR, HU, ID, IL, IN, IS, JP, KE, KG, KP, KR, KZ, LC, LK, LR, LS, LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, MZ, NA, NI, NO, NZ, OM, PG, PH, PL, PT, RO, RU, SC, SD, SE, SG, SK, SL, SY, TJ, TM, TN, TR, TT, TZ, UA, UG, US, UZ, VC, VN, YU, ZA, ZM, ZW, BW, GH, GM, KE, LS, MW, MZ, NA, SD, SL, SZ, TZ, UG, ZM, ZW, AM, AZ, BY, KG, KZ, MD, RU, TJ, TM, AT, BE, BG, CH, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HU, IE, IS, IT, LT, LU, MC, NL, PL, PT, RO, SE, SI, SK, TR, BF, BJ, CF, CG, CI, CM, GA, GN, GQ, GW, ML, MR, NE, SN, TD, TG, BF, BJ, CF, CG, CI, CM, GA, GN, GQ, GW, ML, MR, NE, SN, TD, TG
WO-Anmeldetag 10.01.2005
PCT-Aktenzeichen PCT/US2005/000738
WO-Veröffentlichungsnummer 2005073864
WO-Veröffentlichungsdatum 11.08.2005
Date of publication of WO application in German translation 07.12.2006
Veröffentlichungstag im Patentblatt 07.12.2006
IPC-Hauptklasse G06F 13/16(2006.01)A, F, I, 20051017, B, H, DE

Beschreibung[de]
ERFINDUNGSGEBIET

Die vorliegende Erfindung betrifft im allgemeinen Computersysteme und insbesondere das Verwalten von Speicherzugriffsanforderungen in einem Computersystem.

HINTERGRUND DER ERFINDUNG

In einem beispielhaften Computersystem können Zugriffsanforderungen auf Daten, die in Speichervorrichtungen des Systems gespeichert sind, durch Peripheriegeräte bestätigt werden. Beispielsweise kann ein Sprecher Audiodaten von den Speichervorrichtungen erhalten. Zur Steuerung der Peripheriegeräte kann das Computersystem eine Eingang/Ausgang-Steuerung enthalten, die mit den Peripheriegeräten gekoppelt ist. Die Eingang/Ausgang-Steuerung kann eine Reihe von Steuerungen (z.B. eine Audiosteuerung) enthalten, die jeweils für eine bestimmte Art von Peripheriegeräten zuständig ist (z.B. Audiogeräte). Die Steuerungen können Speicherzugriffsanforderungen für die entsprechenden Peripheriegeräte bestätigen. Die Eingang/Ausgang-Steuerung vermittelt zwischen den Speicherzugriffsanforderungen und sendet die Anforderung über einen Anschluß (z.B. Peripheriekomponentenanschluß-Expressbus) an die Speichervorrichtungen.

Nach dem Peripheriekomponentenanschluß-(PCI)-Expressprotokoll ist eine Periode in eine Reihe von Zeitfenstern aufgeteilt. Jeder Steuerung innerhalb der Eingang/Ausgang-Steuerung ist einer Reihe von Zeitfenstern zugeordnet. Eine Anforderung wird in jedem zugeordneten Zeitfenster gesendet. Da die Anforderungen jedoch in unterschiedlichen Längen auftreten, wird die überschüssige Bandbreite in einem Zeitfenster nicht verwendet, wenn die Anforderung nicht das gesamten Zeitfenster in Anspruch nimmt.

Außerdem können die Anforderungen unterschiedliche Niveaus von Wartezeitempfindlichkeit aufweisen. Die bestehenden Steuerungen stellen jedoch keinen Mechanismus bereit, Anforderungen mit unterschiedlichen Wartezeitempfindlichkeitsniveaus zu unterscheiden und die Anforderungen als Reaktion auf ihre Wartezeitempfindlichkeit zu verwalten. Daher können Anforderungen mit einem hohen Wartezeitempfindlichkeitsniveau nicht rechtzeitig an die Speichervorrichtungen gesendet werden und in der Folge kann es zu Pannen im Datenstrom kommen.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

Die vorliegende Erfindung ist umfassender aus der folgenden Beschreibung und den beigefügten Zeichnungen verständlich, die jedoch nicht zur Beschränkung der angehängten Ansprüche auf die gezeigten Ausführungsform herangezogen werden sollten, sondern nur der Erläuterung und dem Verständnis dienen.

1 zeigt ein Flußdiagramm einer Ausführungsform eines Prozesses zum Verwalten von Speicherzugriffsanforderungen.

2 zeigt eine Ausführungsform einer Eingang/Ausgang-Steuerung.

3A zeigt eine Ausführungsform einer Schaltung zum Bestimmen der Länge einer Datenanforderung.

3B zeigt eine Ausführungsform einer Schaltung zum Bestimmen der Länge einer Zwischenspeicherdeskriptoranforderung.

3C zeigt ein Zustandsdiagramm einer Ausführungsform einer Prioritätszustandsmaschine.

3D zeigt eine Ausführungsform eines Vermittlers.

4 zeigt eine beispielhafte Ausführungsform eines Computersystems.

AUSFÜHRLICHE BESCHREIBUNG

In der folgenden Beschreibung wurden ein Verfahren und ein Apparat zum Verwalten von Speicherzugriffsanforderungen offenbart. Zahlreiche spezifische Einzelheiten werden im folgenden näher dargestellt. Es versteht sich jedoch, daß Ausführungsformen der Erfindung ohne diese spezifischen Einzelheiten ausgeführt werden können. In anderen Fällen wurden wohlbekannte Schaltungen, Strukturen und Techniken nicht im Detail dargestellt, um das Verständnis dieser Beschreibung nicht zu erschweren.

In der Beschreibung bedeutet die Bezugnahme auf „eine Ausführungsform", daß ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die im Zusammenhang mit der Ausführungsform beschrieben wurden, in mindestens einer Ausführungsform der Erfindung enthalten sind. Das Auftreten des Satzes „in einer Ausführungsform" an verschiedenen Stellen der Beschreibung bezieht sich nicht notwendigerweise auf dieselbe Ausführungsform.

Einige Abschnitte der folgenden ausführlichen Beschreibung werden im Rahmen symbolischer Darstellung von Databit-Operationen in einem Computerspeicher dargestellt. Diese Beschreibungen und Darstellungen sind die Werkzeuge, die von den Fachleuten auf dem Gebiet der Datenverarbeitung verwendet werden, um das Wesen ihrer Arbeit am effektivsten an andere Fachleute zu übermitteln. Ein Algorithmus bedeutet hier und allgemein eine unabhängige Abfolge von Operationen, die zu einem erwünschten Ergebnis führt. Die Operationen erfordern physische Handhabung physikalischer Größen. Diese Größen nehmen in der Regel, aber nicht notwendigerweise die Form elektrischer oder magnetischer Signale an, die in der Lage sind, gespeichert, übertragen, kombiniert, verglichen oder anderweitig gehandhabt zu werden. Es hat sich zuweilen aus Gründen der Allgemeingebräuchlichkeit als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder dergleichen zu bezeichnen.

Es sei jedoch daran erinnert, daß all diese und ähnliche Begriffe im Zusammenhang mit den entsprechenden physikalischen Größen zu verwenden sind und lediglich diesen Größen zugeordnete zweckmäßige Etiketten darstellen. Sofern in der folgenden Beschreibung nicht anders angegeben, werden Erläuterungen in der gesamten Beschreibung, die Begriffe wie „verarbeiten", „berechnen", „bestimmen" oder „anzeigen" verwenden, als bezogen auf die Aktionen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Berechnungsvorrichtung, das/die als physikalische (elektronische) Größen dargestellte Daten innerhalb der Register und Speicher eines Computersystems handhabt und in andere Daten umwandelt, welche innerhalb der Speicher oder Register des Computersystems oder anderer derartiger Informationsspeicher-, -übertragungs- oder -anzeigevorrichtungen auf ähnliche Weise als physikalische Größen dargestellt werden.

Ausführungsformen der vorliegenden Erfindung betreffen auch einen Apparat zum Ausführen der hier beschriebenen Operationen. Dieser Apparat kann für den erforderlichen Zweck speziell konstruiert sein oder einen Universalcomputer umfassen, der durch ein auf dem Computer gespeichertes Computerprogramm gezielt betätigt oder konfiguriert ist. Ein solches Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert sein, wie beispielsweise, jedoch nicht darauf beschränkt, jede Art von Disketten, einschließlich Floppy Disk, optische Diskette, CD-ROM und magnetooptische Diskette, Lesespeicher (ROMs), Direktzugriffsspeicher (RAMs), EPROMs, EEPROMs, magnetische oder optische Karten oder jede Art von Medien, die sich zum Speichern elektronischer Befehle eignen und die jeweils mit einem Computersystembus gekoppelt sind.

Die hier dargestellten Operationen und Anzeigen sind nicht inhärent auf einen bestimmten Computer oder einen bestimmten Apparat bezogen. Verschiedene Universalsysteme können mit Programmen gemäß den hier dargestellten Lehren verwendet werden oder es kann sich als zweckmmäßig erweisen, zur Ausführung der beschriebenen Operationen spezifischere Apparate zu konstruieren. Die für eine Reihe dieser Systeme benötigte Struktur wird aus der unten stehenden Beschreibung ersichtlich. Außerdem können Ausführungsformen der vorliegenden Erfindung nicht mit Bezug auf irgendeine besondere Programmiersprache beschrieben werden. Es versteht sich, daß eine Reihe von Programmiersprachen verwendet werden können, um die hier beschriebenen Lehren der Erfindung umzusetzen.

So wie der Begriff „maschinenlesbares Medium" hier verwendet wird, umfaßt er jede Art von Mechanismus zum Speichern oder Übertragen von Informationen in einer Form, die durch eine Maschine (z.B. einen Computer) lesbar ist. Beispielsweise umfaßt ein maschinenlesbares Medium ROM, RAM, magnetische Diskettenspeichermedien, optische Speichermedien, Flash-Speicher-Vorrichtungen, elektrische, optische, akustische oder andere Arten von sich ausbreitenden Signalen (z.B. Trägerwellen, Infrarotsignale, Digitalsignale usw.); usw.

1 zeigt ein Flußdiagramm einer Ausführungsform eines Prozesses zum Verwalten von Speicherzugriffsanforderungen. Der Prozess wird durch eine Verarbeitungslogik ausgeführt, die Hardware (z.B. Schaltungen, fest zugeordnete Logik usw.), Software (wie beispielsweise auf einem Universalcomputersystem oder einer fest zugeordneten Maschine betrieben wird) oder eine Kombination aus beidem umfassen kann.

Die Verarbeitungslogik bestätigt mit Hilfe einer Reihe von Speicherzugriffssteuerungen (Verarbeitungsblock 110) eine Reihe von Anforderungen, auf die Speichervorrichtungen zuzugreifen. Die Anforderungen können als Reaktion auf einen von einer zentralen Verarbeitungseinheit in einem Computersystem kommenden Befehl bestätigt werden. Die Anforderungen können Anforderungen zum Lesen und/oder Schreiben von Daten und Zwischenspeicherdeskriptoranforderungen umfassen. Die Speicherzugriffssteuerungen können Direktspeicherzugriffs-(DMA)-Steuerungen, wie Daten-DMA-Steuerungen (sowohl Eingang als auch Ausgang) und DMA-Steuerungen für den Zwischenspeicherdeskriptor (BD) umfassen. In einer Ausführungsform ist eine Daten-DMA-Steuerung für den Zugriff auf Daten in der Speichervorrichtung zuständig, während eine BD-DMA-Steuerung für den Zugriff auf BDs in einer BD-Liste zuständig ist. Jeder BD enthält eine Adresse und eine Größe eines Stücks Daten in den Speichervorrichtungen. In einer Ausführungsform weist jede Daten-DMA-Steuerung eine entsprechende BD-DMA-Steuerung auf.

In einer Ausführungsform sind die DMA-Steuerungen Teil einer Audiosteuerung in einer Eingang/Ausgang-Steuerung eines Computersystems. Die Audiosteuerung kann die Datenübertragung zwischen einem oder mehreren Audiocode-Decodierer und den Speichervorrichtungen steuern. Derartige Audiocode-Decodierer können Bestandteil eines Headsets, eines Lautsprechers, eines Telefons usw. sein.

Unter Bezugnahme auf 1 modifiziert die Verarbeitungslogik dynamisch die Attribute jeder der Anforderungen (Verarbeitungsblock 120). Beispielsweise modifiziert die Verarbeitungslogik dynamisch die Prioritäten der Anforderungen als Reaktion auf die Wartezeitempfindlichkeit der Anforderungen. Die Wartezeitempfindlichkeit ist bezogen auf die erforderliche Schnelligkeit der Datenübertragung der Daten. Eine Anforderung benötigt schnellere Datenübertragung, wenn die Wartezeitempfindlichkeit der Anforderung höher ist.

In einer Ausführungsform klassifiziert die Verarbeitungslogik die Wartezeitempfindlichkeit der Anforderungen in zwei Niveaus, nämlich hoch und niedrig. Die Verarbeitungslogik kann eine DMA-Steuerung veranlassen, eine Anforderung mit einer Wartezeitempfindlichkeit des niedrigen Niveaus zu bestätigen, wenn die Daten, die aus einem Zwischenspeicher der DMA-Steuerung geholt oder daraus entfernt werden können, eine erste Schwelle erreichen. Außerdem kann die Verarbeitungslogik die DMA-Steuerung veranlassen, die Wartezeitempfindlichkeit der Anforderung auf das hohe Niveau zu erhöhen, wenn der in dem Zwischenspeicher verfügbare Raum einen zweiten Schwellenwert erreicht. Der zweite Schwellenwert hängt nicht von dem ersten Schwellenwert ab.

Unter Bezugnahme auf 1 vermittelt die Verarbeitungslogik zwischen den Anforderungen, um eine Anforderung zum Senden an die Speichervorrichtungen in einem Zeitfenster als Reaktion auf die Attribute auszuwählen (Verarbeitungsblock 130). Die Verarbeitungslogik kann bei jedem Taktzyklus vermitteln, um die Anforderung mit der höchsten Wartezeitempfindlichkeit auszuwählen. Die Verarbeitungslogik kann verschiedene Vermittlungsschemata annehmen, wie beispielsweise First-Come-First-Serve (FCFS), Weighted Round Robin (WWR) usw. Die Einzelheiten verschiedener Vermittlungsschemata werden weiter unten beschrieben. Außerdem kann dem Zeitfenster eine Anschlußsteuerung zugeordnet sein, wie beispielsweise eine digitale Multimediaanschluß-(DMI)-Steuerung, Schnittstellenbildung mit einem Anschluß (beispielsweise DMI), der die Audiosteuerung mit den Speichervorrichtungen koppelt.

Außer dem Priorisieren der Anforderungen kann die Verarbeitungslogik die Länge der Anforderungen dynamisch als Reaktion auf die Größe des Zeitfensters ändern (Verarbeitungsschritt 140). Beispielsweise kann die Verarbeitungslogik die Länge der Anforderung bis auf die Größe des Zeitfensters vergrößern, wenn der Umfang der verfügbaren Daten, die geholt oder entfernt werden sollen, zunimmt.

In einer Ausführungsform bestimmt die Verarbeitungslogik die Länge einer Anforderung als Reaktion auf verschiedene Faktoren. Zu den Faktoren gehört beispielsweise der in dem Zwischenspeicher der DMA-Steuerung verfügbare Platz und die verbleibenden Datenbytes, die aus dem entsprechenden BD gelesen oder in den entsprechenden BD geschrieben werden. Außerdem kann die Verarbeitungslogik nicht ermöglichen, daß die Länge der Anforderungen die Obergrenze der Schlitzgröße des Anschlusses, über den die Anforderung gesendet wird, nicht übersteigt. Durch das dynamische Ändern der Anforderungslänge kann die Verarbeitungslogik, wo möglich, kleinere Anforderungen zu größeren Anforderungen vereinen, um jedes der Audiosteuerung zugeordneten Zeitfenster besser auszunutzen. In der Folge kann die Verarbeitungslogik die Effizienz der Audiosteuerung vergrößern.

Schließlich sendet die Verarbeitungslogik die ausgewählte Anforderung an die Speichervorrichtungen (Verarbeitungsschritt 150). Wie oben erwähnt, kann die Verarbeitungslogik die Anforderung über den DMI an die Speichervorrichtungen senden. In einer Ausführungsform folgt die Verarbeitungslogik dem Peripheriekomponentenanschluß-(PCI)-Expressprotokoll, welches isochrone Datenübertragung unterstützt. Die Fähigkeit, die Anforderungslänge dynamisch zu ändern und Anforderungen entsprechend der Wartezeitempfindlichkeit zu priorisieren, ermöglicht isochrone Datenübertragung, um die zugeordnete Bandbreite über eine relevante Zeitperiode zu empfangen, ohne den nicht isochronen Verkehr zu behindern.

2 veranschaulicht eine Ausführungsform einer Eingang/Ausgang-Steuerung. Die Eingang/Ausgang-Steuerung 200 enthält eine Anschlußsteuerung 210 (z.B. eine DMI-Steuerung), eine Reihe von Peripheriegerätesteuerungen 220 und 230 und einen Bus 215, der die Peripheriegerätesteuerungen 220 und 230 an die Anschlußsteuerung 210 koppelt. Die Anschlußsteuerung 210 treibt einen Anschluß 208 (z.B. einen DMI) n. Speichervorrichtungen sind über den Anschluß 208 mit der Eingang/Ausgang-Steuerung 200 gekoppelt. Die Anschlußsteuerung 210 und der Bus können auch zusammen als „Rückgrat" der Eingang/Ausgang-Steuerung 200 bezeichnet werden. Die Peripheriegerätesteuerungen 220 und 230 können eine Universal-Serial-Bus-(USB)-Steuerung, eine Audiosteuerung usw. enthalten.

In einer Ausführungsform enthält die Audiosteuerung 230 einen Vermittler 240, eine Reihe von Ausgangs-DMA-Maschinen 250 und eine Reihe von Eingangs-DMA-Maschinen 260. Die Audiosteuerung 230 kann beispielsweise vier Ausgangs-DMA-Maschinen und vier Eingangs-DMA-Maschinen enthalten. Die Eingangs- und Ausgangs-DMA-Maschinen 250 und 260 treiben einen oder mehrere Audiocode-Decodierer 270 in einem oder mehreren Peripheriegeräten wie beispielsweise Lautsprechern, Telefonen, Headsets usw. an. Es sei darauf hingewiesen, daß nur eine Ausgangs-DMA-Maschine 250 und eine Eingangs-DMA-Maschine 260 in 2 dargestellt sind, um das Verständnis der Ausführungsform nicht zu erschweren.

Jede Ausgangs-DMA-Maschine 250 kann eine BD-DMA-Steuerung 252 und eine Daten-DMA-Steuerung 254 enthalten. Die BD-DMA-Steuerung 252 kann eine Prioritätszustandsmaschine 2521, Schaltungen zum Bestimmen der BD-Anforderungslänge und einen BD-Zwischenspeicher 2525 enthalten. Der BD-Zwischenspeicher 2525 kann einen First-In-First-Out-(FIFO)-Zwischenspeicher enthalten. Ebenso kann die Daten-DMA-Steuerung 254 eine Prioritätszustandsmaschine 2541, Schaltungen 2543 zum Bestimmen der Datenanforderungslänge und einen Ausgangsdatenzwischenspeicher 2545 enthalten. Der Ausgangsdatenzwischenspeicher 2545 kann einen FIFO-Zwischenspeicher enthalten.

Jede Eingangs-DMA-Maschine 260 kann eine BD-DMA-Steuerung 262 und eine Daten-DMA-Steuerung 264 enthalten. Die BD-DMA-Steuerung 262 kann eine Prioritätszustandsmaschine 2621, Schaltungen 2623 zum Bestimmen der BD-Anforderungslänge und einen BD-Zwischenspeicher 2625 enthalten. Der BD-Zwischenspeicher 2625 kann einen First-In-First-Out-(FIFO)-Zwischenspeicher enthalten. In einer Ausführungsform enthält die Daten-DMA-Steuerung 264 eine Prioritätszustandsmaschine 2641, Schaltungen 2643 zum Bestimmen der Datenanforderungslänge und einen Ausgangsdatenzwischenspeicher 2645. Der Ausgangsdatenzwischenspeicher kann einen FIFO-Zwischenspeicher enthalten.

Jede der BD-DMA-Steuerungen 252 und 262 sowie die Daten-DMA-Steuerungen 254 und 264 bestätigen eine Anforderung, auf die Speichervorrichtungen zuzugreifen, und senden die Anforderung an den Vermittler 240. Der Vermittler 240 wählt eine Anforderung aus diesen Anforderungen in Reaktion auf die Wartezeitempfindlichkeit dieser Anforderungen aus und stellt die Anforderung dem Rückgrat der Eingang/Ausgang-Steuerung 230 dar. Die Anschlußsteuerung 210 weist jeder der Steuerungen 220 und 230 periodisch ein Zeitfenster zu. Wenn der Audiosteuerung 230 ein Zeitfenster zugeordnet ist, wird die ausgewählte Anforderung dem zugeordneten Zeitfenster über den Anschluß 208 gesendet.

Zur Steigerung der Effizienz der Audiosteuerung 230 enthält jede der BD- und Daten-DMA-Steuerungen 252, 262, 254 und 264 eine Prioritätszustandsmaschine (beispielsweise die Prioritätszustandsmaschine 2521, 2541, 2621 und 2641), um die Anforderungen der DMA-Steuerungen als Reaktion auf die Wartezeitempfindlichkeit der Anforderungen dynamisch zu priorisieren. In einer Ausführungsform wird die Wartezeitempfindlichkeit in zwei Niveaus eingeteilt, nämlich hoch und niedrig. Die Prioritätszustandsmaschine kann als Reaktion auf den in dem Zwischenspeicher der entsprechenden DMA-Steuerung verfügbaren Platz das Niveau der Wartezeitempfindlichkeit verändern. Weitere Einzelheiten der Prioritätszustandsmaschine werden weiter unten erläutert.

Außerdem enthält jede der DMA-Steuerungen 252, 262, 254 und 264 Schaltungen zum Bestimmen der Anforderungslänge als Reaktion auf die Größe des der Audiosteuerung 230 zugeordneten Zeitfensters. Beispielsweise kann eine Reihe von kleineren Anforderungen zu einer einzigen Anforderung kombiniert werden, die in einem einzigen Zeitfenster gesendet wird. Daher können die DMA-Steuerungen 252, 262, 254 und 264 das zum Senden der Anforderung zugewiesenen Zeitfenster durch dynamisches Ändern der Anforderungslänge besser ausnutzen.

Obwohl die offenbarte Technik oben mit Bezug auf die Audiosteuerung 230 beschrieben wurde, sollte klar sein, daß die Technik auf andere Steuerungen in dem Computersystem anwendbar ist, um Speicherzugriffsanforderungen zu verwalten.

3A veranschaulicht eine Ausführungsform einer Schaltung zum Bestimmen von Datenanforderungslängen in einer Daten-DMA-Steuerung. Die Schaltung 310 enthält eine Reihe von Multiplexern 31103170 und einen Flip-Flop 3180. Die Ausgabe jedes der Multiplexer 31103160 wird in den Multiplexer 3170 eingegeben. Die Ausgabe von Multiplexer 3170 wird in den Flip-Flop 3180 eingegeben. Der Flip-Flop 3180 kann einen Verzögerungs-Flip-Flop (D-Flip-Flop) enthalten. Die Ausgabe von Flip-Flop 3180 ist die bestimmte Datenanforderungslänge req_byte_len[7:0]. Steuersignale (z.B. max_len[31:0] >= × 80) werden in die Multiplexer 31103160 eingegeben.

In einer Ausführungsform werden drei Variablen definiert, um eine Datenanforderungslänge zu bestimmen, REQ_LEN, REM_DESC_LEN und FIFO_SPACE. REQ_LEN ist die Anforderungslänge. REM_DESC_LEN ist die Anzahl der verbleibenden Datenbytes, die in den entsprechenden Zwischenspeicher geschrieben oder aus ihm gelesen werden müssen. FIFO_SPACE ist der zur Auslösung einer Lese-/Schreib-Anforderung verfügbare Zwischenspeicherplatz.

REQ_LEN kann nach drei Regeln bestimmt werden. Erstens darf die Anforderungslänge nicht die maximale Schlitzgröße des Anschlusses übersteigen, über den die Anforderung gesendet wird. Beispielsweise läßt ein Anschluß, der das PCI-Express-Protokoll annimmt, eine maximale Schlitzgröße von 128 Bytes zu und daher kann die Anforderungslänge in einem PCI-Express-Protokoll 128 Byte nicht überschreiten. Zweitens darf REQ_LEN nicht REM_DESC_LEN überschreiten. Drittens wird REQ_LEN so eingestellt, daß sie nach den beiden obigen Regeln im wesentlichen gleich FIFO_SPACE ist. In einer Ausführungsform umfaßt REQ_LEN 8 Byte, wenn FIFO_SPACE 16 Byte beträgt und der 16-Byte-Modus aktiviert ist. Wenn FIFO_SPACE 32 Byte beträgt, dann beträgt REQ_LEN 32 Byte. Wenn FIFO_SPACE 64 Byte beträgt, dann beträgt REQ_LEN 64 Byte. Wenn FIFO_SPACE 96 Byte beträgt, dann beträgt REQ_LEN 96 Byte. Wenn FIFO_SPACE 128 Byte beträgt, dann beträgt REQ_LEN 128 Byte. Die obigen Regeln können durch die in 3A gezeigte Formel dargestellt werden. Es sei jedoch daran erinnert, daß diese spezifischen Regeln und Figuren nur zu Veranschaulichungszwecken beschrieben sind. Andere Ausführungsformen können verschiedene Regeln oder Figuren annehmen, um das offenbarte Konzept umzusetzen.

3B veranschaulicht eine Ausführungsform der Schaltung zum Bestimmen der BD-Anforderungslänge in einer BD-DMA-Steuerung. Die Schaltung 320 enthält einen Multiplexer 3210 und einen Flip-Flop 3220. Die Ausgabe des Multiplexers 3210 ist mit dem Flip-Flop 3220 gekoppelt, der die Ausgabe des Multiplexers 3210 verriegelt. Die Ausgabe von Flip-Flop 3220 ist die bestimmte BD-Anforderungslänge, bd_req_len[1:0]. In einer Ausführungsform weist jeder BD in einer BD-Liste 16 Byte. Daher kann die Länge eines BD-Lesens ein Vielfaches von 16 Byte sein (z.B. 16 Byte, 32 Byte, 48 Byte usw.), abhängig von der Größe des Zwischenspeichers der BDA-DMA-Steuerung.

In einer Ausführungsform werden drei Variablen definiert, um die Anforderungslänge einer BD-Anforderung, nämlich REQ_LEN, REM_BD_LEN und FIFO_SPACE zu bestimmen. REQ_LEN ist die BD-Anforderungslänge. REM_BD_LEN ist die Anzahl der zum Lesen aus der entsprechenden BD-Liste verbleibenden BDs. REQ_LEN kann nach drei Regeln bestimmt werden. Erstens darf REQ_LEN die maximale Schlitzgröße des Anschlusses, über den die Anforderung gesendet wird, nicht überschreiten. Beispielsweise läßt ein Anschluß, der das PCI-Express-Protokoll annimmt, eine maximale Schlitzgröße von 128 Bytes zu und daher kann die Anforderungslänge in einem PCI-Express-Protokoll 128 Byte nicht überschreiten. Zweitens darf REQ_LEN nicht REM_DESC_LEN überschreiten. Drittens wird REQ_LEN so eingestellt, daß sie nach den beiden obigen Regeln im wesentlichen gleich FIFO_SPACE ist. Insbesondere umfaßt REQ_LEN, vorausgesetzt, dass die Länge jedes BD 16 Byte beträgt und FIFO-Spache nach den obigen beiden Regeln 1 BD lang ist, 1 BD, d.h. 16. Byte. Ebenso umfaßt REQ_LEN, wenn FIFO_SPACE 2 BD lang ist, 32 Byte, und wenn FIFO_SPACE 3 BD lang ist, dann umfaßt REQ_LEN 48 Byte. Es sei jedoch daran erinnert, daß diese spezifischen Regeln und Figuren nur zu Veranschaulichungszwecken beschrieben sind. Andere Ausführungsformen können verschiedene Regeln oder Figuren annehmen, um das offenbarte Konzept umzusetzen.

3C veranschaulicht das Zustandsdiagramm einer Ausführungsform einer Prioritätszustandsmaschine in einer DMA-Steuerung (z.B. eine BD-DMA-Steuerung oder eine Daten-DMA-Steuerung). Unter Bezugnahme auf 3C weist die Zustandsmaschine zwei Zustände auf, nämlich den geringer Priorität 332 und den hoher Priorität 334. In einer Ausführungsform nimmt die Zustandsmaschine, wenn sie neu eingestellt wird, den Zustand niedriger Priorität 332 an. Die Zustandsmaschine kann den Zustand hoher Priorität 334 annehmen, wenn eine Anforderung durch die DMA-Steuerung bestätigt wurde oder im nächsten Taktzyklus bestätigt werden wird und die Anforderung weniger wartezeitempfindlich wurde. Beispielsweise wird eine BD-Anforderung weniger wartezeitempfindlich, wenn der BD-Zwischenspeicher in der BD-DMA-Steuerung leer st. Eine Anforderung zum Lesen von Daten kann wartezeitempfindlich werden, wenn die Daten in dem Datenzwischenspeicher der Daten-DMA-Steuerung unterhalb einem vorbestimmten Schwellenwert sind. Eine Anforderung zum Schreiben von Daten kann wartezeitempfindlich werden, wenn der in dem Datenzwischenspeicher der Daten-DMA-Speicherung verfügbare Platz unterhalb eines vorbestimmten Schwellwerts fällt, so wie ein Datenframe.

In einer Ausführungsform geht die Zustandsmaschine von dem Zustand geringer Priorität 332 zu dem Zustand hoher Priorität 334 über, wenn eine Anforderung durch die Anschlußsteuerung 210 der Eingang/Ausgang-Steuerung 200 angenommen wurde (siehe 2).

3D veranschaulicht eine Ausführungsform eines Vermittlers einer Audiosteuerung (z.B. den Vermittler 240 in der Audiosteuerung 230 in 2). Der Vermittler 340 umfasst zwei Niveaus auf. Das erste Niveau weist vier Vermittler 34103416 und das zweite Niveau einen festen Prioritätsvermittler 3420. Die Vermittler des ersten Niveaus können drei First-Come-First-Serve-(FCFS)-Vermittler 34103416 und einen Rundspulen-Vermittler 3416 zum Vermitteln zwischen Anforderungen mit im wesentlichen der gleichen Wartezeitpriorität umfassen. Der Vermittler 3420 des zweiten Niveaus vermittelt zwischen den Ausgängen der der Vermittler 34103416 des ersten Niveaus.

In einer Ausführungsform, vermittelt der BD-Holen-Vermittler 3410 zwischen den Anforderungen von den BD-DMA-Steuerungen (z.B. BD-DMA-Steuerungen 252 und 262 in 2). Jede BD-DMA-Steuerung sendet eine Anforderung an den BD-Holen-Vermittler 3410. Beispielsweise empfängt der Vermittler 3410 acht Anforderungen, wenn die Audiosteuerung acht BD-DMA-Steuerungen hat.

Unter Bezugnahme auf 3D vermittelt der Vermittler 3412 zwischen den Anforderungen zum Lesen von Daten (auch als Datenholenanforderungen bekannt) hoher Wartezeitempfindlichkeit von den Daten-DMA-Steuerungen (z.B. der Daten-DMA-Steuerung 254 aus 2). Beispielsweise können bei einer Audiosteuerung mit vier Lesedaten-DMA-Steuerungen vier Anforderungen zum Lesen von Daten hoher Wartezeitempfindlichkeit in den Vermittler 3412 eingegeben werden. Ebenso vermittelt der Vermittler 3414 zwischen den Anforderungen zum Schreiben von Daten (auch als Datenentfernenanforderungen bekannt) hoher Wartezeitempfindlichkeit von den Daten-DMA-Steuerungen (z.B. der Daten-DMA-Steuerung 264 aus 2). In einer Ausführungsform werden sowohl die Anforderungen zum Lesen von Daten als auch zum Schreiben von Daten geringer Wartezeitempfindlichkeit durch den Rundspulen-Vermittler 3416 vermittelt.

Jeder der FCFC-Vermittler 34103414 kann mit Hilfe einer Schlange ausgeführt werden, um die Reihenfolge der Bestätigung der Anforderungen hoher Wartezeitempfindlichkeit einzuhalten. Der Rundspulen-Vermittler 3416 kann ein gewichtetes Rundspulenschema (Weighted Round Robin, WRR) annehmen, welches feste Prioritätsvermittlung mit Anforderungsmaskierung an ausgewählten DMA-Steuerungen verwendet. Beispielsweise kann eine DMA-Steuerung ausgewählt sein, wenn die DMA-Steuerung eine Anforderung bestätigt, die bestätigte Anforderung nicht maskiert ist, keine Anforderdung hoher Wartezeitempfindlichkeit aktiv ist und keine andere nicht maskierte DMA-Steuerung höherer Priorität und geringer Wartezeitempfindlichkeit anfordert.

In einer Ausführungsform vermitteln die Vermittler 34103416 des ersten Niveaus zwischen den DMA-Steuerungen in allen Taktzyklen (z.B. Taktzyklus X) und wählen einen Taktzyklus von einer der DMA-Steuerungen in dem folgenden Taktzyklus aus (z.B. Taktzyklus X + 1). Der Vermittler des zweiten Niveaus 3420 wählt eine Anforderung in Taktzyklus (X + 1) aus. Außerdem können die Attribute der ausgewählten Anforderung in Taktzyklus (X + 1) an die Anschlußsteuerung 210 gesendet werden (siehe 2). Daher kann der Vermittler 340 sicherstellen, dass eine Anforderung aussteht und jederzeit versandbereit ist, ohne die der Audiosteuerung zugeordneten Zeitfenster zu verschwenden.

4 zeigt eine beispielhafte Ausführungsform eines Computersystems 400. Das Computersystem 400 weist eine Zentrale Verarbeitungseinheit (CPU) 410, ein Speichersteuerung (MCH) 420, eine Reihe Zweifach-Speicher-Module (DIMMs) 425, eine Reihe Speichervorrichtungen 427, einen PCI-Express-Grafikport 430, eine Eingang/Ausgang-Steuerung (ICH) 440, eine Reihe Universal-Serial-Bus-(USB)-Ports 445, einen Audiocode-Decodierer (460) einen Super-Eingang/Ausgang (Super-E/A) 450 und einen Firmwarehub (FWH) 470) auf.

In einer Ausführungsform sind die CPU 410, der PCI-Express-Grafikport 430, die DIMMs 425 und die ICH 440 an die MCH 420 gekoppelt. Die Verbindung 435 zwischen der MCH 420 und der ICH 440 kann eine DMI-Verbindung enthalten. Die MCH 420 leitet Daten zu und von den Speichervorrichtungen 427 über die DIMMs 425.

Die Speichervorrichtungen 427 können verschiedene Arten von Speichern umfassen, wie beispielsweise einen dynamischen Direktzugriffsspeicher (DRAM), einen synchronen dynamischen Direktzugriffsspeicher (SDRAM), Doppeldatenraten(DDR)-SDRAM oder einen Flashspeicher. In einer Ausführungsform ist jede der DIMMs an demselben Motherboard (nicht gezeigt) über einen DIMM-Anschluß (nicht gezeigt) verbunden, um mit der MCH 420 zu koppeln. In einer Ausführungsform sind die USB-Ports 445, der Audiocode-Decodierer 460 und der Super-E/A 450 an die ICH 440 gekoppelt. Der Super-E/A 450 kann außerdem an einen Firmwarehub 470, ein Floppy-Diskettenlaufwerk 451, Dateneingabevorrichtungen 453, wie beispielsweise eine Tastatur, Maus usw., eine Reihe von seriellen Ports 455 und eine Reihe von parallelen Ports 457 gekoppelt.

In einer Ausführungsform umfaßt die ICH 440 eine Audiosteuerung 442, die einen Vermittler enthält, eine Reihe von BD-DMA-Steuerungen und eine Reihe von Ausgangs- und Eingangs-Daten-DMA-Steuerungen. Die DMA-Steuerungen bestätigen Anforderungen, als Reaktion auf einen Befehl von der CPU 410 auf die Speichervorrichtungen zuzugreifen. Die Anforderung kann Anforderungen zum Lesen/Schreiben von Daten und BD-Leseanforderungen umfassen. Die DMA-Steuerungen können die Attribute dynamisch verändern. Einzelheiten einiger Ausführungsformen der DMA-Steuerungen und des Vermittlers wurden oben beschrieben.

Es sei darauf hingewiesen, dass einige oder alle der Komponenten und die zugeordnete Hardware, die in 4 veranschaulicht wurde, in verschiedenen Ausführungsformen des Computersystems 400 verwendet werden kann. Es sollte klar sein, dass andere Konfigurationen des Computersystems eine oder mehrere zusätzliche in 4 nicht gezeigte Vorrichtungen enthalten kann. Außerdem sei darauf hingewiesen, daß die offenbarte Technik auf verschiedene Arten von Systemumgebungen angewendet werden kann, die offenbarte Technik ist sowohl auf mobile als auch auf Desktop-Computersysteme anwendbar.

Die vorstehenden Erläuterungen beschreiben lediglich einige beispielhafte Ausführungsformen der vorliegenden Erfindung. Ein Fachmann wird aus einer derartigen Beschreibung, den beigefügten Zeichnungen und den Ansprüchen erkennen, daß zahlreiche Modifikationen vorgenommen werden können, ohne von dem Geist und dem Schutzumfang der angefügten Ansprüche abzuweichen. Die Beschreibung sollte somit als veranschaulichend, nicht als einschränkend verstanden werden.

Zusammenfassung

Es wird ein Verfahren und eine Vorrichtung zum Verwalten von Speicherzugriffsanforderungen offenbart. Eine Ausführungsform des Verfahrens umfaßt das dynamische Ändern von Attributen jeder einer Anzahl von Anforderungen, auf einen oder mehrere Speichervorrichtungen zu zugreifen, und ein Vermitteln zwischen den Anforderungen, um eine Anforderung auszuwählen, um diese in einem Zeitfenster, das auf den Attributen basiert, zu senden. Es werden weitere Ausführungsformen beschrieben und beansprucht.


Anspruch[de]
Verfahren, das die folgenden Schritte umfaßt:

dynamisches Modifizieren eines oder mehrerer Attribute jeder einer Vielzahl von Anforderungen, auf eine oder mehrere Speichervorrichtungen zuzugreifen; und

Vermitteln zwischen der Vielzahl von Anforderungen, um eine Anforderung zum Senden an die eine oder die mehreren Speichervorrichtungen in einem auf dem einen oder den mehreren Attributen basierten Zeitfenster auszuwählen.
Verfahren nach Anspruch 1, wobei das dynamische Modifizieren des einen oder der mehreren Attribute ein dynamisches Priorisieren der Vielzahl von Anforderungen in Reaktion auf eine Wartezeitempfindlichkeit jeder der Vielzahl von Anforderungen umfaßt. Verfahren nach Anspruch 2, wobei die Wartezeitempfindlichkeit jeder der Vielzahl von Anforderungen als Reaktion auf den in einem Zwischenspeicher, der die entsprechende Anforderung speichert, verfügbaren Platz variiert. Verfahren nach Anspruch 1, das weiterhin das dynamische Ändern einer Länge jeder der Vielzahl von Anforderungen als Reaktion auf eine Größe des Zeitfensters umfaßt. Verfahren nach Anspruch 1, wobei die Vielzahl von Anforderungen eine oder mehrere Anforderungen zum Lesen von Daten, eine oder mehrere Anforderungen zum Schreiben von Daten und eine oder mehrere Anforderungen zum Lesen des Zwischenspeicherdeskriptors umfaßt. Verfahren nach Anspruch 1, das ferner das Senden der ausgewählten Anforderung an die Speichervorrichtungen über einen digitalen Multimediaanschluß umfaßt. Verfahren nach Anspruch 1, das ferner das Bestätigen der Vielzahl von Anforderungen mit Hilfe einer Vielzahl von Direktspeicherzugriffs-(DMA-)-Steuerungen als Reaktion auf einen Befehl von einem Prozessor umfaßt. Maschinenlesbares Medium, das Befehle bereitstellt, die bei Ausführung durch einen Prozessor den Prozessor zur Ausführung von Operationen veranlaßt, welche folgende umfassen:

Vermitteln zwischen einer Vielzahl von Anforderungen, auf eine oder mehrere Speichervorrichtungen zuzugreifen, um eine Anforderung zum Senden an eine oder mehrere der Speichervorrichtungen in einem auf einem oder mehreren Attributen basierten Zeitfenster auszuwählen; und

dynamisches Ändern einer Länge jeder der Vielzahl von Anforderungen als Reaktion auf eine Größe des Zeitfensters.
Maschinenlesbares Medium nach Anspruch 8, wobei die Operationen ferner ein dynamisches Priorisieren der Vielzahl von Anforderungen als Reaktion auf die Wartezeitempfindlichkeit jeder der Vielzahl von Anforderungen umfassen. Maschinenlesbares Medium nach Anspruch 9, wobei die Wartezeitempfindlichkeit jeder der Vielzahl von Anforderungen als Reaktion auf den in einem Zwischenspeicher, der die entsprechende Anfrage speichert, verfügbaren Platz variiert. Maschinenlesbares Medium nach Anspruch 8, wobei die Vielzahl von Anforderungen eine oder mehrere Anforderungen zum Lesen von Daten, eine oder mehrere Anforderungen zum Schreiben von Daten und eine oder mehrere Anforderungen zum Lesen des Zwischenspeicherdeskriptors umfaßt. Maschinenzugängliches Medium nach Anspruch 8, wobei die Operationen ferner das Senden der ausgewählten Anforderung an die eine oder die mehreren Speichervorrichtungen über einen digitalen Multimediaanschluß umfassen. Vorrichtung, die folgendes umfaßt:

eine Vielzahl von Speicherzugriffsteuerungen zum Anführen einer Vielzahl von Anforderungen, auf die Speichervorrichtungen zuzugreifen, wobei ein oder mehrere Attribute der Vielzahl von Anforderungen dynamisch veränderbar sind; und

ein erster Vermittler zum Vermitteln zwischen der Vielzahl von Anforderungen, um auf der Basis eines oder mehrerer Attribute der Vielzahl von Anforderungen eine Anforderung auszuwählen.
Vorrichtung nach Anspruch 13, wobei jede der Vielzahl von Speicherzugriffssteuerungen weiterhin einen Zwischenspeicher zum Zwischenspeichern einer oder mehrerer Anforderungen, eine Prioritätszustandsmaschine zum dynamischen Priorisieren einer oder mehrerer Anforderungen und eine Bestimmungsschaltung zum Bestimmen der Länge der einen oder der mehreren Anforderungen umfaßt. Vorrichtung nach Anspruch 14, wobei die Schaltung zum Bestimmen der Länge der Anforderung eine Vielzahl von Multiplexern umfaßt. Vorrichtung nach Anspruch 15, wobei die Schaltung zum Bestimmen der Länge der Anforderung einen oder mehrere mit der Vielzahl von Multiplexern gekoppelten Flip-Flop umfaßt. Vorrichtung nach Anspruch 13, wobei der erste Vermittler eine erste Vielzahl von Vermittlern umfaßt und die Ausgänge der ersten Vielzahl von Vermittlern mit den Eingängen des zweiten Vermittlers gekoppelt sind. Vorrichtung nach Anspruch 17, wobei die erste Vielzahl von Vermittlern eine Vielzahl von First-Come-First-Serve-(FCFS)-Vermittlern umfaßt. Vorrichtung nach Anspruch 17, wobei der zweite Vermittler einen festen Prioritätsvermittler umfaßt. Vorrichtung nach Anspruch 14, wobei die Prioritätszustandsmaschine die Vielzahl von Anfragen auf der Basis des in dem Zwischenspeicher jeder der Vielzahl von Speicherzugriffssteuerungen verfügbaren Platzes priorisiert. System, das folgendes umfaßt:

eine Vielzahl Dynamischer Direktzugriffsspeicher-(DRAM)-Vorrichtungen;

einen oder mehrere Audiocode-Decodierer; und

eine Eingang/Ausgang-Steuerung, die zwischen den DRAM-Vorrichtungen und dem einen oder den mehreren Audiocode-Decodierer gekoppelt ist, wobei die Eingang/Ausgang-Steuerung eine Audiosteuerung aufweist, wobei die Audiosteuerung folgendes umfaßt:

eine Vielzahl von Speicherzugriffssteuerungen zum Bestätigen einer Vielzahl von Anforderungen, auf die eine oder die mehreren DRAM-Vorrichtungen zuzugreifen, wobei ein oder mehrere Attribute der Vielzahl von Anforderungen dynamisch veränderbar sind; und

einen ersten Vermittler zum Vermittlen zwischen der Vielzahl von Anforderungen zum Auswählen einer Anforderung auf der Basis des einen oder der mehreren Attribute der Vielzahl von Anforderungen.
System nach Anspruch 21, wobei jede der Vielzahl von Speicherzugriffssteuerungen ferner einen Zwischenspeicher zum Zwischenspeichern einer oder mehrerer Anforderungen, eine Prioritätszustandsmaschine zum dynamischen Priorisieren der einen oder mehreren Anforderungen und eine Bestimmungsschaltung zum Bestimmen der Länge der einen oder der mehreren Anforderung umfaßt. System nach Anspruch 22, wobei die Schaltung zum Bestimmen der Länge der Anforderdung folgendes umfaßt:

eine Vielzahl von Multiplexern; und

einen oder mehrere Flip-Flops, die mit der Vielzahl von Multiplexern verbunden sind.
System nach Anspruch 21, wobei der erste Vermittler eine erste Vielzahl von Vermittlern und einen zweiten Vermittler umfaßt, wobei die Ausgänge der ersten Vielzahl von Vermittlern mit den Eingängen des zweiten Vermittlers gekoppelt sind. System nach Anspruch 24, wobei die erste Vielzahl von Vermittlern eine Vielzahl von First-Come-First-Serve-(FCFS)-Vermittlern umfaßt. System nach Anspruch 24, wobei der zweite Vermittler einen festen Prioritätsvermittler umfaßt. System nach Anspruch 22, wobei die Prioritätszustandsmaschine die Vielzahl von Anforderungen auf der Basis des in dem Zwischenspeicher jeder der Vielzahl von Speicherzugriffsteuerungen priorisiert. System nach Anspruch 21, das ferner folgendes umfaßt:

eine mit den DRAM-Vorrichtungen gekoppelte Speichersteuerung; und

einen digitalen Multimediaanschluß, der zwischen der Speichersteuerung und der Eingang/Ausgang-Steuerung gekoppelt ist, wobei die ausgewählte Anforderung an eine oder mehrere der DRAM-Vorrichtungen über den digitalen Multimediaanschluß und die Speichersteuerung gesendet wird.
System nach Anspruch 28, das ferner eine zentrale Verarbeitungseinheit umfaßt, die mit der Speichersteuerung gekoppelt ist, um einen Befehl an die Eingang/Ausgang-Steuerung zu senden, um die Vielzahl von Speicherzugriffssteuerungen zu veranlassen, die Vielzahl von Anforderungen zu bestätigen.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com