DE112006001590T5 - Multi-Thread Übertragungstransportmaschine für Speichereinheiten - Google Patents

Multi-Thread Übertragungstransportmaschine für Speichereinheiten Download PDF

Info

Publication number
DE112006001590T5
DE112006001590T5 DE112006001590T DE112006001590T DE112006001590T5 DE 112006001590 T5 DE112006001590 T5 DE 112006001590T5 DE 112006001590 T DE112006001590 T DE 112006001590T DE 112006001590 T DE112006001590 T DE 112006001590T DE 112006001590 T5 DE112006001590 T5 DE 112006001590T5
Authority
DE
Germany
Prior art keywords
frame
task context
multithreaded
sequences
txtl
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.)
Granted
Application number
DE112006001590T
Other languages
English (en)
Other versions
DE112006001590B4 (de
Inventor
Pak-lung Marlboro Seto
Victor Shrewsbury Lau
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112006001590T5 publication Critical patent/DE112006001590T5/de
Application granted granted Critical
Publication of DE112006001590B4 publication Critical patent/DE112006001590B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Programmable Controllers (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

Was beansprucht ist:
eine Vorrichtung mit:
einer Aufgabenkontextprefetchmaschine zum Prefetchen eines Aufgabenkontextes aus einem Aufgabenkontextspeicher basierend auf einer Prefetchanforderung;
eine Multithread-Übertragungstransportschicht (TxTL), die mit der Aufgabenkontextprefetchmaschine gekoppelt ist, zum Verarbeiten einer Mehrzahl von Eingangs-Ausgangs (I/O) Sequenzen gleichzeitig aus einem I/O Pool, wobei der Multithread TxTL die Prefetchanforderung und einen Frame aus einer Mehrzahl von I/O Sequenzen erzeugt; und
ein Schaltgeflecht/Controller, das mit dem Multithread TxTL gekoppelt ist, zum Routen des Frames zu einer Linkschicht, die einer Speichereinheit zugehörig ist.

Description

  • HINTERGRUND
  • GEBIET DER ERFINDUNG
  • Ausführungsbeispiele der Erfindung beziehen sich auf das Gebiet von Mikroprozessorsystemen, insbesondere Speichersystemen.
  • BESCHREIBUNG DES STANDES DER TECHNIK
  • Jüngste Fortschritte in der Speichertechnologie haben eine Vielzahl von Speichereinheiten und Schnittstellenprotokollen geschaffen. Beispiele derartiger Einheiten und Protokolle weisen Serial Attached Small Computer System Interface (SAS), Fiber Channel (FC), Serial Advanced Technology Attachment (SATA), Internet Small Computer System Interface (ISCSI), Host Bus Adapter (HBA), usw. auf.
  • Gegenwärtig behandeln Speichereinheiten Eingangs/Ausgangs (I/O) Sequenzen in einer seriellen Weise als einzelne Threads. Für kleinere und mittlere Speichersysteme kann die Single-Thread I/O Verarbeitung adäquat sein, um den I/O Anforderungen zu entsprechen. Große Speichersysteme, die Hochleistungsprozessoren verwenden, wie Mehrkernmulitprozessorsysteme mit virtuellen I/O und die Hyperthread Technologie erfordern typischerweise eine zunehmende Anzahl von I/O Sequenzen. Für diese Systeme ist es für Single-Thread Storage Einheiten schwierig, mit der erforderlichen Anzahl von I/O Sequenzen mitzuhalten.
  • KURZE ERLÄUTERUNG DER ZEICHNUNGEN
  • Ausführungsbeispiele der Erfindung sind am besten durch Bezugnahme auf die nachfolgende Beschreibung und die beiliegenden Zeichnungen verständlich, die zur Illustration von Ausführungsbeispielen der Erfindung verwendet werden. In den Zeichnungen ist:
  • 1A ein Diagramm, das ein Serversystem zeigt, bei dem ein Ausführungsbeispiel der Erfindung verwirklicht werden kann.
  • 1B ein Diagramm, das ein Computersystem zeigt, in dem ein Ausführungsbeispiel der Erfindung verwirklicht werden kann.
  • 2 ein Diagramm, das eine Multi-Thread I/O Verarbeitungsumgebung nach einem Ausführungsbeispiel der Erfindung zeigt.
  • 3 ein Diagramm, das eine Multi-Thread Übertragungstransportmaschine nach einem Ausführungsbeispiel der Erfindung zeigt.
  • 4 ein Diagramm, das eine Multi-Thread Übertragungstransportschicht entsprechend einem Ausführungsbeispiel der Erfindung zeigt.
  • 5 ein Diagramm, das eine Übertragungstransportprotokollmaschine nach einem Ausführungsbeispiel der Erfindung zeigt.
  • 6 ein Diagramm, das ein Schaltgeflecht und einen Kontroller nach einem Ausführungsbeispiel der Erfindung zeigt.
  • 7 ein Diagramm, das einen Prozess zum Verarbeiten mehrerer I/O Sequenzen nach einem Ausführungsbeispiel der Erfindung zeigt.
  • 8 ein Diagramm, das einen Prozess zum Ausführen von Operationen an der I/O Sequenz entsprechend einem Ausführungsbeispiel der Erfindung zeigt.
  • 9 ist ein Zeitdiagramm, das ein Multi-Thread Verarbeitung I/O Sequenzen nach einem Ausführungsbeispiel der Erfindung zeigt.
  • BESCHREIBUNG
  • Ein Ausführungsbeispiel der vorliegenden Erfindung ist eine Technik zum parallelen Bearbeiten von mehreren I/O Sequenzen, die einer oder mehreren Speichereinheiten zugehörig sind. Eine aufgabenbezogene Prefetchmaschine verarbeitet einen Aufgabenkontext von einem Aufgabenkontextspeicher basierend auf einer Prefetchanfrage. Wenigstens eine Multi-thread Übertragungstransportschicht auf (TxTL) verarbeitet die I/O Sequenzen von einem I/O Pool gleichzeitig. Die Multi-Thread TxTL erzeugt die Prefetchanfrage und eine oder mehrere Rahmen aus den mehreren I/O Sequenzen. Ein Schaltgeflecht und Kontroller routet die Rahmen zu einer Linkschicht, die der Speichereinheit zugehörig ist.
  • In der nachfolgenden Beschreibung werden verschiedene spezifische Einzelheiten erläutert. Es versteht sich jedoch, dass diese Ausführungsbeispiele der Erfindung ohne diese besonderen Einzelheiten verwirklicht werden können. In anderen Beispielen werden allgemein bekannte Schaltungen, Strukturen und Techniken nicht gezeigt, um eine Erschwerung des Verständnisses dieser Beschreibung zu vermeiden.
  • Ein Ausführungsbeispiel der Erfindung kann als ein Prozess beschrieben werden, der gewöhnlicherweise als ein Flowchart, ein Flussdiagramm, ein Strukturdiagramm oder ein Blockdiagramm bezeichnet wird. Obwohl ein Flowchart die Operationen als einen sequenziellen Prozess beschreiben können, können einige der Operationen parallel oder gleichzeitig ausgeführt werden. Zusätzlich kann die Reihenfolge der Operationen anders sein.
  • Ein Verfahren ist beendet, wenn dessen Operationen abgeschlossen sind. Ein Verfahren kann einer Methode, einem Programm, einer Prozedur, einem Verfahren zur Herstellung oder zur Erzeugung, usw. entsprechen.
  • Ein Ausführungsbeispiel der Erfindung ist eine Technik zum Schaffen mehrerer Threads für I/O Sequenzen, die Speichereinheiten oder entfernten Knoten zugehörig sind. Die Technik weist eine Anzahl von Protokollmaschinen (PEs) auf, die die I/O Sequenzen gleichzeitig verarbeiten müssten. Während eine PE mit der Behandlung einer I/O Sequenz beschäftigt ist oder auf eine Datenlast aus dem Speicher wartet, ist eine andere PE bereit Rahmen für eine andere I/O Sequenz zu übertragen. Es gibt daher keine nutzlosen Leerlaufzeiten. Die Technik ist effizient und bewirkt einen sehr hohen I/O Durchsatz.
  • 1A ist ein Diagramm, das ein Serversystem 10 zeigt, bei dem ein Ausführungsbeispiel der Erfindung verwirklicht werden kann. Das Serversystem 10 weist ein Lokal Area Network (LAN) 20, einen Network Attached Storage (NAS) Server 30, einen Switch/Router 40 und Storage Arrays 50, 52 und 54 auf. Es ist zu beachten, dass das Serversystem 10 mehr oder weniger als die obigen Elemente aufweisen kann.
  • Das LAN 20 ist ein Lokal Area Network innerhalb einer Organisation. Typischerweise ist das LAN 20 ein Ethernet. Der NAS Server 30 ist ein Server, der einen Hartdiskspeicher für einen Hauptserver bildet. Er ist einer Internetprotokoll (IP) Adresse zugeordnet und liefert einen festen Zugriff zu Anwendungsprogrammen und Dateien. Der Switch/Router 40 bewirkt eine Konnektivität und ein Routen zu den Speicherbereichen 50, 52 und 54.
  • Die Speicherbereiche 50, 52 und 54 weisen mehrere redundante Felder von kostengünstigen Disks (RAID) Systemen und Software zum Konfigurieren und Mappen von Dateiorten zu der dem Netzwerk zugehörigen Einheit auf. Das Speicherfeld 54 weist einen Speicherfeldkontroller 60 und ein Diskfeld 80 auf.
  • Der Speicherbereichkontroller 60 steuert den Diskbereich 80. Es weist einen I/O Prozessor 70 und einen Einheitenkontroller 74 auf. Der I(O Prozessor 70 führt I/O Operationen einschließlich Lesen und Schreibzugriffe zu einem Speicherbereich 80 aus. Es weist eine Multi-thread Übertragungstransportmaschine 72 ein. Die Multi-thread Übertragungstransportmaschine 72 liefert mehrere Threads zum gleichzeitigen Verarbeiten mehrerer I/O Sequenzen. Der Diskbereich 80 weist eine Anzahl von Disks 82, 84 und 86 auf.
  • 1B ist ein Diagramm, das ein Computersystem 100 zeigt, bei dem eine Ausführung der Erfindung verwirklicht werden kann. Das System 100 weist eine Prozessoreinheit 110, einen Prozessorbus 115, einen Speicherkontrollerhub (MCH) 120, einen Hauptspeicher 130, einen Eingangs-/Ausgangs-Kontrollerhub (IOH) 140, eine Massenspeichereinheit 150, eine Verbindung 160, Eingangs/Ausgangs (I/O) Einheiten 1651 bis 165L und serielle Speichereinheiten 1701 bis 170K auf.
  • Die Prozessoreinheit 110 repräsentiert eine zentrale Recheneinheit mit einer beliebigen Architektur, etwa Prozessoren unter Verwendung von Hyper Threading, Security, Network, Digital Media Technologies, Einkernprozessoren, Mehrkernprozessoren, eingebettete Prozessoren, mobile Prozessoren, Mikrokontroller, digitalen Signalprozessoren, superskalaren Computer, Vektorprozessoren, Single Instruction Multiple Data (SIMD) Computer, Complex Instruction Set Computers (CISC), reduced instruction set computers (RISC), Very Long Instruction Word (VLIW) oder hybrider Architektur. Der Prozessorbus 115 schafft eine Schnittstelle zu der MCH 120 oder anderen Prozessoren. Der Prozessorbus 115 kann Konfigurationen mit einem einzigen Prozessor oder mehreren Prozessoren unterstützen.
  • Die MCH 120 bewirkt eine Steuerung und Konfiguration von Speicher- und Eingangs/Ausgangs-Einheiten wie dem Hauptspeicher 130 und dem ICH 140. Die MCH 120 kann in einen Chipset integriert sein, die mehrere Funktionalitäten integriert wie Graphiken, Medien, Isolated Execution Mode, Host-to-Peripheral Bus Interface, Speichersteuerung, Lastmanagement, usw. Die MCH 120 oder die Speicherkontrollerfunktionalität in dem MCH 120 können in der Prozessoreinheit 110 integriert sein. Bei einigen Ausführungsbeispielen kann der Speicherkontroller, entweder innerhalb oder außerhalb der Prozessoreinheit 110, für alle Kerne oder Prozessoren in der Prozessoreinheit 110 arbeiten. Bei anderen Ausführungsbeispielen kann es unterschiedliche Bereiche beinhalten, die gesondert für unterschiedliche Kerne oder Prozessoren in der Prozessoreinheit 110 arbeiten können.
  • Der Hauptspeicher 130 speichert Systemcode und -daten. Der Hauptspeicher 130 wird typischerweise durch einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM), einem statischem Speicher mit wahlfreiem Zugriff (SRAM), einem Flash Memory oder jeder anderen Art von Speichern einschließlich solchen, die nicht aufgefrischt werden müssen, implementiert.
  • Der ICH 140 hat eine Anzahl von Funktionalitäten, die zum Unterstützen der I/O Funktionen ausgebildet sind. Die ICH 140 kann weiter in einen Chipsatz gemeinsam oder gesondert von der MCH 120 zum Ausführen von I/O Funktionen integriert sein. Die ICH 140 kann eine Anzahl von Schnittstellen und I/O Funktionen wie eine Peripheral Component Interconnect (PCI) Busschnittstelle, eine Prozessorschnittstelle, einen Interrupt Controller, einen Direct Memory Access (DMA) Kontroller, eine Lastmanangementlogic, einen Timer, einen Systemmanagementbus (SMBus), eine Universal Serial Bus (USB) Schnittstelle, eine Massenspeicherschnittstelle, eine low Pin Count (LPC) Schnittstelle, usw. Insbesondere weist die ICH 140 eine Multi-Thread Übertragungstransportmaschine 145 auf. Die Multi-Thread Übertragungstransportmaschine 145 liefert mehrere Threads zur gleichzeitigen Verarbeitung von mehreren I/O Sequenzen. Sie ist ähnlich der Multi-Thread Übertragungstransportmaschine 72, die in 1A gezeigt ist.
  • Die Massenspeichereinheit 150 speichert Archivinformationen wie einen Code, Programme, Dateien und Anwendungen. Die Massenspeichereinheit 150 kann einen Kompaktdisk (CD) Nur-Lese-Speicher (ROM) 152, eine digital video/versatile disc (DVD) 154, einen Floppydrive 156, einen Harddrive 158 und jede andere magnetische oder optische Speichereinheit aufweisen. Die Massenspeichereinheit 150 schafft einen Mechanismus zum Lesen von Maschinen zugänglichen Medien.
  • Die Schnittstelle 160 bildet eine Schnittstelle zu peripheren Geräten. Die Verbindung 160 kann Punkt-zu-Punkt erfolgen oder zu mehreren Einheiten verbunden sein. Zur Verdeutlichung sind nicht alle Verbindungen gezeigt. Es ist berücksichtigt, dass die Verbindung 160 jede Verbindung oder Bus aufweisen kann wie Peripheral Component Interconnect (PCI), PCI Express, Universal Serial Bus (USB) und Direct Media Interface (DMI), usw. Die I/O Einheiten 1651 bis 165L können beliebige I/O Einheiten aufweisen zum Ausführen von I/O Funktionen. Beispiele von I/O Einheiten 1651 bis 165L weisen Kontroller für Eingangseinheiten (beispielsweise Tastatur, Mouse, Trackball, Pointing Device), Medienkarten (beispielsweise Audio, Video, Graphiken), Netzwerkkarten und beliebige andere periphere Steuereinheiten auf.
  • Die seriellen Steuereinheiten 1701 bis 170K sind beliebige serielle Speichereinheiten wie SAS, SATA, FC, ISCSI und HBA. Sie sind mit der Multi-Thread Übertragungstransportmaschine verbunden. Sie können Durchmesser haben, die von mehreren hundert Megabits Pro Sekunde (Mbits/sec) bis mehrere Gigabits pro Sekunde (GBits/sec) reichen. Sie können mehrere Protokolle zum Übertragen von Daten über die seriellen Schnittstellen haben. Beispiele dieser Protokolle weisen Serial Small Computer System Interface (SCSI) Protokoll (SSP), SCSI Manangement Protokoll (SMP) und Serial ATA Tunneling Protokoll (STP). Es können mehrere Schichten innerhalb der Protokolle vorhanden sein wie eine physikalische Schicht, eine Linkschicht, eine Portschicht, eine Transportschicht und eine Applikationsschicht.
  • 2 ist ein Diagramm, das die I/O Verarbeitungsumgebung 200 nach einem Ausführungsbeispiel der Erfindung zeigt. Die Umgebung 200 weist einen Pool 210 von I/O Sequenzen, einen I/O Planer 220, eine Multithread Übertragungstransportmaschine 145, einen oder mehrere Links und physikalische Schnittstellen 240i bis 240L und einen oder mehrere entfernte Knoten auf.
  • Der Pool 210 weist eine Anzahl von I/O Sequenzen 2121 bis 212N von N entfernten Knoten auf. Diese weisen typischerweise I/O Operationen auf wie Datenübertragungen, Botschaftsübermittlungen, usw. Jede dieser I/O Sequenzen kann ein I/O Lesen und/oder I/O Schreiben aufweisen. Beispielsweise weist die I/O Sequenz 2121 den Identifizierer RN1 für den entfernten Knoten 1, I/O Schreiben IOW11 bis I/O Lesen IOR1P auf. In ähnlicher Weise weist die I/O Sequenz 212k den Idenitfizierer RN k für den entfernten Knoten k, I/O Schreiben IOWk1 bis I/O Lesen IORkQ auf und die I/O Sequenz 212N weist den Identifizierer RN N für den entfernten Knoten N, I/O Schreiben IOWN1 bis I/O Lesen IORNR auf.
  • Der I/O Sequenzplaner 220 kann durch Hardware, Software, Firmware oder jede Kombination daraus implementiert sein. Es plant die Bedienung der I/O Sequenzen in dem Pool 210. Es weist einen Zuweiser 222 und einen Zähler 224 auf. Der Zuweiser 222 weist eine I/O Sequenz zu einem geeignetem Thread in der Multi-Thread Übertragungstransportmaschine 145 auf, wenn eine verfügbar ist. Der Zähler 224 wählt die Spur der Anzahl von Threads, die für einen entfernten Knoten arbeiten. Dies erfolgt zum Verteilen der Arbeitslast und dem Ausgleich der Threads.
  • Die Multi-Thread Übertragungstransportmaschine 145 weist mehrere Threads zum Verarbeiten einer Anzahl von I/O Sequenzen zur gleichen Zeit auf. Durch Verarbeiten von mehreren i/O Sequenzen können nutzlose Leerlaufzeiten vermieden werden, was zu einem hohen I/O Durchsatz führt.
  • Die Schnittstelle 240i (i = 1, ..., L) für die link- und physikalische Schicht bewirkt eine Schnittstelle zu den Speichereinheiten oder entfernten Knoten an den geeigneten Schichten entsprechend dem entsprechenden Protokoll. Der entfernte Knoten 250i (i = 1, ..., L) repräsentiert eine Speichereinheit etwa eine Harddisk. Der entfernte Knoten 250 hat eine entfernte Adresse, so dass er bei einer Datenübertragung identifiziert werden kann.
  • 3 ist ein Diagramm, das eine Multithread-Übertragungstransportmaschine 145 entsprechend einem Ausführungsbeispiel der Erfindung zeigt. Die Multithread-Übertragungstransportmaschine 145 weist eine aufgabenspezifische Prefetchmaschine 310, einen aufgabenspezifischen Speicher 315, einen Pool 320 von Multithread-Übertragungstransportschichten (TxTLs) und ein Schaltgeflecht/Controller 330 auf.
  • Die aufgabenspezifische Prefetchmaschine 310 nimmt eine spezifische Aufgabe aus dem aufgabenspezifischen Speicher 315 basierend auf einer Prefetchanfrage auf. Die Prefetchanfrage wird durch eine der Multithread TxTLs in dem Pool 320 erzeugt. Die spezifische Aufgabe schafft den Kontext oder die Information bezüglich der Aufgabe, die einer I/O Sequenz zugehörig ist. Beispiele des Kontexte oder Information sind einem Befehlsrahmen zu übertragen, um einen Datenframe usw. zu übertragen. Der aufgabenspezifische Speicher 315 weist die den I/O Sequenzen zugehörigen Kontext auf. Er wird typischerweise unter Verwendung von schnellen SRAM implementiert.
  • Der Pool 320 weist Multithread TxTLs 3251 bis 324K auf. In Abhängigkeit von der spezifischen Implementation kann ein Einzelmultithread TxTL oder mehrere Multithread TxTLs in dem Pool sein. Zusätzlich kann ein einziger TxTL konfiguriert sein zum Unterstützen eines einzigen Threads oder mehrerer Threads von I/O Sequenzen in Abhängigkeit von der Puffergrößer und der Fähigkeit, Tracks von Zuständen der I/O Sequenzen, die bedient oder bearbeitet werden, beizubehalten. Wenn es zum Unterstützen eines einzigen Threads konfiguriert ist, repräsentiert die Anzahl von TxTLs in dem Pool 320 die Anzahl von Threads, die von der Multithread-Übertragungstransportmaschine 145 unterstützt werden. Der Multithread TxTL in dem Pool 320 erzeugt einen oder mehrere Frames für das Schaltgeflecht und/oder Controller 330 aus der bearbeiteten I/O Sequenz. Diese Frames sind an einen entsprechenden entfernten Knoten zu übertragen.
  • Der Schaltgeflecht/Controller 330 routet den Frame zu dem Link und der Schnittstelle 240 der physikalischen Schicht, die einer Speichereinheit zugeordnet ist. Wenn mehrere Multithread TxTLs vorhanden sind, verbindet das Schaltgeflecht und/oder der Controller 330 den geeigneten Multithread TxTL zu dem Link und der Schnittstelle 240 der physikalischen Schicht.
  • Die Anzahl der Threads, die erforderlich sind, um einen gegebenen Link zu unterstützen, ist implementationsspezifisch. Es kann von der Puffergröße, den Protokollparametern usw. abhängen. Bei einem Ausführungsbeispiel kann die Anzahl der Threads bestimmt werden aus der Linkleerlaufzeit, bei der die TxTL-Schalter die I/O Sequenz schalten, d. h., die Zeit, die erfordert wird, um die I/O Sequenz zu verarbeiten und der Zeit zum Übertragen der maximal zulässigen Frames. Beispielsweise kann in dem SAS Serial SCSI Protokoll (SSP) die maximale Burstgröße in einer Modusseite auf 16K gesetzt sein. Die Anzahl von Threads NT, die erforderlich ist, um diese Rate beizubehalten ist: NT = Round_Down(tlink_idle + tburst)/tburst) (1)wobei tlink_idle die Linkleerlaufzeit ist, die durch die Bearbeitung der I/O Sequenz verursacht wird und tburst die Zeit zum Übertragen der maximalen Burstgröße ist und Round_Down in dem Abrundungsvorgang eine nicht ganze Zahl steht (beispielsweise wird ein Wert von 2,9 auf 2 abgerundet).
  • 4 ist ein Diagramm, das eine Multithread-Übertragungstransportschicht 325 nach einem Ausführungsbeispiel der Erfindung zeigt. Die Multithread-Übertragungstransportschicht 325 weist eine Übertragungstransportprotokollmaschine (PE) 410, eine Frameschlange 420, eine Direct Memory Accecc (DMP) Maschine 430, einen Übertragungsdatenpuffer 440 und einen Framer 450 auf.
  • Die Übertragungstransportmaschine PE 410 führt Operationen an I/O Sequenzen aus, die von dem I/O Sequenzplaner zugewiesen sind. Die Operationen schließen die Erzeugung von Übertragungsdaten von den I/O Sequenzen, die Extraktion von Kopfinformation, die Erzeugung eines DMA Deskriptors usw. auf.
  • Die Frameschlange 420 speichert die Frameinformation aus der Übertragungstransportprotokollmaschine (PE) 410. Die Frameschlange 420 weist eine Framekopfschlange 422 und eine Framedatenschlange 424 auf. Die Framekopfschlange 422 speichert einen Datenkopf für die Übertragungsdaten. Die Framedatenschlange 424 speichert die Übertragungsdaten, die von der Übertragungstransportprotokollmaschine (PE) 410 erzeugt worden ist.
  • Die Dirct Memory Access (DMA) Maschine 430 überträgt Daten von dem Speicher (beispielsweise dem Speicher 130 von 1) auf den Übertragungsdatenpuffer 440 basierend auf dem DMA Deskriptor, der von der Übertragungstransportmaschine PE 410 geschaffen worden ist. Wenn mehrere DMA Übertragungen gleichzeitig stattfinden, kann eine Entscheidungslogik verwendet werden, um Zugriffskonflikte zu lösen.
  • Der Übertragungsdatenpuffer 440 speichert die Daten, die von der DMA Maschine 430 übertragen worden sind. Typischerweise wird es als eine Schlange organisiert, die Daten beinhaltet, die darauf warten, von dem Framer 450 verarbeitet zu werden. Sie kann von einem schnellen SRAM oder einem First-In-First-Gurt (FIFO) Speicher implementiert sein. Die Größe des Übertragungsdatenpuffers 440 kann verwendet werden, um die Anzahl von Threads zu bestimmen, die von der Multithread-Übertragungstransportschicht 325 unterstützt wird.
  • Der Framer 450 erzeugt den Frame basierend auf der Frameinformation einschließlich des Framekopfes und der Framedaten. Der Frame kann einigen Standardformaten entsprechen, die mit dem Format für den entfernten Knoten oder die Speichereinheit kompatibel sind. Wenn ein Frame zum Senden bereit ist, erzeugt der Framer 450 eine Übertragungsanfrage an das Schaltergeflecht und -controller.
  • 5 ist eine Darstellung, die eine Übertragungstransportmaschine PE 410 entsprechend einem Ausführungsbeispiel der Erfindung zeigt. Die Übertragungstransportmaschine PE 410 weist einen Prefetchanforderer 510, einen I/O Entscheidungsgenerator 520, einen Aufgabenkontextupdater 530, einen I/O Anforderer 540 und einen DMA Deskriptorerzeuger 550 auf.
  • Der Prefetchanforderer 510 erzeugt eine Prefetchanfrage an die aufgabenspezifische Prefetchmaschine 310 zum Erhalten des Aufgabenkontextes. Die Prefetchanforderung wird immer erzeugt, wenn angenommen wird, dass eine I/O Sequenz zu verarbeiten ist.
  • Der I/O Entscheidungsgenerator 520 erzeugt eine I/O Behandlungsentscheidung basierend auf dem Aufgabenkontext. Wenn die aufgabenspezifische Prefetchmaschine die Prefetchanforderung empfängt, bringt es den Aufgabenkontext, der der I/O Sequenz die zuzuordnen ist, zugehörig ist, auf die zugrundeliegende Multithread TxTL zurück. Der Aufgabenkontext beinhaltet Information, wie die I/O Sequenz zu verarbeiten ist. Die Behandlungsentscheidung kann eine Entscheidung zum Übertragen eines Befehlframes oder eines Datenframes beinhalten.
  • Der Aufgabenkontextupdater 530 frischt den Aufgabenkontext, der der verarbeiteten I/O Sequenz zugehörig ist, auf. Das Auffrischen erfolgt typischerweise unmittelbar, nachdem die I/O Sequenz verarbeitet worden ist und an den Bestimmungsknoten gesendet worden ist oder nachdem eine positive Anerkennung empfangen worden ist oder jedem anderen Zustand, der von dem zugrundeliegenden Protokoll verlangt wird. Das Auffrischen schließt das Auffrischen des Status der I/O Sequenz, der Adresse des entfernten Knoten usw. ein.
  • Der I/O Anforderer 540 fordert eine I/O Sequenz von einem I/O Sequenzplaner 220 an. Der I/O Anforderer 540 erzeugt die Anforderung immer wenn die zugrundeliegende Übertragungstransportmaschine 410 verfügbar ist zum Aufnehmen einer neuen I/O Sequenz. Der I/O Anforderer 540 kann die I/O Sequenz von dem Pool anfordern und die I/O Sequenz kann den Prefetchanforderer 510 liefern.
  • Der DMA Deskriptogenerator 550 erzeugt den DMA Deskriptor, wenn der entsprechende Aufgabenkontexte angibt, dass die I/O Sequenz eine DMA Übertragung betrifft. Der DMA Deskriptor kann eine Information einschließen, die von der DMA Maschine 430 benötigt wird, um eine DMA Übertragung auszuführen. Diese Information kann das Starten und/oder Beenden von Adressen von zu übertragenden Datenblöcken, die Anzahl oder die Zahl von Bytes der zu übertragenden Daten und jede andere Information, die der DMA eigen ist, einschließen.
  • 6 ist ein Diagramm das ein Schaltgeflecht/Controller 330 nach einem Ausführungsbeispiel der Erfindung zeigt. Der Schaltgeflecht/Controller 330 weist einen Schalter 610, einen Linkschichtmonitor 620 und einen Controller 630 auf.
  • Der Schalter 610 verbindet die Linkschicht und die Multithread TxTL, die bereit ist, einen Frame zu übertragen. Der Schalter 610 kann durch jede geeignete Schaltstruktur wie einen Crossbarschalter implementiert sein. Der Linkschichtmonitor 620 prüft den Linkschichtverbindungsstatus zu einem entfernten Knoten mit einer entfernten Knotenadresse. Es ist berücksichtigt, dass der Verbindungsstatus lediglich auf ein verbindungsorientiertes Protokoll antwortet. Für andere Protokolle wird eine geeignete Statusinformation verwendet. Der Verbindungsstatus kann „keine Verbindung" oder „Verbindung zu ..." sein. Der Controller 630 steuert den Schalter unter Verwendung der Frameübertragungsanforderung und zum Übertragen des Rahmens, der durch den verbundenen TxTL zu dem entfernten Knoten vorgesehen ist über den Schalter 610 entsprechend dem Verbindungsstatus und der entfernten Knotenadresse.
  • 7 ist ein Diagramm, das ein Verfahren 700 zeigt zum Verarbeiten mehrerer I/O Sequenzen entsprechend einem Ausführungsbeispiel der Erfindung. Bei START erfasst der Prozessor 700 den Aufgabenkontext basierend auf einer Prefetchanforderung (Block 710). Die Prefetchanforderung wird vorgesehen durch eine Multithread-Übertragungstransportschicht. Anschließend verarbeitet der Prozess 700 mehrere I/O Sequenzen gleichzeitig. Der Prozess 700 führt Operationen an der Mehrzahl von I/O Sequenzen unter Verwendung einer Multithreades-Übertragungstransportschicht (Block 720) aus. Sodann speichert der Prozess 700 die Frameinformation (Block 730). Die Frameinformation kann einen Framekopf und Framedaten beinhalten. Anschließend überträgt der Prozess 700 Daten von einem Speicher zu dem Übertragungsdatenpuffer basierend auf einem DMA Deskriptor (Block 740). Sodann erzeugt der Prozess 700 eine oder mehrere Frames basierend auf der Frameinformation (Block 750). Sodann erzeugt der Prozess 700 eine Frameübertragungsanforderung an den Schaltgeflecht/Controller (Block 760).
  • Der Prozess 700 routet sodann den Frame zu einer Linkschicht, die einer Speichereinheit zugeordnet ist. Dies kann ausgeführt werden durch Prüfen des Linkschichtverbindungsstatus zu einem entfernten Knoten mit einer entfernten Adresse (Block 770). Es ist zu beachten, dass der Verbindungsstatus nur auf ein verbindungsorientiertes Protokoll antwortet. Für andere Protokolle werden geeignete Statusinformationen verwendet. Der Prozess 700 steuert sodann einen Schalter basierend auf der Frameübertragungsanforderung zum Verbinden der Linkschicht zu dem anfordernden Multithread TxTL (Block 780). Sodann überträgt der Prozess 700 den Frame zu einem entfernten Knoten über den Schalter unter Verwendung des entfernten Namens (Block 790). Der Prozess 700 wird sodann beendet.
  • 8 ist ein Diagramm, das ein verwendeten Prozess 720 zum Ausführen von Operationen auf der I/O Sequenz entsprechend einem Ausführungsbeispiel der Erfindung zeigt.
  • Bei START fordert der Prozess 720 eine I/O Sequenz von dem I/O Sequenzplaner (Block 810). Dies wird typischerweise ausgeführt, wenn die Multithread-Transportmaschine PE bereit ist. Nachfolgend erzeugt der Prozess 720 eine Prefetchanforderung an die Aufgabenkontextprefetchmaschine (Blick 820). Sodann erhält der Prozess 720 die I/O Sequenz und den entsprechenden Aufgabenkontext von dem Aufgabenkontextspeicher (Block 830). Nachfolgend erzeugt der Prozess 720 die I/O Behandlungsentscheidung basierend auf dem Aufgabenkontext (Block 840).
  • Sodann bestimmt der Prozess 720, ob DMA von der I/O Sequenz und dem Aufgabenkontext (Block 850) notwendig ist. Falls dies der Fall ist, erzeugt der Prozess 720 einen DMA Deskriptor zur Verwendung für die DMA (Block 860) und schreitet zu Block 870 voran. Ansonsten führt der Prozess 720 die Aufgabe entsprechend der Handlungsentscheidung (Block 870) aus. Sodann frischt der Prozess 720 den Aufgabenkontext (Block 880) auf und wird sodann beendet.
  • 9 ist ein Zeitdiagramm, das die Multithread-Verarbeitung 900 der I/O Sequenzen entsprechend einem Ausführungsbeispiel der Erfindung zeigt. Die Verarbeitung 900 weist Zeitperioden 910, 920, 930 und 940 auf.
  • Die Zeitperiode 910 ist der Start der Verarbeitung der I/O Sequenzen. Es wird angenommen, dass während dieser Periode zwei Multithread TxTLs verfügbar sind: TxTL0 und TxTL1. Jede der TxTLs hat seinen eigenen Taktgeber. Während der Zeitperiode 910, hat der TxTL0 Zeitdauern 911, 912 und 913 und der TxTL1 hat Zeitperioden 915, 916 und 917.
  • Während der Zeitdauer 911 erzeugt der TxTL0 eine I/O Anforderung an den I/O Sequenzplaner. Der I/O Sequenzplaner weist die I/O Sequenzen (A) an den TxTL0 zu. Der TxTL0 ruft sodann den Aufgabenkontext entsprechend der I/O Sequenz (A) ab. Während der Zeitperiode 912 verarbeitet der TxTL0 die I/O Sequenz (A) basierend auf dem Aufgabenkontext. Es wird angenommen, dass die Verarbeitung ein DMA ist. Der TxTL0 programmiert sodann seine DMA Maschine zum Einbringen der Hostdaten von dem Hostspeicher zu dem Übertragungsdatenpuffer. Während der Zeitperiode 913 werden die Daten, die der I/O Sequenz (A) zugehörig sind, von dem Hostspeicher geholt.
  • Während der Zeitperiode 915 erzeugt der TxTL1 eine I/O Anforderung an den I/O Sequenzplaner. Der I/O Sequenzplaner ordnet die I/O Sequenz (B) dem TxT1 zu. Der TxTL1 holt sodann den Aufgabenkontext entsprechend er I/O Sequenz (B9) Während der Zeitdauer 916 verarbeitet der TxTL1 die I/O Sequenz (B) basierend auf dem Aufgabenkontext. Es wird angenommen, die Verarbeitung sei ein DMA. Der TxTL1 programmiert sodann seine DMA Maschine zum Holen der Hostdaten aus dem Hostspeicher in das Übertragungsdatenpuffer. Während der Zeitperiode 917 werden die Daten, die der I/O Sequenz (B) zugehörig sind, von dem Hostspeicher geholt.
  • Während der Zeitperiode 920 werden die Daten (A), die der I/O Sequenz (A) zugehörig sind, an den entfernten Knoten übertragen oder an die entsprechende Speichereinheit. Während dieser Periode können Operationen vorhanden sein, die initiiert sind oder durchgeführt werden durch andere TxTLs, wenn diese verfügbar sind und I/O Sequenzen vorhanden sind, die in dem Pool warten.
  • Entsprechend werden während der Zeitperiode 930 (B) die der I/O Sequenz (B) zugehörig sind, an den entfernten Knoten oder die entsprechende Speichereinheit übertragen. Diese Zeitperiode schließt die Zeitperiode 931, 932, 933 und 934 auf. Während der Zeitperiode 931 vollendet die TxTL0 das Senden der Daten (A) und frischt den Datenkontext (A) zum Wiedergeben des Status der I/O Sequenz (A) auf. Während der Zeitperiode 932 erzeugt der TxTL0 eine Anforderung an den I/O Sequenzplaner. Er wird der I/O Sequenz (C) zugeordnet und holt den Datenkontext für die I/O Sequenz (C). Während der Zeitperiode 933 verarbeitet der TxTL0 die I/O Sequenz (C) basierend auf dem Aufgabenkontext. Es sei wieder angenommen, dass es eine DMA Übertragung ist. Während der Zeitperiode 934 werden die Daten, die von dem Hostspeicher geholt sind, zu dem Übertragungsdatenpuffer gefetcht.
  • Während der Zeitperiode 940 werden die Daten (C), die der I/O Sequenz (C) zugehörig sind, an den entfernten Knoten des Bestimmungsorts oder an die Speichereinheit übertragen. Die Zeitperiode hat eine Zeitperiode 942, während der TxTL1 das Aussenden der Daten (B) abschließt und den Aufgabenkontext (B) zum Wiedergeben des Status der I/O Sequenz (B) auffrischt. Während der Zeitperiode 942 vollendet der TxTL0 das Senden der Daten (C) und frischt den Datenkontext (C) auf zum Wiedergeben des Status der I/O Sequenz (C).
  • Wie in dem Zeitdiagramm gezeigt, können die TxTLs kontinuierlich zum Vermeiden von nutzlosen Leerlaufzeitperioden, mit Ausnahme der Anfangsperiode (beispielsweise der Zeitperiode 910). tätig bleiben. Die aktuelle Anzahl von TxTLs, die zum Verarbeiten der I/O Sequenzen geplant werden, hängt von der Verfügbarkeit der TxTLs, die Puffergröße und die Verarbeitungsgeschwindigkeit der DMA Maschine ab. Da mehrere TxTLs zum gleichzeitigen Verarbeiten der I/O Sequenzen ausgeführt worden sind, wird der I/O Durchsatz sehr hoch, was zu einer effizienten I/O Verarbeitung führt.
  • Obwohl die Erfindung in den Begriffen verschiedener Ausführungsformen beschrieben worden ist, erkennt der Fachmann, dass die Erfindung nicht auf die beschriebenen Ausführungsbeispiele beschränkt ist, sie können vielmehr mit Modifikationen und Abänderungen innerhalb des Grundgedankens und des Schutzbereiches der beiliegenden Ansprüche verwirklicht werden. Die Beschreibung ist daher lediglich als illustrativ, nicht aber als einschränkend zu verstehen.
  • Zusammenfassung
  • Ein Ausführungsbeispiel der vorliegenden Erfindung ist eine Technik zum Verarbeiten einer Mehrzahl von I/O Sequenzen, die einer Speichereinheit zugehörig sind. Eine aufgabenspezifische Prefetchmaschine holt einen Aufgabenkontext für einen Aufgabenkontextspeicher basierend auf einer Prefetchanfrage. Wenigstens eine Multi-Thread Übertragungsmaschine (TxTL) verarbeitet die Mehrzahl von I/O Sequenzen von dem I/O Pool gleichzeitig. Der Multi-Thread TxTL erzeugt die Prefetchanfrage und eine oder mehrere Frames aus der Mehrzahl von I/O Sequenzen. Ein Schaltergeflecht und Controller routet den Frame zu einer Linkschicht, die der Speichereinheit zugehörig ist.

Claims (20)

  1. Was beansprucht ist: eine Vorrichtung mit: einer Aufgabenkontextprefetchmaschine zum Prefetchen eines Aufgabenkontextes aus einem Aufgabenkontextspeicher basierend auf einer Prefetchanforderung; eine Multithread-Übertragungstransportschicht (TxTL), die mit der Aufgabenkontextprefetchmaschine gekoppelt ist, zum Verarbeiten einer Mehrzahl von Eingangs-Ausgangs (I/O) Sequenzen gleichzeitig aus einem I/O Pool, wobei der Multithread TxTL die Prefetchanforderung und einen Frame aus einer Mehrzahl von I/O Sequenzen erzeugt; und ein Schaltgeflecht/Controller, das mit dem Multithread TxTL gekoppelt ist, zum Routen des Frames zu einer Linkschicht, die einer Speichereinheit zugehörig ist.
  2. Die Vorrichtung nach Anspruch 1, wobei der Multithread TxTL aufweist: eine Übertragungstransportprotokollmaschine (PE) zum Ausführen von Operationen an der Mehrzahl von I/O Sequenzen, wobei die Operationen die Erzeugung von Übertragungsdaten aus den I/O Sequenzen aufweist; eine Frameschlange, die mit der Übertragungstransportmaschine PE gekoppelt ist, zum Speichern von Rahmeninformation; eine Direktspeicherzugriff (DMA) Maschine, die mit der Datentransportmaschine PE gekoppelt ist, zum Übertragen von Daten von einem Speicher zu einem Übertragungsdatenpuffer basierend auf einem DMA Deskriptor; und einen Framer, der mit der Frameschlange und dem Übertragungsdatenpuffer gekoppelt ist, zum Erzeugen des Frames basierend auf der Frameinformation und zum Erzeugen einer Frameübertragungsanforderung an das Schaltgeflecht und Controller.
  3. Die Vorrichtung nach Anspruch 2, wobei die Übertragungstransportmaschine PE aufweist: einen I/O Anforderer zum Anfordern einer I/O Sequenz von einem I/O Sequenzplaner; einen Prefetchanforderer zum Erzeugen der Prefetchanforderung an die Aufgabenkontextfrefetchmaschine; einen I/O Entscheidungsgenerator zum Erzeugen einer I/O Handlungsentscheidung basierend auf dem Aufgabenkontext; einem DMA Deskriptorerzeuger zum Erzeugen des DMA Deskriptors; und einen Aufgabenkontextupdater zum Auffrischen des Aufgabenkontextes.
  4. Die Vorrichtung nach Anspruch 2, wobei die Frameschlange aufweist; eine Framekopfschlange zum Speichern eines Framekopfes für die Übertragungsdaten; und eine Framedatenschlange zum Speichern der Übertragungsdaten.
  5. Die Vorrichtung nach Anspruch 2, wobei das Schaltgeflecht/Controller aufweist: einen Schalter zum Verbinden der Linkschicht und den wenigstens einen Multithread TxTL; einen Linkschichtmonitor zum Prüfen des Status der Linkschicht zu einem entfernten Knoten, der eine entfernte Knotenadresse hat; und einen Controller zum Steuern des Schalters unter Verwendung der Frameübertragungsanforderung und zum Übertragen des Frames an den entfernten Knoten über den Schalter entsprechend dem Status und der entfernten Knotenadresse.
  6. Die Vorrichtung nach Anspruch 3, wobei der I/O Entscheidungsgenerator eine Entscheidung erzeugt zum Übertragen eines Datenframes und eine Entscheidung zum Übertragen eines Befehlframes.
  7. Ein Verfahren mit: Prefetchen eines Aufgabenkontextes von einem Aufgabenkontextspeicher basierend auf einer Prefetchanforderung unter Verwendung einer Aufgabenkontextprefetchmaschine; Verarbeiten einer Mehrzahl von Eingangs/ausgangs (I/O) Sequenzen aus einem I/O Pool gleichzeitig unter Verwendung wenigstens einer Multithread-Übertragungstransportschicht (TxTL), wobei der Multithread TxTL, der die Prefetchanforderung erzeugt und einen Rahmen aus der Mehrzahl von I/O Sequenzen; und Routen des Rahmens zu einer Linkschicht und Verwendung eines Schaltgeflechts/Controllers.
  8. Das Verfahren nach Anspruch 7, wobei das Verarbeiten der Mehrzahl der I/O Sequenzen aufweist: Ausführen von Operationen an der Vielzahl von I/O Sequenzen, wobei die Operationen die Erzeugung von Übertragungsdaten aus den I/O Sequenzen einschließt; Speichern von Frameinformationen; Übertragen von Daten von einem Speicher zu einem Übertragungsdatenpuffer basierend auf einem DMA Deskriptor; Erzeugen eines oder mehrerer Frames basierend auf der Frameinformation; und Erzeugen einer Frameübertragungsanforderung an den Schaltgeflecht/Controller.
  9. Das Verfahren nach Anspruch 8, wobei das Ausführen von Operationen aufweist: Anforderung einer I/O Sequenz von einem I/O Sequenzplaner; Erzeugen der Prefetchanforderung für die Aufgabenkontextprefetchmaschine; Erzeugen einer I/O Handlungsentscheidung basierend auf dem Aufgabenkontext; Erzeugen des DMA Deskriptors; und Auffrischen des Aufgabenkontextes.
  10. Das Verfahren nach Anspruch 8, wobei das Speichern der Frameinformation aufweist: Speichern eines Framekopfes für die Übertragungsdaten; und Speichern der Übertragungsdaten.
  11. Das Verfahren nach Anspruch 8, wobei das Routen des Frames aufweist: Prüfen des Linkschichtstatus zu einem entfernten Knoten, der eine entfernte Knotenadresse hat; Steuern des Schalters unter Verwendung der Frameübertragungsanforderung; und Übertragen des Frames zu dem entfernten Knoten über den Schalter entsprechend dem Verbindungsstatus und der Adresse des entfernten Knotens.
  12. Das Verfahren nach Anspruch 9, wobei das Erzeugen der I/O Handlungsentscheidung das Erzeugen einer Entscheidung zum Übertragen eines Datenframes und Entscheidung zum Übertragen eines Befehlsrahmens aufweist.
  13. Ein System mit: einer Speichereinheitschnittstelle zum Verbinden mit einer Speichereinheit; einem Eingangs/Ausgangs-Sequenzplaner, der mit der Speichereinheitschnittstelle gekoppelt ist, zum Planen der Verarbeitung einer Mehrzahl von Eingangs/Ausgangs (I/O) Sequenzen aus einem I/O Pool, der der Speichereinheit zugeordnet ist; und eine Multithread-Übertragungstransportmaschine (TTE), die mit der Speichereinheitschnittstelle und dem I/O Sequenzplaner gekoppelt ist, wobei die Multithread TTE aufweist: eine Aufgabenkontextprefetchmaschine zum Prefetchen eines Aufgabenkontextes aus einem Aufgabenkontextspeicher basierend auf einer Prefetchanforderung; eine Multithread-Übertragungstransport (TxTL), die mit der Aufgabenkontextprefetchmaschine gekoppelt ist zum gleichzeitigen Verarbeiten einer Mehrzahl von I/O Sequenzen, wobei die Multithread TxTL, die die Prefetchanforderung und einem Rahmen aus der Mehrzahl von I/O Sequenzen erzeugt und einem Schaltgeflecht/Controller, der mit der Multithread TxTL gekoppelt ist zum Routen des Rahmens zu einer Linkschicht, die der Speichereinheit zugeordnet ist.
  14. Das System nach Anspruch 13, wobei die Multithread TxTL aufweist: eine Übertragungstransportprotokollmaschine (PE) zum Ausführen von Operationen der Mehrzahl von I/O Sequenzen, wobei die Operationen zur Erzeugung von Übertragungsdaten aus den I/O Sequenzen beinhaltet; eine Frameschlange, die mit der Übertragungstransport PE gekoppelt ist zum Speichern von Frameinformation; einer Direct Memory Access (DMA) Maschine, die mit der Übertragungstransport PE gekoppelt ist zum Übertragen von Daten von einem Speicher zu einem Übertragungsdatenpuffer basierend auf einem DMA Deskriptor; und einem Framer, der mit der Datenschlange und dem Übertragungsdatenpuffer gekoppelt ist zum Erzeugen des Frames basierend auf der Frameinformation und zum Erzeugen einer Frameübertragungsanforderung an das Schaltgeflecht und den Controller.
  15. Das System nach Anspruch 14, wobei die Übertragungstransport PE aufweist: einen I/O Anforderer zum Anfordern von einer I/O Sequenz von einem I/O Sequenzplaner; einen Prefetchanforderer zu Überzeugen der Prefetchanforderung für die Aufgabenkontextprefetchmaschine; einen I/O Entscheidungsgenerator zum Erzeugen einer I/O Handlungsentscheidung basierend auf dem Aufgabenkontext; einem DMA Deskritptorerzeuger zum Erzeugen des DMA Deskriptors; und einen Aufgabenkontextupdater zum Auffrischen des Aufgabenkontextes.
  16. Das System nach Anspruch 14, wobei die Frameschlange aufweist: eine Framekopfschlange zum Speichern eines Framekopfes für die Übertragungsdaten; und einer Framedatenschlange zum Speichern der Übertragungsdaten.
  17. Das System nach Anspruch 14, wobei der Schaltgeflecht/Controller aufweist: einen Schalter zum Verbinden der Linkschicht und des wenigstens einem Multithread TxTL; einem Linkschichtmonitor zum Prüfen des Linkschichtstatus zu einem entfernten Knoten, der eine Adresse hat; und einem Controller zum Steuern des Schalters unter Verwendung der Frameübertragungsanforderung und zum Übertragen des Frames an den entfernten Knoten über den Schalter entsprechend dem Status und der Adresse des entfernten Knotens.
  18. Das System nach Anspruch 15, wobei der I/O Entscheidungsgenerator eine Entscheidung zum Übertragen eines Datenframes und eine Entscheidung zum Übertragen eines Befehlframes erzeugt.
  19. Das System nach Anspruch 13, wobei der I/O Sequenzplaner aufweist: einen Zuordner zum Zuordnen einer I/O Sequenz zu dem Multithread TxTL basierend auf einem Linkschichtstatus; und einem Zähler zum Beibehalten der Anzahl von Threads, die für einen entfernten Knoten ausführen.
  20. Das System von Anspruch 13, wobei die Speichereinheit eine aus einem Serial Attached Small Computer System Interface (SAS) Einheit, einem Fiber Channel (FC) Einheit, einer Serial Advanded Technology Attachment (SATA) Einheit, einem Internet Small Computer System Interface (ISCSI) Einheit und einem Host Bus Adapter (HBA) Einheit.
DE112006001590.7T 2005-06-30 2006-06-29 Vorrichtung, Verfahren und System zur Datenverarbeitung auf Transportschichtebene Expired - Fee Related DE112006001590B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/174,197 US8149854B2 (en) 2005-06-30 2005-06-30 Multi-threaded transmit transport engine for storage devices
US11/174,197 2005-06-30
PCT/US2006/025756 WO2007005702A2 (en) 2005-06-30 2006-06-29 Multi-threaded transmit transport engine for storage devices

Publications (2)

Publication Number Publication Date
DE112006001590T5 true DE112006001590T5 (de) 2008-05-08
DE112006001590B4 DE112006001590B4 (de) 2014-11-20

Family

ID=37440612

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006001590.7T Expired - Fee Related DE112006001590B4 (de) 2005-06-30 2006-06-29 Vorrichtung, Verfahren und System zur Datenverarbeitung auf Transportschichtebene

Country Status (4)

Country Link
US (1) US8149854B2 (de)
DE (1) DE112006001590B4 (de)
TW (1) TWI337709B (de)
WO (1) WO2007005702A2 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809068B2 (en) * 2005-12-28 2010-10-05 Intel Corporation Integrated circuit capable of independently operating a plurality of communication channels
US7627744B2 (en) * 2007-05-10 2009-12-01 Nvidia Corporation External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level
US7953878B1 (en) * 2007-10-09 2011-05-31 Netapp, Inc. Multi-threaded internet small computer system interface (iSCSI) socket layer
US8838817B1 (en) 2007-11-07 2014-09-16 Netapp, Inc. Application-controlled network packet classification
US8566833B1 (en) 2008-03-11 2013-10-22 Netapp, Inc. Combined network and application processing in a multiprocessing environment
US8225019B2 (en) * 2008-09-22 2012-07-17 Micron Technology, Inc. SATA mass storage device emulation on a PCIe interface
US8249099B2 (en) * 2009-08-27 2012-08-21 Texas Instruments Incorporated External memory data management with data regrouping and channel look ahead
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8336056B1 (en) 2009-12-22 2012-12-18 Gadir Omar M A Multi-threaded system for data management
US9503375B1 (en) 2010-06-30 2016-11-22 F5 Networks, Inc. Methods for managing traffic in a multi-service environment and devices thereof
US9420049B1 (en) 2010-06-30 2016-08-16 F5 Networks, Inc. Client side human user indicator
EP2710784B1 (de) 2011-05-16 2017-12-06 F5 Networks, Inc Verfahren zum lastausgleich zur anfragenverarbeitung von diameter-servern
US8266342B1 (en) 2011-06-24 2012-09-11 Hitachi, Ltd. Storage system
US8954492B1 (en) 2011-11-30 2015-02-10 F5 Networks, Inc. Methods for inlining content externally referenced in a web page prior to providing the web page to a requestor and devices thereof
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US10097616B2 (en) 2012-04-27 2018-10-09 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
TWI517633B (zh) * 2012-04-30 2016-01-11 新唐科技股份有限公司 路由電路及具有路由電路的電路
US10033837B1 (en) 2012-09-29 2018-07-24 F5 Networks, Inc. System and method for utilizing a data reducing module for dictionary compression of encoded data
US9578090B1 (en) 2012-11-07 2017-02-21 F5 Networks, Inc. Methods for provisioning application delivery service and devices thereof
US9497614B1 (en) 2013-02-28 2016-11-15 F5 Networks, Inc. National traffic steering device for a better control of a specific wireless/LTE network
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US9898349B2 (en) 2015-06-23 2018-02-20 International Business Machines Corporation Management of asynchronous and synchronous resource requests
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10146439B2 (en) * 2016-04-13 2018-12-04 Samsung Electronics Co., Ltd. System and method for high performance lockless scalable target
US10035133B2 (en) * 2016-10-25 2018-07-31 GM Global Technology Operations LLC Catalysts with atomically dispersed platinum group metal complexes and a barrier disposed between the complexes
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10489319B2 (en) * 2016-12-20 2019-11-26 Atmel Corporation Automatic transmission of dummy bits in bus master
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
CN109407970B (zh) * 2018-09-12 2022-02-11 新华三技术有限公司成都分公司 读写请求处理方法、装置及电子设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386532A (en) * 1991-12-30 1995-01-31 Sun Microsystems, Inc. Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels
US5864712A (en) * 1995-03-17 1999-01-26 Lsi Logic Corporation Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment
US6005849A (en) 1997-09-24 1999-12-21 Emulex Corporation Full-duplex communication processor which can be used for fibre channel frames
US6202107B1 (en) * 1998-11-19 2001-03-13 Sun Microsystems, Inc. Host controller interface descriptor fetching unit
US6651117B1 (en) * 1999-11-03 2003-11-18 Adaptec, Inc. Network stack layer interface
US7013353B2 (en) * 2001-03-30 2006-03-14 Intel Corporation Host-fabric adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem
US6965982B2 (en) * 2001-06-29 2005-11-15 International Business Machines Corporation Multithreaded processor efficiency by pre-fetching instructions for a scheduled thread
US6996639B2 (en) * 2002-12-10 2006-02-07 Intel Corporation Configurably prefetching head-of-queue from ring buffers
US7155546B2 (en) 2003-12-18 2006-12-26 Intel Corporation Multiple physical interfaces in a slot of a storage enclosure to support different storage interconnect architectures

Also Published As

Publication number Publication date
DE112006001590B4 (de) 2014-11-20
WO2007005702A2 (en) 2007-01-11
US20070019636A1 (en) 2007-01-25
US8149854B2 (en) 2012-04-03
TWI337709B (en) 2011-02-21
TW200712895A (en) 2007-04-01
WO2007005702A3 (en) 2007-03-29

Similar Documents

Publication Publication Date Title
DE112006001590B4 (de) Vorrichtung, Verfahren und System zur Datenverarbeitung auf Transportschichtebene
DE102012216568B4 (de) Scheduling und Managen von Rechentasks mit unterschiedlichen Ausführungsprioritätsstufen
EP2851807B1 (de) Verfahren und system zur unterstützung einer ressourcenisolierung in einer mehradrigen architektur
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
EP3361386B1 (de) Intelligente bandbreitenskalierung für fernspeicher
DE112016004303T5 (de) Hardware-Vorhersageelement mit geringem Verwaltungsaufwand zur Verringerung der Leistungsumkehr für Kern-zu-Kern-Datenübertragungsoptimierungsbefehle
DE102013200503A1 (de) Virtualisierungs-Support zum Speichern und Wiederherstellen von Zuständen einer Sprungvorhersage-Logik
US20110082965A1 (en) Processor-bus-connected flash storage module
DE102010055267A1 (de) Gemeinsames Benutzen von Ressourcen zwischen einer CPU und GPU
CN107017014B (zh) 用于低能量mcu的动态集装箱化系统存储器保护
CN105190567A (zh) 用于管理存储系统快照的系统和方法
DE112008002634T5 (de) Gerät, System und Verfahren zur systemübergreifenden Proxy-basierten Aufgabenentlastung
DE102013202495A1 (de) Verfahren zur Durchführung von interaktivem Debugging auf nicht unterbrechbaren Graphikverarbeitungseinheiten
DE102012222394A1 (de) Verfahren und Vorrichtung zum Sammelzwischenspeichern von Quelloperanden
DE102012221502A1 (de) System und Verfahren zum Durchführen von gestalteter-Speicherzugriff-Operationen
DE102013209643B4 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
JP2002117002A (ja) 共用型ペリフェラルアーキテクチャ
DE112013001361T5 (de) Bereitstellung Snoop-Filterung zugeordnet mit einem Datenpuffer
JP2005056077A (ja) データベース制御方法
US20180329628A1 (en) Memory transaction prioritization
US9817754B2 (en) Flash memory management
US11556391B2 (en) CPU utilization for service level I/O scheduling
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
US8028017B2 (en) Virtual controllers with a large data center
US10331581B2 (en) Virtual channel and resource assignment

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 9/46 AFI20060629BHDE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee