-
GEBIET
-
Die vorliegende Beschreibung betrifft allgemein den Bereich der Elektronik. Genauer gesagt betrifft eine Ausführungsform der Erfindung die Rauschunterdrückung (squelch filtration) zur Begrenzung von falschem Wecken.
-
HINTERGRUND
-
Durch Verbesserung der Technologie zur Herstellung von integrierten Schaltungen (Integrated Circuit (IC)) können Hersteller zusätzliche Funktionalität auf einem einzigen Siliziumsubstrat integrieren. So wie die Anzahl dieser Funktionalitäten zunimmt, gilt dies jedoch auch für die Anzahl von Komponenten auf einem einzigen IC-Chip. Zusätzliche Komponenten führen zu zusätzlicher Signalumschaltung, was wiederum mehr Wärme erzeugt. Die zusätzliche Wärme kann zu einer Beschädigung eines IC-Chips, z. B. durch thermische Ausdehnung, führen. Außerdem kann die zusätzliche Wärme die Einsatzorte und/oder Anwendungen eines Computergeräts, das derartige Chips enthält, einschränken. Zum Beispiel kann sich ein tragbares Computergerät allein auf Batterieversorgung verlassen. Somit wird, wenn zusätzliche Funktionalität in tragbaren Computergeräten integriert wird, die Reduzierung des Energieverbrauchs zunehmend wichtig, zum Beispiel um Batteriesorgung über eine längere Zeitdauer aufrechtzuerhalten. Nicht tragbare Computersysteme können auch Kühl- und Energieerzeugungsprobleme haben, da deren IC-Komponenten mehr Energie brauchen und mehr Wärme erzeugen.
-
Aus der
US 7 028 199 B2 ist eine Vorrichtung bekannt, die einen ersten Agenten umfasst, der mit einem zweiten Agenten gekoppelt ist, wobei der erste Agent, wenn detektiert wird, dass er sich über eine bestimmte Zeit in einem Leerlaufzustand befindet, in einen Energiesparzustand versetzt wird, um den Energieverbrauch zu reduzieren.
-
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, den Energieverbrauch von Computergerätekomponenten bzw. Computergeräten und/oder die Wärmedissipation zu reduzieren.
-
Erfindungsgemäß wird diese Aufgabe durch eine Vorrichtung gemäß Anspruch 1, ein Verfahren gemäß Anspruch 11 und ein System gemäß Anspruch 16 gelöst.
-
Die jeweiligen Unteransprüche betreffen jeweilige vorteilhafte Ausführungsformen der Erfindung.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die ausführliche Beschreibung erfolgt unter Bezugnahme auf die beigefügten Figuren. In den Figuren identifiziert die Ziffer ganz links bzw. identifizieren die Ziffern ganz links einer Bezugszahl die Figur, in der die Bezugszahl das erste Mal erscheint. Die Verwendung derselben Bezugszahlen in verschiedenen Figuren gibt ähnliche oder identische Gegenstände an.
-
Die 1 und 4–5 stellen Blockdiagramme von Ausführungsformen von Computer- bzw. Rechensystemen dar, die zur Implementierung von zahlreichen hierin beschriebenen Ausführungsformen verwendet werden können.
-
2 stellt ein Ablaufdiagramm gemäß einer Ausführungsform dar.
-
3 stellt einen Sample Squelch Filtration-Schaltkreis gemäß einer Ausführungsform dar.
-
Ausführliche Beschreibung
-
In der folgenden Beschreibung werden zahlreiche spezielle Details dargelegt, um für ein umfassendes Verständnis von zahlreichen Ausführungsformen zu sorgen. Einige Ausführungsformen können jedoch ohne die speziellen Details realisiert werden. In anderen Beispielen sind allgemein bekannte Verfahren, Prozeduren, Komponenten und Schaltkreise nicht im Detail beschrieben worden, um die besonderen Ausführungsformen nicht undurchsichtig zu machen. Bei einer Ausführungsform wird/werden E/A-Schaltkreis(e), Systemtakt(e) (internal clock(s)) oder ein weitergeleiteter Takt abgeschaltet, während der Verbindungszustand im internen Speicher beibehalten wird. Es ist zu beachten, dass der zum Speichern des Zustands verwendete interne Speicher im allgemeinen einen erheblich geringeren Energieverbrauch als analoge E/A und Uhren aufweist und somit zu erheblichen Energieeinsparungen ohne Beeinflussung der Verbindungswiederaufnahme führt.
-
Einige hierin beschriebenen Ausführungsformen sind allgemein auf die Begrenzung von falschem Wecken von Computergerätekomponente(n), die über Verbindung(en) (wie zum Beispiel Punkt-zu-Punkt oder serielle Verbindungen) gekoppelt sind, gerichtet, um z. B. den Energieverbrauch und/oder die Wärmedissipation zu reduzieren. Wenn zum Beispiel ein Agent, der mit einer Verbindung gekoppelt ist, in einen Zustand mit niedrigerem Energieverbrauch (z. B. als „L1”, Leerlauf, Schlafmodus, Suspend, etc. bezeichnet) aus einem Zustand mit einem normalen oder Standardenergieverbrauch (z. B. als „LO”, aktiv, etc. bezeichnet) eintritt, kann eine nachfolgende Signalpegeländerung auf der Verbindung (z. B. in der Form eines einzigen Pulses) den Austritt aus dem L1 Zustand anzeigen. Da jedoch sich Halbleiterformfaktoren konstant reduzieren und/oder eine komplexere Schaltung verwendet wird, können längere Spuren (traces) von Verbindungen die Signalintegrität reduzieren und die Einführung von Rauschen zulassen. Dies kann ein falsches Wecken erzeugen, was wiederum zu unnötigem Energieverbrauch oder unnötiger Wärmedissipation aufgrund des falschen Weckens führt. Hierzu können bei einer Ausführungsform mehrere Pulse (z. B. vier Pulse) während einer ausgewählten Zeitperiode (z. B. 50 ns) verwendet werden, um ein Weckereignis anzuzeigen. Die zusätzlichen Pulse und die Dauer von deren Auftreten können das Auftreten von falschem Wecken, zum Beispiel aufgrund von Rauschen oder Signaldegradation auf einer Verbindung begrenzen. Außerdem können die Anzahl von Pulsen und das Rauschunterdrückungsfenster programmierbar sein, um eine Anpassung des Schemas auf der Grundlage des aktuellen Hardwareverhaltens zu ermöglichen.
-
Zahlreiche Computersysteme können zum Implementieren von hierin beschriebenen Ausführungsformen verwendet werden, wie zum Beispiel die unter Bezugnahme auf die 1 und 4–5 beschriebenen Systeme. Genauer gesagt stellt 1 ein Blockdiagramm eines Computersystems 100 gemäß einer Ausführungsform der Erfindung dar. Das System 100 kann einen oder mehrere Agenten 102-1 bis 102-M (hierin gemeinsam als „Agenten 102” oder noch allgemeiner „Agent 102” bezeichnet) enthalten. Bei einer Ausführungsform kann/können ein oder mehrere der Agenten 102 irgendeine Komponente eines Computersystems, wie zum Beispiel der unter Bezugnahme auf die 4 oder 5 beschriebenen Systeme, sein.
-
Wie in 1 dargestellt, können die Agenten 102 über ein Netzwerk (Network Fabric) 104 kommunizieren. Bei einer Ausführungsform kann das Netzwerk 104 ein Computernetzwerk enthalten, das zahlreichen Agenten (wie zum Beispiel Computergeräten oder deren Komponenten) ermöglicht, Daten zu kommunizieren. Bei einer Ausführungsform kann das Netzwerk 104 ein oder mehrere Interconnects (oder Verbindungsnetzwerke (Interconnection Networks)), die über eine serielle (z. B. Punkt-zu-Punkt)-Verbindung und/oder ein gemeinsames Kommunikationsnetzwerk kommunizieren, enthalten. Zum Beispiel können einige Ausführungsformen Komponenten-Debugging oder -validierung auf Verbindungen erleichtern, die eine Kommunikation mit Fully Buffered Dual In-Line Memory Modules (FBD) ermöglichen, z. B. wenn die FBD-Verbindung eine serielle Verbindung zum Koppeln von Speichermodulen mit einem Host-Controller-Gerät (wie zum Beispiel einem Prozessor oder Speicher-Hub) ist. Debugging-Information kann von dem FBD-Kanal-Host gesendet werden, so dass die Debugging-Information entlang des Kanals durch Tools zur Erfassung von Kanalverkehrsspuren (channel traffic trace capture tools), (wie zum Beispiel einen oder mehrere Logikanalysatoren) beobachtet werden kann.
-
Bei einer Ausführungsform kann das System 100 ein Schichtenprotokollschema unterstützen, das eine physikalische Schicht, eine Verbindungsschicht, eine Routing-Schicht, eine Transportschicht und/oder eine Protokollschicht enthalten kann. Die Struktur bzw. das Netzwerk 104 kann ferner eine Übertragung von Daten (z. B. in Form von Paketen) von einem Protokoll (z. B. Caching-Prozessor oder Caching-kompatibler (Caching Aware) Speichercontroller) auf ein anderes Protokoll für ein Punkt-zu-Punkt oder gemeinsames Netzwerk erleichtern. Bei einigen Ausführungsformen sorgt das Netzwerk 104 auch für Kommunikation, die sich nach einem oder mehreren Cache-kohärenten Protokoll(en) richtet.
-
Wie durch die Richtung von Pfeilen in 1 gezeigt, können ferner die Agenten 102 über das Netzwerk 104 Daten senden und/oder empfangen. Somit können einige Agenten eine unidirektionale Verbindung verwenden, während andere eine bidirektionale Verbindung zur Kommunikation verwenden können. Zum Beispiel kann/können ein oder mehrere Agenten (wie zum Beispiel Agent 102-M) Daten (z. B. über eine unidirektionale Verbindung 106) senden, kann/können ein anderer Agent/andere Agenten (wie zum Beispiel Agent 102-2) Daten (z. B. über eine unidirektionale Verbindung 108) empfangen, während ein Agent/einige Agenten (wie zum Beispiel Agent 102-1) Daten (z. B. über eine bidirektionale Verbindung 110) sowohl senden als auch empfangen kann/können.
-
Wie in 1 gezeigt ist, kann der Agent 102-1 auch eine Rauschunterdrückungslogik 112-1 enthalten, um zu bestimmen, wann Agent 102-1 aus einem Zustand mit niedrigem Energieverbrauch (z. B. L1) austreten soll, wie dies hierin zum Beispiel unter Bezugnahme auf die 2 und 3 weiter erörtert wird. Außerdem können alle oder einige der anderen Agenten des Systems 100 ihre eigene Rauschunterdrückungslogik (nicht gezeigt) enthalten.
-
2 stellt ein Ablaufdiagramm eines Verfahrens 200 zum Erzeugen eines Weckereignisses auf der Basis einer Vielzahl von Pulsen, die während einer ausgewählten Zeitperiode auftreten, gemäß einer Ausführungsform dar. Bei einer Ausführungsform kann die Logik 112-1 von 1 Operationen 205–214 des Verfahrens 200 ausführen. Ferner kann der Schaltkreis 300 von 3 verwendet werden, um bei einigen Ausführungsformen die Operationen 205–214 auszuführen.
-
Unter Bezugnahme auf die 1–2 kann sich ein Agent bei Operation 202 in einem aktiven Zustand (wie zum Beispiel L0) befinden. Bei einer Operation 204 kann der Agent in einen Zustand mit niedrigerem Energieverbrauch (wie zum Beispiel Schlafen oder L1) zum Beispiel aufgrund von Inaktivität auf einer Verbindung, mit der der Agent verbunden ist (wie zum Beispiel Verbindung 110 für Agent 102-1 von 1) eintreten. Bei einigen Ausführungsformen kann bei Operation 204 nur ein Teil des Agenten in den Zustand mit niedrigerem Energieverbrauch eintreten (z. B. kann ein Teil/können Teile oder kann ein Prozessor in L1 gebracht werden und können die anderen Teile in L0 bleiben). Wenn ein Rauschunterdrückungsausstiegspuls detektiert wird 205 (der von einem anderen Agenten stammen kann, der mit dem Agenten der Operation 202/204 über eine serielle Verbindung gekoppelt ist, wie dies unter Bezugnahme auf die 1 beschrieben wurde), kann ein Fensterzähler (der z. B. Taktzyklen zählt) oder Zeitnehmer (der Zeit zählt) gestartet werden 206 und kann ein Pulszähler auch gestartet werden 208. Der Pulszähler 208 wird mit jedem detektierten Puls erhöht, bis der Fensterzähler/Zeitnehmer (z. B. nach 50 ns oder irgendeiner anderen programmierbaren Zahl, die in einem Register oder an einer Stelle in einem Speicher gespeichert sein kann) endet 210. Wenn der Fensterzähler endet 210, wird die Anzahl von Pulsen vom Pulszähler 208 mit einem Schwellenwert (z. B. 4 oder irgendeine andere programmierbare Zahl, die in einem Register oder an einer Stelle in einem Speicher gespeichert sein kann) bei einer Operation 212 verglichen. Bei einer Operation 214 kann ein Weckereignis, wenn der Schwellenwert erreicht ist (z. B. in Abhängigkeit von der Implementierung die Anzahl von Pulsen gleich dem Schwellenwert ist oder alternativ den Schwellenwert überschreitet) eintreten (z. B. über ein Signal, das verursacht, dass der Agent in den aktiven Zustand (z. B. L0) eintritt) und kann das Verfahren 200 mit der Operation 202 neu anfangen. Anderenfalls kann das Verfahren 200 mit der Operation 204 neu anfangen (z. B. den Pulszähler zurücksetzen und den Fensterzeitnehmer als Antwort auf „Ausstieg aus Rauschunterdrückung detektiert (squelsh exit detected)” 205 etc. neu starten).
-
Bei einer Ausführungsform wird ein Signal nur als ein Puls (z. B. für den Zweck des Pulszählens 208) betrachtet, wenn es für eine bestimmte Zeit hoch bleibt (d. h. keine Flanke detektiert, sondern ein (z. B. Spannungs-)Pegel detektiert wird). Alternativ können Signale als Pulse betrachtet werden, wenn eine korrekte Anzahl von steigenden Flanken (oder in Abhängigkeit von der Implementierung fallenden Flanken) innerhalb einer spezifizierten Zeitdauer detektiert wird. Bei einer Ausführungsform zählt demgemäß die Logik 112-1 die Anzahl von Pulsen, die innerhalb einer bestimmten Zeitdauer empfangen werden. Wenn die Logik die korrekte Anzahl von Pulsen innerhalb einer spezifizierten Zeit sieht, dann behandelt sie die Situation als eine Anzeige für einen Rauschunterdrückungsausstieg; anderenfalls setzt sie den Pulszähler und den Pulszeitnehmer zurück und beginnt mit dem Suchen nach einer neuen Sequenz von Pulsen.
-
3 stellt ein Blockdiagramm eines Schaltkreises 300 zum Erzeugen eines Weckereignisses auf der Basis einer Vielzahl von während einer ausgewählten Zeitperiode auftretenden Pulsen gemäß einer Ausführungsform dar. Bei einer Ausführungsform kann die Logik 112-1 von 1 den Schaltkreis 300 enthalten. Außerdem können zumindest einige der Operationen des Verfahrens 200 von der 2 von dem Schaltkreis 300 ausgeführt werden, wie dies oben beschrieben ist.
-
Wie in 3 gezeigt ist, kann ein Signal 301 zum Anzeigen eines Rauschunterdrückungsausstiegs (das dasselbe oder ähnlich wie das Signal 205 von 2 sein kann) an S-Eingang eines Latch 302 (das, wie oben unter Bezugnahme auf 2 erörtert, kanten- oder pegelgetriggert sein kann) empfangen werden. Zum Beispiel kann das Signal 301 zum Anzeigen eines Rauschunterdrückungsausstiegs von einer Verbindung empfangen werden, mit der ein Agent gekoppelt ist. Das Latch 302 ist mit einer Synchronisierlogik 304 gekoppelt. Die Logik 304 kann Clock Crossing bereitstellen. Genauer gesagt muss das Signal 301 nicht mit einem Takt (clock) verbunden sein (z. B. kann es analog sein). Dementsprechend adaptiert die Synchronisierlogik 304 das Signal 301 an den Taktbereich des Empfangsagenten und kann bei einigen Ausführungsformen nicht notwendig sein, z. B. wenn das Signal 301 bereits auf den Taktbereich des Empfangsagenten synchronisiert ist.
-
Die Ausgabe der Logik 304 wird einem Inverter 306 (der mit dem „d”-Eingang des Latch 302 gekoppelt ist), einem Flop 308 und einem AND-Gatter 301 zur Verfügung gestellt. Der Flop 308 kann als ein Verzögerungselement agieren, so dass das AND-Gatter 310 ein logisches hohes Signal für zweite und nachfolgende Pulse 301 ausgeben wird. Die Ausgabe des AND-Gatters 310 ermöglicht den Start eines Fensterzählers/Zeitnehmers 311 (z. B. die Operation 206 von 2 durchführend), eines Pulszählers 312 (der die Pulse zählt, wie dies unter Bezugnahme auf 2 und Operation 208 definiert ist) und verursacht, dass ein Schwellenwertregister 314 seinen gespeicherten Wert ausgibt.
-
Wenn der Fensterzähler/Zeitnehmer 311 geendet hat (siehe z. B. Enden des Fensters von 210 von 2), erzeugt er ein Signal 315 an den Pulszähler 312, um seinen. Pulszähler auszugeben (und den Pulszähler zurückzusetzen). Der Komparator 316 vergleicht den Wert des Schwellenwertregisters mit dem Pulszähler von 312 und erzeugt ein Weckereignissignal an den Agenten, der den Schaltkreis 300 enthält.
-
4 stellt ein Blockdiagramm einer Ausführungsform eines Computersystems 400 dar. Das Computersystem 400 kann eine oder mehrere Zentralverarbeitungseinheit(en) (Central Processing Unit(s) (CPUs)) 402 (, die hierin gemeinsam als „Prozessoren 402” oder noch allgemeiner als „Prozessor 402” bezeichnet werden können) enthalten, die mit einem Verbindungsnetzwerk (oder Bus) 404 gekoppelt ist/sind. Einer oder mehrere der Agenten 102 von 1 kann/können eine oder mehrere Komponente(n) des Computersystems 400 umfassen. Außerdem kann/können eine oder mehrere Komponente(n) des Systems 400 die Logik 112-1 enthalten, die z. B. einen oder mehrere der Prozessoren 402 enthält. Die Prozessoren 402 können irgendein Typ von Prozessor, wie zum Beispiel ein Allzweckprozessor, ein Netzwerkprozessor (, der über ein Computernetzwerk 405 kommunizierte Daten verarbeiten kann), etc. (einschließlich einen RISC(Reduced Instruction Set Computer)-Prozessor oder einen CISC (Complex Instruction Set Computer)), sein. Außerdem können die Prozessoren 402 eine Gestaltung mit Einzel- oder Mehrkern aufweisen. Die Prozessoren 402 mit Mehrkerngestaltung können unterschiedliche Typen von Prozessorkernen auf demselben IC(Integrated Circuit)-Mikroplättchen integrieren. Außerdem können die Prozessoren 402 mit Mehrkerngestaltung als symmetrische oder asymmetrische Mehrfachprozessoren implementiert sein.
-
Der Prozessor 402 kann einen oder mehrere Cache(s), die privat und/oder gemeinsam genutzt werden können, in zahlreichen Ausführungsformen enthalten. Allgemein speichert ein Cache Daten, die anderswo gespeicherten oder früher berechneten Originaldaten entsprechen. Zur Reduzierung der Speicherzugriffslatenz, wenn Daten einmal in einem Cache gespeichert wurden, kann die zukünftige Verwendung durch Zugriff auf eine gecachte Kopie anstelle von Wiederbeschaffung oder Neuberechnung der Originaldaten erfolgen. Der Cache/die Caches kann/können jeder Typ von Cache, wie zum Beispiel ein L1(Level 1)-Cache, ein L2(Level 2)-Cache, ein L3(Level 3)-, ein Mid-Level-Cache, ein LLC (Last Level Cache), etc. zum Speichern von elektronischen Daten (zum Beispiel Anweisungen enthaltend) sein, der von einer oder mehreren Komponenten des Systems 400 benutzt wird. Zusätzlich kann/können sich genannter Cache/genannte Caches an zahlreichen Positionen befinden (zum Beispiel innerhalb anderer Komponenten für hierin erörterte Computersysteme, einschließlich Systeme von 1 oder 5).
-
Ein Chipsatz 406 kann zusätzlich mit dem Verbindungsnetzwerk 404 gekoppelt sein. Ferner kann der Chipsatz 406 einen GMCH (Graphics Memory Controller Hub) 408 enthalten. Der GMCH 408 kann einen Speicher-Controller 410 enthalten, der mit einem Speicher 412 gekoppelt ist. Der Speicher 412 kann Daten speichern, die zum Beispiel Sequenzen von Anweisungen enthalten, die von dem Prozessor 402 oder irgendeiner anderen Einrichtung, die mit Komponenten des Computersystems 400 in Verbindung steht, ausgeführt werden. Außerdem kann bei einer Ausführungsform der Erfindung der Speicher 412 einen oder mehrere flüchtige Speicher (volatile storage oder memory), wie zum Beispiel RAM (Random Access Memory), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM), SRAM (Static RAM) etc. enthalten. Es kann auch nicht flüchtiger Speicher, wie zum Beispiel eine Festplatte, verwendet werden. Zusätzliche Einrichtungen können mit dem Verbindungsnetzwerk 404 gekoppelt sein, wie zum Beispiel mehrere Prozessoren und/oder Mehrsystemspeicher.
-
Der GMCH 408 kann ferner eine Graphikschnittstelle 414 enthalten, die mit einer Anzeigeeinrichtung 416 (z. B. über einen Graphikbeschleuniger bei einer Ausführungsform) gekoppelt ist. Bei einer Ausführungsform kann die Graphikschnittstelle 414 mit der Anzeigeeinrichtung 416 über einen AGP (Accelerated Graphics Port) gekoppelt sein. Bei einer Ausführungsform der Erfindung kann die Anzeigeeinrichtung 416 (wie zum Beispiel eine Flachbildschirmanzeige) mit der Graphikschnittstelle 414 über zum Beispiel einen Signalwandler gekoppelt sein, der eine digitale Darstellung eines Bildes, die in einer Speichereinrichtung, wie zum Beispiel einem Videospeicher oder Systemspeicher (z. B. Speicher 412) gespeichert ist, in Anzeigesignale übersetzt, die von der Anzeige 416 interpretiert und angezeigt werden.
-
Wie in 4 gezeigt, kann eine Hub-Schnittstelle 418 den GMCH 408 mit einem ICH (Input/Output Control Hub) 420 koppeln. Der ICH 420 kann eine Schnittstelle für mit dem Computersystem 400 gekoppelte Eingabe/Ausgabe(Input/Output)(I/O)-Einrichtungen bereitstellen. Der ICH 420 kann mit einem Bus 422 über eine periphere Brücke (oder Controller) 424, wie zum Beispiel eine PCI(Peripheral Component Interconnect)-Brücke, die der PCIe Spezifikation entspricht, einen USB(Universal Serial Bus)-Controller etc. gekoppelt sein. Die Brücke 424 kann einen Datenpfad zwischen dem Prozessor 402 und peripheren Einrichtungen bzw. Geräten bereitstellen. Es können andere Typen von Topologien benutzt werden. Außerdem können mehrere Busse mit dem ICH 420, z. B. über mehrere Brücken oder Controller, gekoppelt sein. Ferner kann der Bus 422 andere Typen und Konfigurationen von Bussystemen umfassen. Außerdem können andere mit dem ICH 420 gekoppelte Peripherien bei zahlreichen Ausführungsformen der Erfindung DIE (Integrated Drive Electronics) oder SCSI(Small Computer System Interface)-Laufwerk(e), USB-Port(s), eine Tastatur, eine Mouse, paralle(r) Port(s), serielle(r) Port(s), Diskettenlaufwerk(e), digitale Ausgabeunterstützung (zum Beispiel DVI) (Digital Video Interface)) etc. enthalten.
-
Der Bus 422 kann mit einer Audio-Einrichtung 426, einem oder mehreren Diskettenlaufwerk(en) 428 und einem Netzwerkadapter 430 (, der bei einer Ausführungsform ein NIC sein kann), gekoppelt sein. Bei einer Ausführungsform kann/können der Netzwerkadapter 430 oder andere mit dem Bus 422 gekoppelte Einrichtungen bzw. Geräte mit dem Chipsatz 406 kommunizieren. Andere Einrichtungen können mit dem Bus 422 gekoppelt sein. Außerdem können zahlreiche Komponenten (wie zum Beispiel der Netzwerkadapter 430) mit dem GMCH 408 bei einigen Ausführungsformen der Erfindung gekoppelt sein. Zusätzlich können der Prozessor 402 und der GMCH 408 kombiniert sein und einen einzigen Chip bilden. In einer Ausführungsform kann der Speicherkontroller 410 in einer oder mehreren der CPUs 402 vorgesehen sein. Ferner können bei einer Ausführungsform der GMCH 408 und der ICH 420 zu einem PCH (Peripheral Control Hub) kombiniert sein.
-
Zusätzlich kann das Computersystem 400 flüchtigen und/oder nichtflüchtigen Speicher (oder inneren Speicher (Storage)) enthalten. Zum Beispiel kann der nichtflüchtige Speicher einen oder mehrere von folgenden enthalten: ROM (Read-Only Memory), PROM (Programmable ROM), EPROM (Erasable PROM), EEPROM (Electrically EPROM), ein Diskettenlaufwerk (z. B. 428), eine Diskette, eine CD-ROM (Compact Disc ROM), eine DVD (Digital Versatile Disk), Flashspeicher, eine magneto-optische Platte oder andere Typen von nichtflüchtigen maschinenlesbaren Medien, die elektronische Daten (die z. B. Anweisungen enthalten), speichern können.
-
Der Speicher 412 kann ein oder mehrere des folgenden bei einer Ausführungsform enthalten: ein OS (Operating System) 432, Anwendung 434 und/oder Gerätetreiber 436. Der Speicher 412 kann auch für MMIO(Memory Mapped I/O)-Operationen dedizierte Bereiche enthalten. In dem Speicher 412 gespeicherte Programme und/oder Daten können als Teil von Speicherverwaltungsoperationen in das Diskettenlaufwerk 428 ausgelagert werden. Die Anwendung(en) 434 kann/können (z. B. auf dem/den Prozessor(en) 402) laufen, um ein oder mehrere Paket(e) mit einer oder mehreren Computereinrichtung(en), die mit dem Netzwerk 405 gekoppelt ist/sind, zu kommunizieren. Bei einer Ausführungsform kann ein Paket eine Sequenz von einem oder mehreren Symbolen und/oder Werten sein, die von einem oder mehreren elektrischen Signal(en) kodiert sein können, das/die von mindestens einem Sender zu mindestens einem Empfänger (zum Beispiel über ein Netzwerk, wie zum Beispiel das Netzwerk 405) gesendet wird/werden. Zum Beispiel kann jedes Paket einen Header (Kopf) enthalten, der zahlreiche Informationen enthält, die beim Routen und/oder Verarbeiten des Pakets genutzt werden können, wie zum Beispiel eine Quelladresse, eine Zieladresse, Pakettyp, etc. Jedes Paket kann auch eine Nutzlast aufweisen, wie die Rohdaten (oder Inhalt) enthält, wobei das Paket über ein Computernetzwerk (wie z. B. das Netzwerk 405) zwischen zahlreichen Computereinrichtungen übertragen wird.
-
Bei einer Ausführungsform kann die Anwendung 434 das OS 432 zum Kommunizieren mit zahlreichen Komponenten des Systems 400, z. B. über den Gerätetreiber 436, verwenden. Somit kann der Gerätetreiber 436 für den Netzwerkadapter 430 spezifische Befehle enthalten, um eine Kommunikationsschnittstelle zwischen dem OS 432 und dem Netzwerkadapter 430 oder anderen E/A-Einrichtungen, die mit dem System 400 gekoppelt sind, z. B. über den Chipsatz 406, bereitstellen.
-
Bei einer Ausführungsform kann das OS 432 einen Netzwerkprotokollstapel enthalten. Ein Protokollstapel bezieht sich allgemein auf einen Satz von Prozeduren oder Programmen, die ausgeführt werden können, um über ein Netzwerk 405 gesendete Pakete zu verarbeiten, wobei die Pakete einem spezifizierten Protokoll entsprechen. Zum Beispiel können TCP/IP(Transport Control Protocol/Internet Protocol)-Pakete unter Verwendung eines TCP/IP-Stapels verarbeitet werden. Der Gerätetreiber 436 kann die Pufferspeicher in dem Speicher 412, die bearbeitet werden sollen, z. B. über den Protokollstapel angeben.
-
Das Netzwerk 405 kann irgendeinen Typ von Computernetzwerk enthalten. Der Netzwerkadapter 430 kann ferner eine DMA(Direct Memory Access)-Maschine enthalten, die Pakete in den Pufferspeicher (z. B. in dem Speicher 412 gespeichert) schreibt, die verfügbaren Deskriptoren zugeordnet sind (z. B. in dem Speicher 412 gespeichert), um Daten über das Netzwerk 405 zu senden und/oder zu empfangen. Zusätzlich kann der Netzwerkadapter 430 einen Netzwerkadaptercontroller enthalten, der Logik (wie zum Beispiel einen oder mehrere programmierbare Prozessoren) zum Durchführen von Adapter bezogenen Operationen enthalten kann. Bei einer Ausführungsform kann der Adaptercontroller eine MAC(Media Access Control)-Komponente sein. Der Netzwerkadapter 430 kann ferner einen Speicher, wie zum Beispiel irgendeinen Typ von flüchtigen/nicht flüchtigen Speicher (der z. B. einen oder mehrere Cache(s) und/oder andere unter Bezugnahme auf Speicher 412 erörterte Speichertypen enthält), enthalten.
-
5 stellt ein Computersystem 500, das in einer Punkt-zu-Punkt(PtP)-Konfiguration angeordnet ist, gemäß einer Ausführungsform der Erfindung dar. Insbesondere zeigt 5 ein System, bei dem Prozessoren, Speicher und Eingabe/Ausgabe-Einrichtungen durch eine Anzahl von Punkt-zu-Punkt-Schnittstellen miteinander verbunden sind. Die unter Bezugnahme auf die 1–4 erörterten Operationen können von einer oder mehreren Komponente(n) des Systems 500 durchgeführt werden.
-
Wie in 5 dargestellt ist, kann das System 500 mehrere Prozessoren enthalten, von denen der Klarheit halber nur zwei Prozessoren 502 und 504 gezeigt sind. Die Prozessoren 502 und 504 können jeweils einen GMCH (Local Memory Controller Hub) 506 und 508 enthalten, um Kommunikation mit Speichern 510 und 512 zu ermöglichen. Die Speicher 510 und/oder 512 können zahlreiche Daten, wie zum Beispiel die unter Bezugnahme auf den Speicher 412 von 4 erörterten, speichern. Wie in 5 gezeigt ist, können die Prozessoren 502 und 504 (oder andere Komponenten des Systems 500, wie zum Beispiel Chipsatz 520, E/A-Einrichtungen 543, etc.) auch einen oder mehrere Cache(s), zum Beispiel wie die unter Bezugnahme auf die 1–4 erörterten, enthalten.
-
Bei einer Ausführungsform können die Prozessoren 502 und 504 einer der unter Bezugnahme auf 4 erörterten Prozessoren 402 sein. Die Prozessoren 502 und 504 können über eine PtP(Point-to-Point)-Schnittstelle 514 unter Verwendung von PtP-Schnittstellenschaltkreisen 516 bzw. 518 Daten austauschen. Außerdem können die Prozessoren 502 und 504 jeweils Daten mit einem Chipsatz 520 über individuelle PtP-Schnittstellen 522 und 524 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltkreisen 526, 528, 530 und 532 austauschen. Der Chipsatz 520 kann ferner Daten mit einem Hochleistungsgrafikschaltkreis 534 über eine Hochleistungsgrafikschnittstelle 536, z. B. unter Verwendung eines PtP-Schnittstellenschaltkreises 537, austauschen.
-
Bei mindestens einer Ausführungsform können die Prozessoren 502, 504 Logik 112-1 enthalten. Andere Ausführungsformen der Erfindung können jedoch in anderen Schaltkreisen, Logikeinheiten und Einrichtungen innerhalb des Systems 500 von 5 vorhanden sein. Außerdem können andere Ausführungsformen der Erfindung über mehrere Schaltkreise, Logikeinheiten und Einrichtungen, wie in 5 dargestellt, verteilt sein.
-
Der Chipsatz 520 kann mit dem Bus 540 unter Verwendung eines PtP-Schnittstellenschaltkreises 541 kommunizieren. Der Bus 540 kann eine oder mehrere Einrichtung(en), die damit kommuniziert/kommunizieren, aufweisen, wie zum Beispiel eine Busbrücke 542 und E/A-Einrichtungen 543. Über einen Bus 544 kann die Busbrücke 542 mit anderen Einrichtungen, wie zum Beispiel einer Tastatur/Maus 545, Kommunikationseinrichtungen 546 (wie zum Beispiel Modems, Netzwerkschnittstelleneinrichtungen oder anderen Kommunikationseinrichtungen, die mit dem Computernetzwerk 405 kommunizieren können), Audio-E/A-Einrichtungen und/oder einer Datenspeichereinrichtungen 548 kommunizieren. Die Datenspeichereinrichtung 548 kann Code 549 speichern, der von den Prozessoren 502 und/oder 504 ausgeführt werden kann.
-
Bei zahlreichen Ausführungsformen der Erfindung können die hierin, z. B. unter Bezugnahme auf die 1–5, erörterten Operationen als Hardware (z. B. Schaltung), Software, Firmware, Mikrocode oder Kombinationen derselben, die als ein Computerprogrammprodukt, das z. B. ein maschinenlesbares oder computerlesbares Medium mit darauf gespeicherten Anweisungen (oder Softwareprozeduren) enthält, die zum Programmieren eines Computers und Durchführen eines hierin erörterten Prozesses verwendet werden, implementiert sein. Außerdem kann der Begriff „Logik” beispielsweise Software, Hardware oder Kombinationen von Software und Hardware einschließen. Das maschinenlesbare Medium kann eine Speichereinrichtung, wie zum Beispiel die unter Bezugnahme auf die 1–5 erörterten, enthalten. Zusätzlich können derartige computerlesbare Medien als ein Computerprogrammprodukt heruntergeladen werden, wobei das Programm von einem fernen Computer (z. B. einem Server) auf einen anfordernden Computer (z. B. einen Client) durch Datensignale übertragen werden kann, die in einer Trägerwelle oder einem anderen Ausbreitungsmedium über eine Kommunikationsverbindung (z. B. einen Bus, ein Modem oder eine Netzwerkverbindung) bereitgestellt werden.