DE112006000634T5 - Verfahren und Vorrichtung zur unabhängigen und gleichzeitigen Datenübertragung auf Host-Controller - Google Patents

Verfahren und Vorrichtung zur unabhängigen und gleichzeitigen Datenübertragung auf Host-Controller Download PDF

Info

Publication number
DE112006000634T5
DE112006000634T5 DE112006000634T DE112006000634T DE112006000634T5 DE 112006000634 T5 DE112006000634 T5 DE 112006000634T5 DE 112006000634 T DE112006000634 T DE 112006000634T DE 112006000634 T DE112006000634 T DE 112006000634T DE 112006000634 T5 DE112006000634 T5 DE 112006000634T5
Authority
DE
Germany
Prior art keywords
register
serial port
serial
data
access
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.)
Ceased
Application number
DE112006000634T
Other languages
English (en)
Inventor
Eng Georgetown Ooi
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 DE112006000634T5 publication Critical patent/DE112006000634T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Vorrichtung, umfassend:
einen ersten Host-Controller, der die Schnittstelle zu einer ersten Festplatte bildet, wobei für eine erste Datenübertragungsoperation vor anderen Registern im ersten Host-Controller ein Einrichtungsbit in ein Device/Head-Register im ersten Host-Controller geschrieben wird, und
auf der Grundlage der in das Device/Head-Register im ersten Host-Controller geschriebenen Daten Übertragungsdaten in ein anderes Register im ersten Host-Controller geschrieben werden.

Description

  • Diese Erfindung betrifft eine Speicherschnittstelle. Insbesondere betrifft die Erfindung eine Schnittstelle zu Host-Controllern.
  • Beschreibung verwandter Technik
  • Speichervorrichtungen, wie etwa Diskettenlaufwerke, Festplatten und CD-ROM-Laufwerke sind üblicherweise durch eine Integrated Drive Electronics- (IDE-)Schnittstelle, auch Advanced Technology Attachment (ATA) genannt, mit einem Rechner verbunden. Paralleles ATA ermöglicht es bis zu zwei Vorrichtungen, unter Verwendung eines Master/Slave-Datenaustauschverfahrens mit einem einzigen Anschluß verbunden zu sein. Eine ATA-Vorrichtung ist als Master konfiguriert und die andere als Slave. Diese Konfiguration ermöglicht es, daß der Controller einer Vorrichtung der anderen Vorrichtung sagt, wann sie Daten an den oder von dem Rechner übertragen kann. Beide Vorrichtungen sind über ein Flachbandkabel in Reihe geschaltet (daisy-chained), das ein Multidrop-Bus ohne Abschlußwiderstand ist. Dieser Bus oder diese Verbindung wird üblicherweise als paralleler Kanal bezeichnet. Zusätzlich kann ein Personal Computer (PC) zwei parallele ATA-Kanäle haben: einen primären Kanal und einen sekundären Kanal.
  • Die parallele ATA-Schnittstelle gibt es in im Wesentlichen gleicher Form seit 1989 und sie wurde zur in den größten Mengen gefertigten Diskettenlaufwerkvorrichtung. Wenn der Bedarf nach höherer Übertragungs- und Speicherbandbreite jedoch steigt, nähert sich das parallele ATA seiner Leistungsgrenze. Serielles ATA wurde eingeführt, um paralleles ATA zu ersetzen. Serielles ATA verbindet jede der Vorrichtungen mit einzelnen Kabeln auf eine Punkt-zu-Punkt-Weise. Die Vorteile von seriellem ATA umfassen hohe Datenübertragungsraten bis zu 150 MB/s (im Vergleich zu 100 MB/s für paralleles ATA), niedrige Kosten, leichte Installation und Konfiguration, und niedrige Anschlußzahl, usw.
  • Wegen der derzeit existierenden großen Menge von parallelem ATA kann der Übergang von parallelem ATA zu seriellem ATA jedoch ein Problem sein. Um Übergangskosten zu vermeiden und einfache Migrationswege bereitzustellen, wurden Software-Treiber für paralleles ATA abgewandelt, um seriellem ATA Rechnung zu tragen, und eine neue Schnittstelle für serielles ATA wurde so konstruiert, daß sie mit parallelen ATA-Vorrichtungen kompatibel ist. Zum Beispiel ist der Hardware-Emulator eine Hardware-Schaltung, die für den Treiber für paralleles ATA transparent arbeitet, so daß der Treiber für paralleles ATA die seriellen ATA-Vorrichtungen steuern kann, als wären sie parallele ATA-Vorrichtungen. Bei der Verwendung von seriellen ATA-Vorrichtungen mit einem Treiber für paralleles ATA gibt es Bedarf nach unabhängiger und gleichzeitiger Datenübertragung.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden ausführlichen Beschreibung der vorliegenden Erfindung deutlich. Es ist:
  • 1 ein Diagramm, das ein System darstellt, in dem eine erfindungsgemäße Ausführungsform genutzt werden kann.
  • 2 ein Diagramm, das einen in 1 dargestellten ATA-Controller darstellt, der einen Hardware-Emulator verwendet.
  • 3 ein Diagramm, das einen Emulator in einem in 2 dargestellten ATA-Controller darstellt.
  • 4 ein Flußdiagramm, das einen Prozeß zur Emulation einer Reaktion von einem parallelen Kanal auf der Grundlage einer Zugriffsart gemäß einer erfindungsgemäßen Ausführungsform darstellt.
  • 5 ein Flußdiagramm, das einen Prozeß zur Emulation einer Reaktion darstellt, wenn die Zugriffsart eine erste Zugriffsart gemäß einer erfindungsgemäßen Ausführungsform ist.
  • 6 eine Flußdiagrammdarstellung einer Ausführungsform einer Software-Programmierungsfolge in Bezug auf die Einstellung des DEV-Bits.
  • BESCHREIBUNG
  • In der folgenden Beschreibung werden zum Zweck der Erklärung zahlreiche Einzelheiten dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Dem Fachmann wird jedoch deutlich, daß die speziellen Einzelheiten nicht erforderlich sind, um die vorliegende Erfindung zu nutzen. In anderen Fällen werden bekannte elektrische Strukturen und Schaltungen in Form eines Blockschaltbilds dargestellt, um die vorliegende Erfindung nicht zu verdecken.
  • 1 ist ein Diagramm, das ein Rechnersystem 100 darstellt, in dem eine erfindungsgemäße Ausführungsform genutzt werden kann. Das Rechnersystem 100 enthält einen Prozessor 110, eine Verbindung 120, einen Memory Controller Hub (MCH) 130, einen Basic Input/Output System-Speicher 135, einen Systemspeicher 140, einen Input/Output Controller Hub (ICH) 150, serielle ATA-Einrichtungen 176 und 178, eine Massenspeichereinrichtung 170 und Eingabe-/Ausgabe-Einrichtungen 1801 bis 180K.
  • Der Prozessor 110 stellt eine Zentraleinheit jeder Art von Architektur dar, wie etwa eingebettete Prozessoren, Mikro-Controller, digitale Signalprozessoren, superskalare Rechner, Vektorprozessoren, Single Instruction Multiple Data (SIMD)-Rechner, Rechner mit komplexem Befehlssatz (Complex Instruction Set Computers (CISC)), Rechner mit reduziertem Befehlssatz (Reduced Instruction Set Computers (RISC)), Very Long Instruction Word (VLIW) oder gemischte Architektur. In einer Ausführungsform ist der Prozessor 110 mit dem Intel-Architektur (IA)-Prozessor, wie etwa mit dem IA-32 und dem IA-64, kompatibel. Der Prozessor 110 umfaßt typischerweise eine Anzahl von Steuerregistern, um Speicherverwaltungsaufgaben, wie etwa virtuellen Speicher und Cache-Speicher, zu unterstützen. Diese Aufgaben können Paging und Segmentierung umfassen. Der Chip mit dem Prozessor 110 kann nur einen Prozessorkern oder mehr als einen Prozessorkern haben. Die Verbindung 120 stellt Schnittstellensignale bereit, um dem Prozessor 110 zu ermöglichen, mit anderen Prozessoren oder Einrichtungen, z.B. dem MCH 130, zu kommunizieren. Die Verbindung 120 kann eine Konfiguration mit einem Prozessor oder mit mehreren Prozessoren unterstützen. Die Verbindung 120 kann parallel, sequentiell, mit Pipeline-Verarbeitung, asynchron, synchron oder jede Kombination davon sein. Die Verbindung 120 kann Punkt-zu-Punkt sein oder kann mit mehr als zwei Chips verbunden sein.
  • Der MCH 130 stellt Steuerung und Konfiguration von Speicher und Eingabe-/Ausgabe-Einrichtungen, wie etwa dem Systemspeicher 140 und dem ICH 150 bereit. Der MCH 130 kann in einen Chipsatz integriert sein, der mehrere Funktionen integriert, wie etwa den abgeschotteten Ausführungsmodus, Host-zur-Peripheriebusschnittstelle, Speichersteuerung. Zur Verdeutlichung sind nicht alle Peripheriebusse dargestellt. Es ist vorgesehen, daß auch das System 100 Peripheriebusse, wie etwa Peripheral Component Interconnect (PCI), Accelerated Graphics Port (AGP), Industry Standard Architecture (ISA) und Universal Serial Bus (USB) usw. umfaßt. In einer Ausführungsform kann der MCH 130 im selben Chip sein wie der Prozessor 110. In manchen Ausführungsformen kann derselbe MCH 130 für alle Kerne oder Prozessoren in dem Chip mit den Prozessoren arbeiten. In anderen Ausführungsformen kann der MCH 130 verschiedene Teile umfassen, die getrennt für verschiedene Kerne oder Prozessoren in dem Chip mit den Prozessoren arbeiten.
  • Der BIOS-Speicher 135 speichert Startcode und Startdaten. Der BIOS-Speicher 135 ist normalerweise mit nicht flüchtigem Speicher implementiert, wie etwa Festwertspeicher (ROM), Flashspeicher und anderen ähnlichen Speichern. Der BIOS-Speicher 135 kann auch im Inneren des MCH 130 gespeichert sein. Der BIOS-Speicher 135 kann einen Treiber 138 für paralleles ATA enthalten, um die seriellen ATA-Einrichtungen 176 und 178 über den ICH 150 zu steuern.
  • Der Systemspeicher 140 speichert Systemcode und Systemdaten. Der Systemspeicher 140 wird normalerweise mit dynamischem Random Access Memory (DRAM) oder statischem Random Access Memory (SRAM) umgesetzt. Andere Arten von Speicher können verwendet werden, einschließlich solchen, die nicht aufgefrischt werden müssen. Der Systemspeicher kann Programmcode oder Codesegmente enthalten, die eine erfindungsgemäße Ausführungsform implementieren. Der Systemspeicher kann auch einen Treiber 145 für paralleles ATA umfassen. Der Treiber 145 für paralleles ATA kann Teil eines Betriebssystems (OS) oder eines Anwendungsprogramms sein. Der Treiber 145 für paralleles ATA greift über den ICH 150 auf die seriellen ATA-Einrichtungen 176 und 178 zu. Der Treiber 138 für paralleles ATA im BIOS-Speicher 135 und der Treiber 145 für paralleles ATA im Speicher 140 können nebeneinander bestehen oder nicht.
  • Der ICH 150 hat eine Anzahl von Funktionen, die konstruiert sind, Eingabe-/Ausgabefunktionen zu unterstützen. Der ICH 150 kann auch zusammen mit dem MCH 130 oder von diesem getrennt in einen Chipsatz integriert sein, um Eingabe-/Ausgabefunktionen auszuführen. Der ICH 150 kann eine Anzahl von Schnittstellen- und Eingabe-/Ausgabefunktionen umfassen, wie etwa PCI-Bus-Schnittstelle, Prozessorschnittstelle, Interrupt Controller, Direct Memory Access (DMA)-Controller, Energiesparlogik, Zeitgeber, Universal Serial Bus (USB)-Schnittstelle, Massenspeicherschnittstelle, Low Pin Count (LPC)-Schnittstelle usw. Insbesondere umfaßt der ICH 150 einen ATA-Controller 155, um die seriellen ATA-Einrichtungen 176 und 178 zu steuern. Der ATA-Controller 155 hat einen Hardware-Emulator für umgekehrte Kompatibilität mit den Treibern für paralleles ATA. Der ATA-Controller 155 stellt einen Übergangsweg für Kunden bereit, um die serielle ATA-Schnittstelle zu nutzen und dabei die bestehenden Treiber für paralleles ATA zu verwenden.
  • Die seriellen ATA-Einrichtungen 176 und 178 sind Massenspeichereinrichtungen oder eine Festplatte, um Archivinformationen zu speichern, wie etwa Programme, Dateien, Daten, Anwendung, Betriebssysteme usw. Die seriellen ATA-Einrichtungen 176 und 178 sind mit dem Controller 155 des Festplattenlaufwerks über serielle ATA-Schnittstellensignale 179 verbunden. Die Schnittstelle, Protokolle und Standards für serielles ATA folgen dem vorgeschlagenen Entwurf „Serial ATA/High Speed Serialized AT Attachment" von der Serial ATA Workgroup, Revision 1.0.0.1, veröffentlicht am 9. April 2001. Die Massenspeichereinrichtung 170 speichert weitere Archivinformationen. Die Massenspeichereinrichtung 170 kann Compact Disc (CD) ROM 172, Disketten 174 und Festplattenlaufwerk 176 und jede andere magnetische oder optische Speichereinrichtung umfassen. Die Massenspeichereinrichtung 170 stellt einen Mechanismus bereit, um maschinenlesbare Medien zu lesen.
  • Die Eingabe-/Ausgabeeinrichtungen 1801 bis 180K können jede Eingabe-/Ausgabeeinrichtung umfassen, um Eingabe-/Ausgabefunktionen auszuführen. Beispiele für Eingabe-/Ausgabeeinrichtungen 1801 bis 180K umfassen Controller für Eingabeeinrichtungen (z.B. Tastatur, Maus, Rollkugel, Zeigeeinrichtung), Medienkarte (z.B. Audio, Video, Graphik), Netzwerkkarte und andere Peripheriecontroller.
  • In einer parallelen ATA-Schnittstelle präsentiert die Slave-Einrichtung nach einem Einschaltvorgang, einem Hardware- oder Software-Neustart oder nach Ausführung eines Befehls zur Diagnose der vollziehenden Einrichtung (Executive Device Diagnostic command) der Master-Einrichtung den diagnostischen Status über eine PDIAG-Leitung im ATA-Flachbandkabel. Durch Beobachten des Status auf dem PDIAG-Signal aktualisiert die Master-Einrichtung die Status- und Fehlerregister entsprechend. Für eine serielle ATA-Schnittstelle gibt es einen derartigen direkten Datenaustausch zwischen den zwei seriellen ATA-Einrichtungen nicht. Zusätzlich beobachten in einer parallelen ATA-Schnittstelle beide ATA-Einrichtungen auf demselben Kanal die Signalaktivität auf dem Kabel. Zum Beispiel wird der Schreibzugriff auf die ATA-Befehlsblockregister (außer die Daten- und Befehlsregister) von beiden Einrichtungen gesehen und akzeptiert.
  • Um das Zusammenspiel zu imitieren, das für den Treiber 138 für paralleles ATA sichtbar ist, leitet der Emulator in dem ATA-Controller 155 Software-Zugriffe weiter und verarbeitet sie auf beiden seriellen ATA-Einrichtungen 176 und 178, die auf virtuellem ATA-Kanal als parallele ATA-Einrichtungen abgebildet werden. Zusätzlich leitet der Emulator auch die Unterbrechung der seriellen ATA-Einrichtungen an entweder Unterbrechungsanforderung IRQ 14 oder Unterbrechungsanforderung IRQ 15.
  • 2 ist ein Diagramm, das den ATA-Controller 155 darstellt, der einen Hardware-Emulator 210 verwendet. Der ATA-Controller 155 umfaßt einen Emulator 210 und serielle ATA-Host-Controller (1 und 2) 220 und 230. Der Emulator 210 emuliert eine Reaktion einer parallelen ATA-Einrichtung, wenn er mit dem Treiber 138 für paralleles ATA interagiert. Der Emulator 210 ist eine Hardware-Schaltung, die transparent für den Treiber 138 für paralleles ATA arbeitet, so daß der Treiber 138 für paralleles ATA die seriellen ATA-Einrichtungen 176 und 178 immer noch steuern kann, als ob sie parallele ATA-Einrichtungen wären. Der Emulator 210 kann ausgeschaltet werden, wenn der ATA-Treiber direkt für die seriellen ATA-Einrichtungen 176 und 178 geschrieben ist.
  • Die seriellen ATA-Host-Controller 220 und 230, die auch als die seriellen Ports bezeichnet werden, enthalten Register, Steuerschaltungen und Schnittstellenschaltungen für die seriellen ATA-Einrichtungen 176 bzw. 178. Insbesondere enthalten die seriellen ATA-Host-Controller 220 und 230 die Anforderungspakete der seriellen Ports (1 und 2) 225 bzw. 235, die die Betriebsregister enthalten, die die entsprechenden seriellen ATA-Einrichtungen 176 und 178 steuern und konfigurieren. Ein derartiges in der ATA-Spezifikation beschriebenes Register ist das Device/Head-Register, das die Nummern für die Einrichtung und den Kopf enthält.
  • Der Emulator 210 wählt über die Auswahlsignale für Port 1 oder Port 2 einen seriellen Port als dem parallelen Kanal zugeordneten aus. Der Emulator 210 schreibt Daten über den Datenschreibsignalweg auf den ausgewählten seriellen Port und liest über die entsprechenden Datenlesesignalwege Daten aus dem ausgewählten seriellen Port. Die seriellen ATA-Host-Controller 220 und 230 stellen dem Emulator 210 die Status- und Fehlerzustände bereit.
  • 3 ist ein Diagramm, das den Emulator 210 in dem in 2 dargestellten ATA-Controller darstellt. Der Emulator 210 umfaßt einen Zugriffsdetektor 310, eine Zuordnungsschaltung 320, eine Emulationszustandsmaschine 330, einen emulierten Registersatz des Anforderungspakets (emulated task file register set) 340 und einen Wähler des seriellen Ports 350. Der Zugriffsdetektor 310 erkennt eine Zugriffsart eines Zugriffs auf einen der beiden seriellen Ports 220 und 230, die die Schnittstelle zu den seriellen Speichereinrichtungen 176 und 178 bilden. Der Zugriff wird durch den Treiber für paralleles ATA 138 bereitgestellt und ist für einen der parallelen Kanäle vorgesehen, die über die Register der parallelen Kanäle die Schnittstelle zu den parallelen Speichereinrichtungen bilden.
  • Die Zuordnungsschaltung 320 ordnet die seriellen Ports den parallelen Kanälen zu. Die Zuordnung kann durch eine Adressenübersetzung durchgeführt werden. Ein serieller Port kann auch gemäß einem Einrichtungs- (DEV-) Bit in dem Einrichtung/Kopf (Device/Head)-Register einem parallelen Master- oder Slavekanal zugeordnet werden.
  • Die Emulationszustandsmaschine 330 emuliert eine Reaktion von einem der parallelen Kanäle auf der Grundlage der Zugriffsart, die durch den Zugriffsdetektor 310 erkannt wurde, und des zugeordneten seriellen Ports, der durch die Zuordnungsschaltung 320 bereitgestellt wurde. Die Zustandsmaschine 330 umfaßt eine Anzahl von Zuständen, um eine Folge von Operationen gemäß der Zugriffsart auszuführen. Zum Beispiel gibt es mehrere Zustande, die Emulation der Reaktion gemäß verschiedenen Zugriffsarten entsprechen, und einen Unterbrechungszustand, der Emulation von Unterbrechungserzeugung entspricht.
  • Der emulierte Registersatz 340 des Anforderungspakets (emulated task file register set) emuliert die Anforderungspaketregister der parallelen Kanäle. Diese Register können Informationen über die Einrichtung (DEV), belegte Bits (BSY) und das Fehlerregister umfassen.
  • Der Wähler 350 des seriellen Ports (Serial Port selector) wählt eine der seriellen Ports 220 und 230 auf der Grundlage der zugeordneten seriellen Ports, die durch die Zuordnungsschaltung 320 zugeordnet wurden. Wenn zum Beispiel der Treiber 138 für paralleles ATA einen Zugriff auf einen parallelen Kanal erzeugt, kann die Zuordnungsschaltung 320 die Adresse des parallelen Kanals in einen seriellen Port übersetzen. Alternativ kann die Zuordnungsschaltung 320 gemäß einem Einrichtungs- (DEV-) Bit in dem Device/Head-Register zuordnen. Diese Zuordnungsinformation wird an den Wähler 350 des seriellen Ports direkt oder über die Zustandsmaschine 330 weitergeleitet, um den entsprechenden seriellen Port zu wählen. Die Auswahl kann durch Einschalten des ausgewählten seriellen ATA-Host-Controllers 220 oder 230 ausgeführt werden.
  • 4 ist ein Flußdiagramm, das einen Prozeß 400 zur Emulation einer Reaktion von einem parallelen Kanal auf der Grundlage einer Zugriffsart darstellt. Bei START erkennt der Prozeß 400 einen Zugriff auf den seriellen ATA-Port, der einem parallelen Kanal entweder als Master- oder als Slavekanal zugeordnet ist (Block 410). Der Zugriff erfolgt durch den Treiber 138 für paralleles ATA. Dann bestimmt der Prozeß 400 die Art des Zugriffs (Block 420). Dies kann durch Entschlüsseln der Zugriffsinformationen erfolgen, wie etwa Adressen und Lese-/Schreibinformation. Die Zugriffsart kann eine von mehreren Zugriffsarten sein.
  • Der Prozeß 400 bestimmt, ob der Zugriff eine erste Zugriffsart ist, so daß es ein erstes Lesen von einem Busmasterregister (BM-IDE), von einem Nicht-Daten-Befehlsregister und von einem Einrichtungssteuerregister ist (Block 430). Der Zugriff kann auch ein erstes Schreiben auf eines von einem Busmasterregister (BM-DIE) sein, ausgenommen das Setzen eines START-Bits des Busmasterbefehlsregisters auf eine logische „1", von einem Nicht-Daten-Befehlsregister und von einem Einrichtungssteuerregister ist (Block 430). Wenn dies der Fall ist, emuliert der Prozeß 400 eine erste Zugriffsart (Block 435) und wird dann beendet. Ansonsten bestimmt der Prozeß 400, daß der Zugriff eine andere Zugriffsart ist (Block 440) und emuliert die andere Zugriffsart (Block 445). Die andere Zugriffsart kann ein Zugriff auf ein Device/Head-Register sein oder ein Lesezugriff auf ein Zustandsregister, ein Ausweichregister oder ein Fehlerregister eines ausgewählten seriellen Ports, der einem parallelen Slavekanal zugeordnet ist, nach einem Einschaltvorgang, einem Hardware- oder Software-Neustart oder einem Ausführen des Einrichtungsdiagnosebefehls. Die andere Zugriffsart kann auch ein Lesezugriff auf ein Zustandsregister oder ein Ausweichregister eines ausgewählten seriellen Ports sein, der einem parallelen Masterkanal zugeordnet ist, nach einem Einschaltvorgang, Hardware- oder Software-Neustart oder einem Ausführen des Einrichtungsdiagnosebefehls. Die andere Zugriffsart kann auch ein Lesezugriff auf ein Fehlerregister eines seriellen Ports sein, der einem parallelen Masterkanal zugeordnet ist, nach einem Einschaltvorgang, Hardware- oder Software-Neustart oder einem Ausführen des Einrichtungsdiagnosebefehls.
  • Um einen Befehl in einer seriellen SATA-Einrichtung 176 oder 178 zu installieren, führt der jeweilige Host-Controller 220 oder 230 normalerweise eine Folge von Ereignissen aus. Er liest ein Zustandsregister, um zu bestimmen, daß der Kanal nicht belegt ist. Er schreibt das Device/Head-Register, um zu gewährleisten, daß die richtige Einrichtung gewählt wird. Er schreibt ein Sector Count-Register, um die Anzahl der zu übertragenden Selektoren anzuzeigen. Er schreibt ein Sector Number-Register, um einen Teil einer Logischen Blockadressierungs- (LBA-) Adresse zu laden. Er schreibt ein Cylinder Low-Register, um einen Teil der LBA-Adresse zu laden. Er schreibt ein Cylinder High-Register, um einenTeil der LBA-Adresse zu laden. Er schreibt das Command-Register mit dem Befehl, der in vier Phasen ausgeführt werden soll: Absendung, Start Eingabe/Ausgabe, Unterbrechungsanforderung IRQ und Fertigstellung.
  • Die Befehle vom Host werden nach der Auswahl von der ausgewählten seriellen ATA-Einrichtung empfangen. Der Host-Controller unterscheidet zwischen den zwei Einrichtungen durch Verwendung des DEV-Bits im Device/Head-Register. Der DEV-Bit wird programmiert, um anzuzeigen, von oder an welche Einrichtung er Daten übertragen möchte. Eine „0" wählt Einrichtung 0, die als Mastereinrichtung bezeichnet werden kann. Ansonsten wählt das DEV-Bit Einrichtung 1, die als Slaveeinrichtung bezeichnet werden kann. Beim herkömmlichen Controllerbetrieb gehen die Registerinhalte jedoch an beide Einrichtungen und deren Controller. Entsprechend werden im herkömmlichen Controllerbetrieb die Registerschreibzugriffe an das Anforderungspaketregister von sowohl Master- als auch Slaveeinrichtung 225 und 236 und die BM-IDE-Register weitergeleitet.
  • 5 ist ein Flußdiagramm, das einen Prozeß 435 zur Emulation einer Reaktion gemäß einer erfindungsgemäßen Ausführungsform darstellt, wenn die Zugriffsart die erste Zugriffsart ist. Der Prozeß 435 wird durch den ersten Zustand in der in 3 dargestellten Zustandsmaschine 330 ausgeführt. Bei START bestimmt der Prozeß 435, ob der Zugriff ein Schreibzugriff ist (Block 510). In einer Ausführungsform der vorliegenden Erfindung wird das DEV-Bit vor jedem zugehörigen Schreibzugriff auf das BM-IDE-Register oder die Anforderungspakete 225 oder 235 geschrieben. Wenn das DEV-Bit gleich Null ist, wird Einrichtung 0 ausgewählt. Wenn das DEV-Bit gleich Eins ist, wird Einrichtung 1 ausgewählt.
  • Entsprechend hat die Emulations-Hardware einen Modus, in dem sie die Schreibzyklen nicht sowohl an Master- als auch Slave-BM-EDI-Register und Schatten-Anforderungspakete (shadow task files) weiterleitet. Statt dessen werden die Schreibzyklen an die spezielle Einrichtung gemäß dem DEV-Bit weitergeleitet. Dies ist anders als beim herkömmlichen Betrieb, bei dem der Emulator den Schreibzyklus an die Anforderungspaketregister von sowohl Master- als Slaveeinrichtung und die BM-DIE-Eingabe-/Ausgaberegister weiterleitet.
  • Wenn der Zugriff ein Schreibzugriff ist, schreibt der Prozeß 435 die Daten an den ausgewählten seriellen Port, der gemäß dem Einrichtungs- (DEV-) Bit dem parallelen Kanal zugeordnet ist (Block 515) und wird dann beendet. Auf der Grundlage des Schreibzyklus wird eher der Host-Registersatz der gewählten Einrichtung gesetzt, als beide Host-Registersätze zu setzen. Entsprechend wird auf die Master- und Slave-ATA-Einrichtungen zugegriffen, als seien sie vollständig unabhängig voneinander. Also kann gleichzeitige und unabhängige Datenübertragung auf zwei Treibern für serielles ATA ausgeführt werden, die dem Treiber für paralleles ATA als Master- und Slavetreiber erscheinen. Ansonsten, wenn der Zugriff ein Lesezugriff ist, liest der Prozeß 435 die Daten aus dem ausgewählten seriellen Port, der gemäß dem Einrichtungs- (DEV-) Bit dem parallelen Kanal zugeordnet ist (Block 520). Dann sendet der Prozeß 435 die Lesedaten an den Zugriffsanforderer zurück und wird dann beendet.
  • 6 ist eine Darstellung einer Ausführungsform einer Software-Programmierungsfolge, um die Einstellung des DEV-Bits auszuführen. In Block 610 schreibt der Prozeß 600 in das DEV-Bit des Device/Head-Registers des seriellen Ports, das der gewählten Einrichtung entspricht. In Block 620 programmiert der Prozeß 600 andere BM-IDE-Register und zugehörige Anforderungspaketregister. In einer Ausführungsform schreibt der Prozeß 600 in die BM-IDE- und die Anforderungspaketregister, die dem gewählten seriellen Port zugeordnet sind. In Block 630 programmiert der Prozeß 600 das Command-Register des Anforderungspakets und setzt das Startbit des BM-IDE-Command-Registers. In Block 640 schreibt der Prozeß 600 einen anderen Wert in das DEV-Bit des Device/Head-Registers. In Block 650 programmiert der Prozeß 600 andere BM-IDE-Register und zugehörige Anforderungspaketregister, wenn notwendig. In Block 660 programmiert der Prozeß 600 das Command-Register des Anforderungspakets und setzt das Startbit des BM-IDE-Command-Registers vor dem Beenden.
  • Obwohl diese Erfindung unter Bezugnahme auf Ausführungsbeispiele beschrieben wurde, ist nicht beabsichtigt, daß diese Beschreibung in einem einschränkenden Sinn verstanden wird. Zahlreiche Abwandlungen der Ausführungsbeispiele sowie andere erfindungsgemäße Ausführungsformen, die Fachleuten auf dem Gebiet, das die Erfindung betrifft, deutlich sind, gelten als innerhalb der Idee und des Geltungsbereichs der Erfindung. Obwohl zum Beispiel die obige Beschreibung serielle und parallele ATA-Schnittstellen betrifft, kann das Verfahren auf jede Punkt-zu-Punkt-Schnittstelle angewandt werden.
  • Die vorliegende Erfindung kann durch Hardware, Software, Firmware, Mikrocode oder jede Kombination davon umgesetzt werden. Wenn sie in Software, Firmware oder Mikrocode umgesetzt wird, sind die Elemente der vorliegenden Erfindung der Programmcode Erfindung der Programmcode oder Codesegmente, um die notwendigen Aufgaben auszuführen. Ein Codesegment kann eine Prozedur, eine Funktion, ein Unterprogramm, ein Programm, eine Routine, eine Subroutine, ein Modul, ein Softwarepaket, eine Klasse oder jede Kombination von Befehlen, Datenstrukturen oder Programmaussagen darstellen. Ein Codesegment kann durch Weiterleiten und/oder Empfangen von Informationen, Daten, Argumenten, Parametern oder Speicherinhalten an ein anderes Codesegment oder eine Hardware-Schaltung gekoppelt sein. Informationen, Argumente, Parameter, Daten usw. können durch alle geeigneten Mittel einschließlich gemeinsame Speicherbenutzung, Nachrichtenweitergabe, Token-Weitergabe, Netzwerkübertragung usw. weitergegeben, weitergeleitet oder übertragen werden. Das Programm oder die Codesegmente können in einem prozessorlesbaren Medium gespeichert oder über ein Übertragungsmedium durch ein in einer Trägerwelle verkörpertes Rechnerdatensignal oder ein durch eine Trägerfrequenz moduliertes Signal übertragen werden. Das „prozessorlesbare Medium" kann jedes Medium umfassen, das Informationen speichern oder übertragen kann. Beispiele des prozessorlesbaren Mediums umfassen eine elektronische Schaltung, eine Halbleiterspeichereinrichtung, ein ROM, einen Flash-Speicher, ein löschbares ROM (EROM), eine Diskette, eine Compact-Disc (CD-ROM), einen optischen Speicher, eine Festplatte, ein Glasfasermedium, eine Hochfrequenz- (HF-) Verbindung usw. Das Rechnerdatensignal kann jedes Signal umfassen, das sich über ein Übertragungsmedium fortpflanzen kann, wie z.B. Kanäle eines elektronischen Netzes, Glasfasern, Luft, elektromagnetisch, HF-Verbindungen usw. Die Codesegmente können über Rechnernetze, wie etwa das Internet, Intranet usw., herunter geladen werden.
  • Es ist zu beachten, daß die Erfindung als ein Prozeß beschrieben werden kann, der üblicherweise als ein Ablaufdiagramm, ein Flußdiagramm, ein Strukturdiagramm oder ein Blockschaltbild dargestellt wird. Obwohl ein Ablaufdiagramm die Operationen als sequentiellen Prozeß beschreiben kann, können viele der Operationen parallel oder gleichzeitig ausgeführt werden. Außerdem kann die Reihenfolge der Operationen geändert werden. Ein Prozeß wird beendet, wenn seine Operationen abgeschlossen sind. Ein Prozeß kann einem Verfahren, einer Funktion, einem Ablauf, einer Subroutine, einem oder Codesegmente, um die notwendigen Aufgaben auszuführen. Ein Codesegment kann eine Prozedur, eine Funktion, ein Unterprogramm, ein Programm, eine Routine, eine Subroutine, ein Modul, ein Softwarepaket, eine Klasse oder jede Kombination von Befehlen, Datenstrukturen oder Programmaussagen darstellen. Ein Codesegment kann durch Weiterleiten und/oder Empfangen von Informationen, Daten, Argumenten, Parametern oder Speicherinhalten an ein anderes Codesegment oder eine Hardware-Schaltung gekoppelt sein. Informationen, Argumente, Parameter, Daten usw. können durch alle geeigneten Mittel einschließlich gemeinsame Speicherbenutzung, Nachrichtenweitergabe, Token-Weitergabe, Netzwerkübertragung usw. weitergegeben, weitergeleitet oder übertragen werden. Das Programm oder die Codesegmente können in einem prozessorlesbaren Medium gespeichert oder über ein Übertragungsmedium durch ein in einer Trägerwelle verkörpertes Rechnerdatensignal oder ein durch eine Trägerfrequenz moduliertes Signal übertragen werden. Das „prozessorlesbare Medium" kann jedes Medium umfassen, das Informationen speichern oder übertragen kann. Beispiele des prozessorlesbaren Mediums umfassen eine elektronische Schaltung, eine Halbleiterspeichereinrichtung, ein ROM, einen Flash-Speicher, ein löschbares ROM (EROM), eine Diskette, eine Compact-Disc (CD-ROM), einen optischen Speicher, eine Festplatte, ein Glasfasermedium, eine Hochfrequenz- (HF-) Verbindung usw. Das Rechnerdatensignal kann jedes Signal umfassen, das sich über ein Übertragungsmedium fortpflanzen kann, wie z.B. Kanäle eines elektronischen Netzes, Glasfasern, Luft, elektromagnetisch, HF-Verbindungen usw. Die Codesegmente können über Rechnernetze, wie etwa das Internet, Intranet usw., herunter geladen werden.
  • Es ist zu beachten, daß die Erfindung als ein Prozeß beschrieben werden kann, der üblicherweise als ein Ablaufdiagramm, ein Flußdiagramm, ein Strukturdiagramm oder ein Blockschaltbild dargestellt wird. Obwohl ein Ablaufdiagramm die Operationen als sequentiellen Prozeß beschreiben kann, können viele der Operationen parallel oder gleichzeitig ausgeführt werden. Außerdem kann die Reihenfolge der Operationen geändert werden. Ein Prozeß wird beendet, wenn seine Operationen abgeschlossen sind. Ein Prozeß kann einem Verfahren, einer Funktion, einem Ablauf, einer Subroutine, einem Unterprogramm usw. entsprechen. Wenn ein Programm einer Funktion entspricht, entspricht seine Beendigung einer Rückkehr zu der abrufenden Funktion oder Hauptfunktion.
  • Zusammenfassung
  • Ein Zugriffsdetektor erkennt eine Zugriffsart eines Zugriffs auf einen von einer Mehrzahl von seriellen Ports, die die Schnittstelle zu seriellen Speichereinrichtungen bilden. Der Zugriff ist für einen von einer Mehrzahl von parallelen Kanälen vorgesehen, die über Anforderungspaketregister der parallelen Kanäle die Schnittstelle zu den parallelen Speichereinrichtungen bilden. Eine Zuordnungsschaltung ordnet die seriellen Ports den parallelen Kanälen zu. Eine Zustandsmaschine emuliert eine Reaktion von dem einen der parallelen Kanäle auf der Grundlage der Zugriffsart und der zugeordneten seriellen Ports.

Claims (20)

  1. Vorrichtung, umfassend: einen ersten Host-Controller, der die Schnittstelle zu einer ersten Festplatte bildet, wobei für eine erste Datenübertragungsoperation vor anderen Registern im ersten Host-Controller ein Einrichtungsbit in ein Device/Head-Register im ersten Host-Controller geschrieben wird, und auf der Grundlage der in das Device/Head-Register im ersten Host-Controller geschriebenen Daten Übertragungsdaten in ein anderes Register im ersten Host-Controller geschrieben werden.
  2. Die Vorrichtung nach Anspruch 1, ferner umfassend: einen zweiten Host-Controller, der die Schnittstelle zu einer zweiten Festplatte bildet, dadurch gekennzeichnet, daß für eine zweite Datenübertragungsoperation vor anderen Registern im zweiten Host-Controller ein Einrichtungsbit in ein Device/Head-Register im zweiten Host-Controller geschrieben wird, und auf der Grundlage der in das Device/Head-Register im zweiten Host-Controller geschriebenen Daten Übertragungsdaten in ein anderes Register im zweiten Host-Controller geschrieben werden.
  3. Die Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die erste und zweite Festplatte serielle Advanced Technology Attachment- (ATA-) Einrichtungen sind.
  4. Die Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die erste und zweite Datenübertragungsoperation gleichzeitiges und unabhängiges Übertragen von Daten zwischen dem ersten Host-Controller und der ersten Festplatte und dem zweiten Host-Controller und der zweiten Festplatte umfaßt.
  5. Die Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß eine von der ersten und zweiten Festplatte als eine Master-Festplatte zugeordnet ist.
  6. Vorrichtung, umfassend: eine Mehrzahl von parallelen Kanälen, eine Mehrzahl von seriellen Ports, die eine Schnittstelle zu seriellen Speichereinrichtungen bilden, wobei die parallelen Kanäle seriellen Ports zugeordnet sind, ein Device/Head-Register auf einem ersten seriellen Port, wobei für eine erste Datenübertragungsoperation vor anderen Registern auf dem ersten seriellen Port auf das Device/Head-Register geschrieben wird, und auf der Grundlage der in das Device/Head-Register auf dem ersten seriellen Port geschriebenen Daten auf ein anderes Register auf dem ersten seriellen Port zugegriffen wird.
  7. Die Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß Zugreifen auf ein anderes Register auf dem ersten seriellen Port das Schreiben von Daten in ein anderes Register auf dem ersten seriellen Port umfaßt.
  8. Die Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß Zugreifen auf ein anderes Register auf dem ersten seriellen Port das Lesen von Daten von einem anderen Register auf dem ersten seriellen Port umfaßt.
  9. Die Vorrichtung nach Anspruch 6, ferner umfassend: ein Device/Head-Register auf einem zweiten seriellen Port, dadurch gekennzeichnet, daß für eine zweite Datenübertragungsoperation vor anderen Registern auf dem zweiten seriellen Port auf das Device/Head-Register geschrieben wird, und wobei auf der Grundlage der in das Device/Head-Register auf dem zweiten seriellen Port geschriebenen Daten auf ein anderes Register auf dem zweiten seriellen Port zugegriffen wird.
  10. Die Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, daß Zugreifen auf ein anderes Register auf dem zweiten seriellen Port das Schreiben von Daten in ein anderes Register auf dem zweiten seriellen Port umfaßt.
  11. Die Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, daß Zugreifen auf ein anderes Register auf dem zweiten seriellen Port das Lesen von Daten von einem anderen Register auf dem zweiten seriellen Port umfaßt.
  12. Die Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, daß die erste und zweite Datenübertragungsoperation das gleichzeitige und unabhängige Übertragen von Daten zwischen dem ersten seriellen Port und der entsprechenden seriellen Speichereinrichtung und dem zweiten seriellen Port und der entsprechenden seriellen Speichereinrichtung umfaßt.
  13. Die Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß Schreiben auf ein Device/Head-Register auf einem ersten seriellen Port vor dem Schreiben auf andere Register auf einem ersten seriellen Port das Schreiben auf ein Vorrichtungsbit in einem Device/Head-Register des ersten seriellen Ports umfaßt.
  14. Die Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, daß Schreiben auf ein Device/Head-Register auf einem ersten seriellen Port vor dem Schreiben auf andere Register auf einem ersten seriellen Port das Schreiben auf ein Vorrichtungsbit in einem Device/Head-Register vor dem Schreiben auf ein Busmaster- oder Anforderungspaketregister des ersten seriellen Ports umfaßt.
  15. Die Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß Zugreifen auf ein anderes Register auf dem ersten seriellen Port das Zugreifen auf das Busmaster- oder Anforderungspaketregister des ersten seriellen Ports umfaßt.
  16. System, umfassend: eine Mehrzahl von seriellen Speichereinrichtungen und einen Chipsatz, der an die seriellen Speichereinrichtungen gekoppelt ist, wobei der Chipsatz einen seriellen Speichercontroller umfaßt, wobei der serielle Speichercontroller umfaßt: eine Zuordnungsschaltung, um eine Mehrzahl von seriellen Ports, die eine Schnittstelle zu einer seriellen Speichereinrichtung bilden, einer Mehrzahl von parallelen Kanälen zuzuordnen, eine Zustandsmaschine, die mit der Zuordnungsschaltung gekoppelt ist, um eine Reaktion von einem der parallelen Kanäle auf der Grundlage der Zugriffsart zu emulieren, einen Wähler des seriellen Ports, der mit der Zustandsmaschine und den seriellen Ports gekoppelt ist, um einen der seriellen Ports zu wählen, und eine Mehrzahl von Registern, die an die Zustandsmaschine gekoppelt sind, um Anforderungspaketregister des parallelen Kanals zu emulieren, der dem gewählten seriellen Port zugeordnet ist, wobei vor einem der entsprechenden Busmaster- oder Anforderungspaketregister auf ein Einrichtungsbit in einem Device/Head-Register des gewählten seriellen Ports geschrieben wird.
  17. Das System nach Anspruch 16, dadurch gekennzeichnet, daß die Zustandmaschine umfaßt: einen ersten Schreibzustand, um Daten auf den gewählten seriellen Port zu schreiben, der gemäß dem Einrichtungsbit einem der parallelen Kanäle zugeordnet ist, und einen ersten Lesezustand, um Daten von dem gewählten seriellen Port zu lesen, der gemäß dem Einrichtungsbit einem der parallelen Kanäle zugeordnet ist.
  18. Das System nach Anspruch 16, ferner umfassend: Schreiben von Daten auf zumindest ein Busmaster- oder Anforderungspaketregister, das dem gewählten seriellen Port entspricht, ohne Schreiben der Daten auf ein Register, das einem anderen seriellen Port entspricht.
  19. Das System nach Anspruch 16, ferner umfassend: einen Zugriffsdetektor, um eine erste Zugriffsart eines Zugriffs auf eine Mehrzahl von seriellen Ports, die eine Schnittstelle zu den seriellen Speichereinrichtungen bilden, zu erkennen, wobei der Zugriff auf einen einer Mehrzahl von parallelen Kanälen vorgesehen ist.
  20. Das System nach Anspruch 16, dadurch gekennzeichnet, daß die erste Zugriffsart einen ersten Schreibvorgang auf eines von einem Busmasterregister umfaßt, außer dem Setzen eines START-Bits des Command-Registers des Busmasters auf eine logische Eins, von einem Nicht-Daten-Befehlsregister und einem Einrichtungssteuerregister.
DE112006000634T 2005-03-31 2006-03-31 Verfahren und Vorrichtung zur unabhängigen und gleichzeitigen Datenübertragung auf Host-Controller Ceased DE112006000634T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/096,619 US7603514B2 (en) 2005-03-31 2005-03-31 Method and apparatus for concurrent and independent data transfer on host controllers
US11/096,619 2005-03-31
PCT/US2006/012994 WO2006105548A1 (en) 2005-03-31 2006-03-31 A method and apparatus for indpendent and concurrent data transfer on host controllers

Publications (1)

Publication Number Publication Date
DE112006000634T5 true DE112006000634T5 (de) 2008-02-14

Family

ID=36694540

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006000634T Ceased DE112006000634T5 (de) 2005-03-31 2006-03-31 Verfahren und Vorrichtung zur unabhängigen und gleichzeitigen Datenübertragung auf Host-Controller

Country Status (8)

Country Link
US (1) US7603514B2 (de)
JP (1) JP2008537219A (de)
KR (1) KR20070108410A (de)
CN (1) CN101133386A (de)
DE (1) DE112006000634T5 (de)
GB (1) GB2438782B (de)
TW (1) TWI334537B (de)
WO (1) WO2006105548A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8731506B2 (en) * 2008-07-28 2014-05-20 Marvell World Trade Ltd. Complementary low noise transductor with active single ended to differential signal conversion
KR101113893B1 (ko) * 2010-05-14 2012-03-02 주식회사 노바칩스 반도체 칩 및 이를 구비하는 반도체 시스템
KR101004640B1 (ko) * 2010-05-14 2011-01-03 주식회사 신성냉동공조 실내환기용 전열교환장치
US9116694B2 (en) 2012-09-26 2015-08-25 Intel Corporation Efficient low power exit sequence for peripheral devices
US9276623B2 (en) * 2013-08-20 2016-03-01 Aviacomm Inc. Cost effective multiband RF front-end architecture for mobile applications
US11888002B2 (en) 2018-12-17 2024-01-30 Meta Platforms Technologies, Llc Dynamically programmable image sensor
US11962928B2 (en) 2018-12-17 2024-04-16 Meta Platforms Technologies, Llc Programmable pixel array
US11935291B2 (en) * 2019-10-30 2024-03-19 Meta Platforms Technologies, Llc Distributed sensor system
US11948089B2 (en) 2019-11-07 2024-04-02 Meta Platforms Technologies, Llc Sparse image sensing and processing
US11825228B2 (en) 2020-05-20 2023-11-21 Meta Platforms Technologies, Llc Programmable pixel array having multiple power domains
US11373014B2 (en) * 2020-07-21 2022-06-28 Hewlett Packard Enterprise Development Lp Controlling access to peripheral ports of a host computing system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2246494B (en) * 1990-05-25 1994-08-31 Silicon Systems Inc Method and apparatus for serial communications
GB2288954B (en) * 1994-04-15 1998-10-14 Vlsi Technology Inc Method and apparatus for providing programmable serial communications
US5604870A (en) * 1994-08-01 1997-02-18 Moss; Barry UART emulator card
JPH11282632A (ja) * 1998-03-27 1999-10-15 Sony Corp インターフェース装置及び制御方法並びに記録再生装置
US6684275B1 (en) * 1998-10-23 2004-01-27 Octave Communications, Inc. Serial-to-parallel/parallel-to-serial conversion engine
CN1222876C (zh) * 1999-09-22 2005-10-12 网孔公司 磁盘冗余阵列控制器和使其与主机连接的方法
US6772108B1 (en) * 1999-09-22 2004-08-03 Netcell Corp. Raid controller system and method with ATA emulation host interface
US6772258B2 (en) * 2000-12-29 2004-08-03 Intel Corporation Method and apparatus for sharing an interrupt between disk drive interfaces
US6854045B2 (en) * 2001-06-29 2005-02-08 Intel Corporation Hardware emulation of parallel ATA drives with serial ATA interface
US6961787B2 (en) * 2002-01-07 2005-11-01 Intel Corporation Method and apparatus for updating task files
DE10214700B4 (de) * 2002-04-03 2006-02-23 Advanced Micro Devices, Inc., Sunnyvale Kombinierter ATA/SATA-Controller als integrierter Schaltkreischip und dazugehöriges Verfahren zum Betreiben
AU2003217839A1 (en) * 2002-04-03 2003-10-20 Advanced Micro Devices, Inc. Ata/sata combined controller
US6983338B2 (en) * 2003-04-01 2006-01-03 Dell Products L.P. Coupling device for connectors wherein coupling device comprises multiplexer unit for selectiving first mode for SATA channel and second mode that establishes loop back function
US7496691B2 (en) * 2003-07-28 2009-02-24 Lsi Corporation Standard ATA queuing automation in serial ATA interface for creating a frame information structure (FIS) corresponding to command from transport layer
JP2005056519A (ja) * 2003-08-06 2005-03-03 Fujitsu Ltd ストリーム系コマンドを使用する場合の読取処理方法及び媒体記憶装置
JP2005346123A (ja) * 2004-05-31 2005-12-15 Toshiba Corp パラレルインタフェースコネクタを備えたストレージ装置及び同装置に適用される変換コネクタ
US20060075164A1 (en) * 2004-09-22 2006-04-06 Ooi Eng H Method and apparatus for using advanced host controller interface to transfer data

Also Published As

Publication number Publication date
JP2008537219A (ja) 2008-09-11
TW200708958A (en) 2007-03-01
US20060224792A1 (en) 2006-10-05
KR20070108410A (ko) 2007-11-09
GB2438782B (en) 2008-09-10
US7603514B2 (en) 2009-10-13
CN101133386A (zh) 2008-02-27
TWI334537B (en) 2010-12-11
GB2438782A (en) 2007-12-05
GB0717767D0 (en) 2007-10-24
WO2006105548A1 (en) 2006-10-05

Similar Documents

Publication Publication Date Title
DE112006000634T5 (de) Verfahren und Vorrichtung zur unabhängigen und gleichzeitigen Datenübertragung auf Host-Controller
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE10214700B4 (de) Kombinierter ATA/SATA-Controller als integrierter Schaltkreischip und dazugehöriges Verfahren zum Betreiben
EP1720100B1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE3587039T2 (de) Computer mit virtuellem maschinenmodus und mehrfachen schutzringen.
DE3689696T2 (de) Datenverarbeitungssystem mit einem Hauptprozessor und einem Ko-Prozessor mit gemeinsamen Betriebsmitteln.
DE3587622T2 (de) Emulationseinrichtung in einem Datenverarbeitungssystem.
DE102004057756B4 (de) USB-Steuerungseinrichtung mit OTG-Steuerungseinheit
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE19847642C2 (de) PCI-PCI-Brücke
DE69020569T2 (de) Modulares ein-/ausgabesystem für superrechner.
DE69031547T2 (de) Befehlsausgabe für ein Rechnersystem
DE3650092T2 (de) E/a-steuerung mit zwei funktionen.
DE60100848T2 (de) Virtuelles rom für geräte-aufzählung
DE202010017667U1 (de) Datenspeichervorrichtung mit Flash-Speicherchips
DE102009061252B3 (de) Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes
DE112005001512T5 (de) Vorrichtung und Verfahren für den hochschnellen Zugriff auf einen flüchtigen Plattenlaufwerkspeicher unter Einsatz einer integrierten Direkt-Speicherzugriffs-Einrichtung
DE3688408T2 (de) Drucker-magnetbanddatenverbindungsprozessor.
DE69114961T2 (de) Vorrichtung für Zusammenschaltungskanäle.
DE102008008196A1 (de) Speicherkarte, Speichersystem und Verfahren zum Betreiben eines Speichersystems
DE3587031T2 (de) Zugriffpruefungseinrichtung fuer digitale datenverarbeitungsanordnung, welche einen speicher mit seitenabruf hat.
DE102021107336A1 (de) VORRICHTUNGEN, SYSTEME, UND VERFAHREN FÜR PCIe ENDPUNKT INTERRUPT
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus
DE102020113225A1 (de) Aufzählung persistenter Vorrichtungen auf dem USB (Universal Serial Bus)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20120306