DE69631327T2 - Synchrones dma-übertragungsprotokoll - Google Patents

Synchrones dma-übertragungsprotokoll Download PDF

Info

Publication number
DE69631327T2
DE69631327T2 DE69631327T DE69631327T DE69631327T2 DE 69631327 T2 DE69631327 T2 DE 69631327T2 DE 69631327 T DE69631327 T DE 69631327T DE 69631327 T DE69631327 T DE 69631327T DE 69631327 T2 DE69631327 T2 DE 69631327T2
Authority
DE
Germany
Prior art keywords
data
bus
drive device
peripheral drive
signal
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.)
Expired - Fee Related
Application number
DE69631327T
Other languages
English (en)
Other versions
DE69631327D1 (de
Inventor
H. Jeffrey APPELBAUM
W. John BROOKS
P. James McGRATH
C. Hung NGUYEN
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.)
Quantum Corp
Original Assignee
Quantum 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 Quantum Corp filed Critical Quantum Corp
Publication of DE69631327D1 publication Critical patent/DE69631327D1/de
Application granted granted Critical
Publication of DE69631327T2 publication Critical patent/DE69631327T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Description

  • Gebiet der Erfindung
  • Die Erfindung bezieht sich auf einen Datentransfer zwischen einer Host-Vorrichtung und einer peripheren Laufwerkvorrichtung über einen Bus. Insbesondere bezieht sich die Erfindung auf ein Verfahren zum Durchführen von synchronen Direktspeicherzugriffs-Datenübertragungen (DMA-Datenübertragungen; direct memory access) mit einer erhöhten Datenrate.
  • Hintergrund
  • Datenübertragungsraten zwischen einer Host-Vorrichtung und peripheren Laufwerkvorrichtungen innerhalb eines Personalcomputersystems (PC-Systems) werden durch die die Vorrichtungen untereinander verbindende Busarchitektur begrenzt. Eine Art von Bus, der für gewöhnlich verwendet wird, um die periphere Laufwerkvorrichtung und einen Systembus eines PCs miteinander oder schnittstellenmäßig zu verbinden, ist ein ATA-Bus, nämlich eine Plattenlaufwerkschnittstelle, die ursprünglich für den ISA-Bus des IBM-PC/AT entwickelt wurde. Der ATA-Bus wurde zuerst mittels LS-TTL Gattern bzw. Gates (Low-power Schottky transistor-transistor logic gates) konfiguriert, um ein 18-Zoll-Kabel anzusteuern. Die langsamen Flanken der LS-TTL-Gatter und die kurze Kabellänge arbeiteten bei den dann existierenden Systemen ausreichend. Da PC-Systeme jedoch schneller und komplexer wurden, wurde die Definition des ATA- Busses erweitert, um Betriebsarten zu umfassen, die schnellere Datenübertragungsraten durchführen, und Hardware-Entwickler haben häufig die ATA-Kabellänge beträchtlich über 18 Zoll erweitert. Beispielsweise umfassen PIO-Moden (programmierte I/O-Moden) nun PIO-Moden 0–4. Die Moden 0,1 und 2 entsprechen der ATA-Schnittstelle, wie sie ursprünglich definiert wurde, während PIO-Modus 3 eine maximale Datentransferrate von 11,1 MByte/s und PIO-Modus 4 eine maximale Transferrate von 16,7 MByte/s festlegt. Auf ähnliche Weise wurden neue DMA-Moden festgelegt. Der Mehrwort-DMA-Modus 0 entspricht der ursprünglichen Schnittstelle, während die DMA-Moden 1 und 2 schnellere Datentransferraten bereitstellen. Der Mehrwort-DMA-Modus 2 weist die gleiche maximale Transferrate wie der neue PIO-Modus 4 auf.
  • Diese neuen Betriebsarten bzw. Moden erfordern eine höhere Leistung von dem ATA-Bus, was zu einer Bemühung führt, Datentransferraten durch Verringern von Zykluszeiten zu erhöhen. Die Bemühung, Zykluszeiten zu verringern, wurde durch Erhöhen von Flankenraten erzielt. Die erhöhten Flankenraten zusammen mit dem Anstieg bei der ATA-Kabellänge haben ihrerseits zu dem Auftreten von Schwächen bei der ursprünglichen ATA-Verkabelungskonfiguration geführt. Diese Schwächen beeinflussen die Integrität der über das Kabel übertragenen Signale. Von besonderer Bedeutung sind übermäßiges Ringing und Übersprechen zwischen Signalen und Zeitsteuerungs-/Ausbreitungsverzögerungen, die zu Systemausfall und/oder Datenverlust führen können. Erhöhte Flankenraten und übermäßige Kabellängen können diese Probleme verursachen. Somit wird die Datentransferrate von gültigen verwendbaren Daten durch die der Struktur des ATA-Busses inhärenten Beschränkungen eingeschränkt.
  • Die erhöhten Flankenraten und die übermäßige Kabellänge sind für den ATA-Bus problematisch, da er eine schlecht abgeschlossenen Busstrukturausgestaltung besitzt. Das Standard-18-Zoll-ATA-Buskabel wird im Allgemeinen als eine Eintakt-Übertragungsleitung mit einer charakteristischen Impedanz von typischerweise etwa 110 Ohm und einer Ausbreitungsgeschwindigkeit von typischerweise etwa 60% c modelliert. Gemäß der Übertragungsleitungstheorie tritt Ringing auf, wenn die Abschlussimpedanz nicht mit der charakteristischen Impedanz des Kabels übereinstimmt. Die Amplitude des Ringings wird mit einer größeren Fehlübereinstimmung der Impedanzen erhöht. Das Ringing mit ausreichender Amplitude auf Signal- und Datenleitungen des ATA-Busses kann ein falsches Triggern und übermäßige Einschwingungsverzögerungen verursachen, die zu Systemausfall und/oder Datenverlust führen können.
  • Das Auftreten von Ringing ist für Datenübertragungen über einen ATA-Bus bei PC-Systemen besonders problematisch, da Digitalinformation über eine Übertragungsleitung transferiert wird. Gemäß einem weiteren Aspekt der Übertragungsleitungstheorie wird über die Übertragungsleitung zu übertragene Information als ein Signalverlauf angegeben. Aufgrund der charakteristischen Impedanz und der Länge der Übertragungsleitung weist der von der Übertragungsleitung ausgegebene Signalverlauf eine Verzerrung auf. Bei analogen Übertragungen, bei denen die eingegebenen Signalverläufe im allgemeinen Sinuswellen sind, wird der ausgegebene Signalverlauf typischerweise durch eine Phasenverschiebung verzerrt, die relativ einfach korrigiert werden kann. Bei digitalen Übertragungen sind die eingegebenen Signalverläufe jedoch eine Art einer Rechteckwelle, wobei die Erkennung eines Flankenübergangs aufgrund der Tatsache bedeutsam ist, dass die übertragene Information in der Form von 1en und 0en ist. Die Verzerrung dieser Rechteckwellen ist als Ringing offensichtlich, was zu einem Signalverlauf führt, bei dem die Flankenübergänge nicht klar erkannt werden können. Somit sind Chancen für falsches Triggern, wie es oben erwähnt ist, für digitale Übertragungen wahrscheinlich und symptomatisch.
  • Das Problem eines verstärkten Ringings ist neuerdings vorherrschender geworden, da sich die Busarchitektur moderner PC's geändert hat, um erhöhte Prozessor- und Laufwerkgeschwindigkeiten unterzubringen. Da Prozessorbusgeschwindigkeiten von 8 MHz auf 33 MHz angestiegen sind und sich Plattenlaufwerke in der Geschwindigkeit erhöht haben, wurde es notwendig, den ATA-Standard zu aktualisieren, um schnellere Datenübertragungsraten zu ermöglichen. Um eine Ausbreitungsverzögerung zu verringern, haben einige Hersteller das Ausgangsleitung des Hosts erhöht, um das Ausgangssignal schneller mit der kapazitiven Last des Kabels nachzuführen. Dies wurde durch Implementieren der ATA-Schnittstellenchips mit schnellen CMOS-Prozessen anstatt der TTL-Vorrichtungen mit niedriger Geschwindigkeit, die bei den ersten ATA-Busen verwendet werden, erreicht. Als Ergebnis nahm die Ausgangsimpedanz ab, und die Flankenraten an dem ATA-Bus nahmen auf 1 bis 2 ns oder weniger ab, im Gegensatz zu einem 5 bis 6 ns-Bereich der TTL-Vorrichtungen. Diese schnellen Flanken ohne ausreichende Abschlüsse haben das Ringing auf dem Bus zu dem Punkt verschlimmert, dass viele System/Laufwerk-Kombinationen nicht arbeiten.
  • Übersprechen tritt auf, wenn Schalten auf einer Signalleitung Signale in einer benachbarten oder nahegelegenen Leitung induzierte. Ein Signal koppelt in eine benachbarten Leitung durch zwei Mechanismen ein: Kopplungskapazität und Gegeninduktivität. Wenn sich eine Schaltsignal-Wellenfront durch ein Kabel hinunter fortpflanzt, koppelt es Energie in die benachbarte Leitung. Sobald die Energie in der zweiten Leitung ist, breitet sie sich in beiden Richtungen aus: zu dem Empfänger und zu der Quelle hin. Die Größe des gekoppelten Signals ist proportional der Änderungsrate des Signals in der primären Leitung. Außerdem ist die Amplitude des gekoppelten Signals dem Gesamtbetrag der Kopplungskapazität und der Gegeninduktivität – und daher der Kabellänge – proportional. Diese Übersprech-Charakteristika machen es bedeutsam, die Anstiegsgeschwindigkeit und die Kabellänge neuerer ATA-Bustreiber zu steuern, da schnelle Flankenraten und das resultierende Ringing auf den Datenleitungen durch Übersprechen in benachbarte Steuerleitungen einkoppeln kann, und Kabellängen über 18 Zoll erhöhen die Wahrscheinlichkeit von Nebensprechen.
  • Ein dem schlechten Abschluss und der Kabellänge einer ATA-Busausgestaltung zugeordnetes zusätzliches Problem ist die Ausbreitungsverzögerung, was durch Kabellängenverletzungen weiter verschlimmert wird. Wie es oben erläutert ist, wurde der ATA-Bus ursprünglich definiert, um eine maximale Länge von 18 Zoll aufzuweisen. Heute werden jedoch Systementwickler sehr gedrängt, ein System zu entwickeln, bei dem eine Host-Vorrichtung mit einer peripheren Laufwerkvorrichtung innerhalb 18 Zoll verbunden werden kann. Außerdem können einige Systeme mit Dual-ATA-Schnittstellenports zur gemeinsamen Nutzung von zwei ATA-Kabeln implementiert werden. Diese Ports sind nicht vollständig voneinander unabhängig, und eine doppelte Portbildung führt zu einem ATA-Kabel, das effektiv 36 Zoll lang ist. Diese erhöhten Kabellängen verursachen Ausbreitungsverzögerungen, die dem Host und peripheren Laufwerksvorrichtungen zugeordnet sind, die Steuer- und Datensignale zueinander vor- und zurücksenden. Diese Ausbreitungsverzögerungen beeinflussen letztendlich die Datentransferrate und die Gesamtleistung des Busses.
  • Eine weiteres Problem, das sich auf den Datentransfer über den ATA-Bus bezieht, ist die Datenintegrität. Es ist bedeutsam, dass die über den Bus übertragenen Daten gültig sind, und somit besteht ein Wunsch, eine Fehlererfassungsfähigkeit bereitzustellen, die zuverlässig ist und ohne weiteres implementiert werden kann. Da aus Datenbits aufgebaute Wörter über den ATA-Bus transferiert werden, ist eine bitorientierte Fehlererfassungs-Vorgehensweise praktischer als eine symbolorientierte Fehlererfassungs-Vorgehensweise. Die herkömmliche bitorientierte Fehlererfassung ist jedoch für Datentransfers nicht praktisch, die über den ATA-Bus stattfinden, da die herkömmliche bitorientierte Fehlererfassung eine bitserielle Vorgehensweise ist. Die herkömmliche Bit-Fehlererfassungs-Prozedur erzeugt einen zyklischen Redundanzcode-Wert (CRC-Wert) durch logisches Verknüpfen eines Stroms eingegebener Datenbits mit einem Generatorpolynoms: G (X) = X16 + X12 + X5 + 1
  • Jedes Bit des Datenstroms wird sequentiell in einen CRC-Logik-Codierer/Decodierer durch einen Bittakt, der als eine Bit-Zellen-Timingrate arbeitet, verschoben. Da die über den ATA-Bus stattfindenden Datentransfers 16-Bit-Worte von Daten transferieren, wird jedes Wort mit einer Datentaktperiode gleich dem 16-fachen des Bittaktes transferiert. Somit würde mittels der existierenden bitseriellen Vorgehensweise, die durch einen Bittakt betrieben wird, ein Takten bei der Frequenz des Bittaktes oder dem 16-fachen des Worttaktes erfordern. Ein weiteres Problem der bitseriellen Vorgehensweise besteht darin, dass, da die Daten in Worteinheiten transferiert werden, es keinen Bittakt gibt, der an diesem Teil der ATA-Schnittstellen-Schaltungsstruktur verfügbar ist.
  • Somit ist die existierende bitorientierte Fehlererfassungsprozedur kein praktisches Verfahren zum Bereitstellen von Datenintegrität für Datentransfers über den ATA-Bus.
  • Die oben erläuterten Einschränkungen der ATA-Busausgestaltung haben die Datentransferfähigkeit zwischen einer Host-Vorrichtung und einer peripheren Laufwerkvorrichtung auf die oben beschriebenen Raten beschränkt. Mit dem Aufkommen noch schnellerer Prozessoren und peripherer Vorrichtungen ist es wünschenswert, noch schnellere und genauere Datentransferraten zwischen dem Host und peripheren Laufwerkvorrichtungen zu erhalten. Somit gibt es einen bis jetzt ungelösten Bedarf für ein verbessertes, einfaches und kostenwirksames Verfahren zum Durchführen von Datentransfer zwischen einer Hostvorrichtung und einer peripheren Laufwerkvorrichtung über eine Busschnittstelle mit bestimmten Betriebseinschränkungen bei einer erhöhten Datentransferrate ohne Verletzen der Betriebseinschränkungen der Busschnittstelle.
  • Die US-5 280 623 beschreibt ein Buskommunikationssystem, das imstande ist, eine Übergang zwischen adressierten Datentransfer und Quittungs-Datentransfer ohne Rekonfigurationsschritte durchzuführen. Bei einer Schreibsequenz, die mit synchronem Datentransfer adressiert wird, verwendet das System eine Anforderung-Bestätigung-Datentransfer-Strobe-Sequenz von Ereignissen.
  • Zusammenfassung
  • Das Verfahren der Erfindung erfüllt diese Bedürfnisse.
  • Die Erfindung ist auf ein Verfahren zum Durchführen eines synchronen DMA-Bursts in einem Computersystem gerichtet, das mindestens eine Host-Vorrichtung umfasst, die mit mindestens einer peripheren Laufwerkvorrichtung durch einen Bus verbunden ist, wobei der Bus eine zugeordnete Steuersignalübertragungs-Strobe-Rate aufweist und für Datentransfer zwischen der peripheren Laufwerkvorrichtung und der Hostvorrichtung als Antwort auf einen Lese- oder Schreibbefehl der Hostvorrichtung verwendet wird. Der Datentransfer für jeden Befehl wird durch eine Reihe synchroner DMA-Bursts über den Bus ausgeführt.
  • In Abhängigkeit von einem Lesebefehl der Host-Vorrichtung aktiviert die periphere Laufwerkvorrichtung ein DMA-Anforderungssignal, um den synchronen DMA-Burst einzuleiten, und wenn die Host-Vorrichtung bereit ist, um mit den synchronen DMA-Bursts zu beginnen, aktiviert die Host-Vorrichtung ein DMA-Bestätigungssignal in Abhängigkeit von dem DMA-Anforderungssignal. Innerhalb einer bestimmten vorbestimmten Zeitspanne, nachdem die Host-Vorrichtung das DMA-Bestätigungssignal aktiviert, schickt die periphere Laufwerkvorrichtung ein erstes Datenwort auf den Bus, dann schaltet, nachdem eine zweite vorbestimmte Zeitspanne abgelaufen ist, nachdem das Datenwort auf den Bus geschickt wird, die periphere Laufwerkvorrichtung ein Strobe-Signal von einem hohen Zustand in einen niedrigen Zustand, um das erste Datenwort in der Host-Vorrichtung zwischenzuspeichern. Bei dem Verfahren der Erfindung besitzt die periphere Laufwerkvorrichtung immer die Steuerung des Initiierens des synchronen DMA-Bursts, und die die Daten sendende Vorrichtung steuert sowohl die Daten als auch das die Daten in der die Daten empfangenden Vorrichtung zwischenspeichernde Strobe-Signal. Die Steuerung sowohl der Daten als auch des Strobe-Signals durch eine Vorrichtung minimiert Auswirkungen der Ausbreitungsverzögerung, des Kabeleinschwingens und der den DMA-Bursts zugeordneten Einrichtzeit und erhöht somit eine Rate, mit der Daten über den Bus transferiert werden können.
  • Ein zusätzliches Wort kann während des DMA-Burst durch die periphere Laufwerkvorrichtung transferiert werden, wobei das zusätzliche Wort auf den Bus geschickt wird und dann, nachdem die zweite vorbestimmte Zeitspanne abgelaufen ist, die periphere Laufwerkvorrichtung das Strobe-Signal von dem niedrigen Zustand in den hohen Zustand schaltet, um das zusätzliche Wort in der Host-Vorrichtung zwischenzuspeichern. Diese Schritte des Schickens des zusätzlichen Worts auf den Bus und des Umschaltens des Strobe-Signals von einem Zustand in den anderen Zustand kann wiederholt werden, bis die periphere Laufwerkvorrichtung das Senden sämtlicher zu transferierenden Datenwörter abgeschlossen hat. Wenn die periphere Laufwerkvorrichtung das Senden sämtlicher Daten abgeschlossen hat, deaktiviert die periphere Laufwerkvorrichtung ihr DMA-Anforderungssignal, um den synchronen DMA-Burst abzuschließen. Wenn das Strobe-Signal nicht in dem hohen Zustand ist, nachdem die periphere Laufwerkvorrichtung das Senden der Daten beendet hat, gibt die periphere Laufwerkvorrichtung das Strobe-Signal in den hohen Zustand zurück.
  • Außerdem kann das Verfahren Schritte umfassen, um eine parallele bit-orientierte Fehlererfassung durchzuführen, um sicherzustellen, dass die während des synchronen DMA-Bursts transferierten Daten gültig sind. Während des Datentransfers berechnen sowohl die periphere Laufwerkvorrichtung als auch die Host-Vorrichtung einen 16-Bit-CRC-Wert. Nachdem die periphere Laufwerkvorrichtung einen vollständigen DMA-Burst gesendet hat, sendet die Hostvorrichtung ihren berechneten CRC-Wert an die periphere Laufwerkvorrichtung, und die periphere Laufwerkvorrichtung führt einen Vergleich des empfangenen CRC-Werts mit ihrem berechneten CRC-Wert durch, um auf irgendwelche Fehler zu prüfen.
  • Wenn der Host-Vorrichtungsbefehl ein Schreibbefehl ist, wird der synchrone DMA-Burst immer noch von der peripheren Vorrichtung initiiert, die ein DMA-Anforderungssignal aktiviert. Wenn die Host-Vorrichtung bereit ist, den Burst zu beginnen, aktiviert die Host-Vorrichtung ein DMA-Bestätigungssignal und schickt ein erstes Datenwort auf den Bus. Als Antwort auf das DMA-Bestätigungssignal aktiviert die periphere Laufwerkvorrichtung ein Bereitsignal innerhalb einer vorbestimmten Zeitspanne, nachdem das DMA-Bestätigungssignal aktiviert ist. Die Host-Vorrichtung schaltet dann das Strobe-Signal von dem hohen Zustand in den niedrigen Zustand innerhalb der vorbestimmten Zeitspanne um, nachdem das Bereitsignal von der peripheren Laufwerkvorrichtung aktiviert wurde. Das Umschalten des Strobe-Signals speichert das Datenwort in der peripheren Laufwerkvorrichtung zwischen. Zusätzliche Datenwörter werden von der Host-Vorrichtung transferiert, die zusätzliche Datenwörter auf den Bus schickt und das Strobe-Signal umschaltet, um das Datenwort in der peripheren Laufwerkvorrichtung zwischenzuspeichern. Schritte, um eine parallele bitorientierte Fehlererfassung während eines synchronen Schreibbefehl-DMA-Burst durchzuführen, sind den Schritten ähnlich, die während des synchronen Lesebefehl-DMA-Bursts durchgeführt werden.
  • Vorzugsweise wird der synchrone DMA-Burst über einen ATA-Bus durchgeführt, der eine Steuersignal-Übertragungs-Strobe-Rate von ungefähr 8,3 MHz aufweist, und die Daten-Transferrate wird auf ungefähr 33,3 MByte/s erhöht.
  • Das Verfahren der Erfindung liefert viele Vorteile gegenüber vorbekannten Transferprotokollen. Insbesondere liefert das synchrone DMA-Burst-Transferprotokoll eine bedeutend erhöhte Datentransferrate zwischen einer Host-Vorrichtung und einer peripheren Laufwerkvorrichtung und ist innerhalb existierender Bussystemarchitekturen funktions fähig. Das vorliegende Verfahren ist daher ein kostengünstiger Weg, um die Datentransferrate zwischen einer Host-Vorrichtung und einer peripheren Laufwerkvorrichtung zu erhöhen. Außerdem liefert das vorliegende Verfahren die erhöhten Datentransferraten und die verbesserte Datenintegrität, ohne die Steuersignal-Übertragungs-Strobe-Rate auf dem Bus zu erhöhen, womit Probleme der Systemintegrität eliminiert werden, die den erhöhten Steuersignalübertragungsfrequenzen zugeordnet sind. Ein weiterer Vorteil des vorliegenden Verfahrens besteht darin, dass eine Rückwärtskompatibilität mit existierendem Transferprotokoll bereitgestellt wird, so dass das Verfahren ohne wesentliche Hardware-Modifikationen bei Systemen mit anderen peripheren Laufwerkvorrichtungen, die die existierenden Strobe-Transfer-Protokolle verwenden, betriebsfähig ist.
  • Kurze Beschreibung der Zeichnungen
  • Diese und weitere Merkmale, Aspekte und Vorteile der Erfindung werden durch die folgende Beschreibung, die beigefügten Ansprüche und die begleitenden Zeichnungen besser verständlich, in denen zeigen:
  • 1a ein Blockdiagramm einer PC-Architektur, bei der die Erfindung implementiert werden kann;
  • 1b eine teilweise schematische Schaltungsdarstellung für existierende ATA-Kabel;
  • 2 ein vereinfachtes Komponenten- und Timing-Diagramm für ein Datentransferprotokoll des Stands der Technik;
  • 3 ein vereinfachtes Komponenten- und Timing-Diagramm für einen synchronen DMA-Burst gemäß einer Version der Erfindung;
  • 4a ein detailliertes Timing-Diagramm, das die Daten- und Steuersignale darstellt, die während der Laufwerkinitiierung eines synchronen DMA-Bursts für einen Lese-Befehl ausgetauscht werden, der erfindungsgemäß implementiert wird;
  • 4b ein detailliertes Timing-Diagramm, das die Daten- und Steuersignale veranschaulicht, die während der Laufwerkinitiierung eines synchronen DMA-Burst für einen Schreibbefehl ausgetauscht werden, der gemäß weiterer Aspekte der Erfindung implementiert wird;
  • 5 ein detailliertes Timing-Diagramm, das die Daten- und Steuersignale gemäß weiterer Aspekte der Erfindung veranschaulicht, die während einer aufrechterhaltenen synchronen DMA-Burst ausgetauscht werden;
  • 6a ein detailliertes Timing-Diagramm, das die Daten- und Steuersignale veranschaulicht, die während der Laufwerkabschlusses eines synchronen DMA-Bursts für einen Lesebefehl ausgetauscht werden, der gemäß weiterer Aspekte der Erfindung implementiert wird;
  • 6b ein detailliertes Timing-Diagramm, das die Daten- und Steuersignale veranschaulicht, die während des Laufwerkabschlusses eines synchronen DMA-Bursts für einen Schreibbefehl ausgetauscht werden, der gemäß weiteren Aspekten der Erfindung implementiert wird;
  • 7a ein detailliertes Timing-Diagramm, das die Daten- und Steuersignale veranschaulicht, die während des Host-Abschlusses eines synchronen DMA-Bursts für einen Lesebefehl ausgetauscht werden, der gemäß weiterer Aspekte der Erfindung implementiert wird;
  • 7b ein detailliertes Timing-Diagramm, das die Daten- und Steuersignale veranschaulicht, die während eines Host-Abschlusses eines synchronen DMA-Bursts für einen Schreibbefehl ausgetauscht werden, der gemäß weiterer Aspekte der Erfindung implementiert wird;
  • 8a eine vereinfachte Logikschaltung zum Implementieren einer Fehlererfassung gemäß einer Ausführungsform der Erfindung;
  • 8b ein detaillierteres Diagramm der in 8a gezeigten Logikschaltung; und
  • 9 ein vereinfachtes Ablauf diagram, das eine Version der Erfindung veranschaulicht.
  • Beschreibung
  • 1a zeigt ein Beispiel einer herkömmlichen PC-Architektur, bei der ein Verfahren, das Aspekte der Erfindung verkörpert, implementiert werden kann. Das PC-System 10 umfasst typischerweise eine CPU 12, die mit einem RAM 14 und einem ROM 16 über einen Prozessorbus 18 verbunden ist. Eine Busschnittstelle 20 verbindet den Prozessorbus 18 mit einem ISA-Bus 22, der eine Mehrzahl von Karteneinbauplätzen 24 umfassen kann. Außerdem verbindet eine Internbusschnittstelle 26 den Prozessorbus 18 mit einem Internbus 28 (local bus), der ebenfalls eine Anzahl von Internbus-Karten-Einbauplätzen 30 umfassen kann. Eine periphere Laufwerkvorrichtung 32 ist mit dem Internbus 28 über einen ATA-Bus 34 und eine ATA-Schnittstelle 36 verbunden.
  • 1b zeigt ein teilweise schematisches elektrisches Schaltbild für einen Signalpfad eines Kabels eines herkömmlichen ATA-Busses 34. Die Leitung 33 des ATA-Busses 34 umfasst eine Quellen- oder Eingangsimpedanz Zin und eine resultierende Abschluss- oder Ausgangsimpedanz Zout, die eine Funktion der Eingangsimpedanz Zin, der charakteristischen Impedanz Zchar der ATA-Busleitung 33 und des Abstands d der ATA-Busleitung 33 ist. Wie es oben im Hintergrundabschnitt erläutert wurde, wurde der ATA-Bus 34 nicht ausgestaltet, um abgeschlossen zu sein. Somit sind in der Definition des ATA-Busses 34 diese Impedanzwerte für jede Signalleitung derart, dass Zin < Zchar und Zchar < Zout was zu dem Problem von Rufen führt.
  • Zwecks Einfachheit beschreibt die folgende Erläuterung ein mit einem Host über einen ATA-Bus verbundenes Plattenlaufwerk. Wie es jedoch Fachleute erkennen werden, ist es möglich, die Erfindung bei einem System zu implementieren, das andere periphere Vorrichtungen an dem ATA-Bus aufweist. Außerdem bezieht sich der Begriff Host-Vorrichtung im Allgemeinen auf das Host-Ende des ATA-Busses, wobei ein Fachmann erkennen wird, dass dieses beispielsweise die CPU 12 und die ATA-Brücken/Schnittstelle 36 umfasst. Die Erfindung kann ebenfalls in einem System mit mehreren Laufwerkvorrichtungen (nicht gezeigt) verwirklicht werden, die mit dem ATA-Bus 34 verbunden sind.
  • In 2 ist das DMA-Transferprotokoll des Stands der Technik ein gestrobtes asynchrones Transferprotokoll, wobei ein ATA-Host 135 immer verantwortlich ist, wenn Ereignisse stattfinden müssen. 2 zeigt das Strobe-Signal aus der Perspektive des Hosts 35 und die Daten aus der Perspektive des Plattenlaufwerks 32. Wenn der ATA-Host 35 wünscht, Daten von einem angeschlossenen Plattenlaufwerk 32 zu lesen, sendet er einen Strobe an das Plattenlaufwerk 32 zum Zeitpunkt t0. Dem Plattenlaufwerk 32 ist nicht bekannt, wann es Daten zu transferieren hat, bis es die abfallende Flanke des Strobe erkennt. Vor dem Empfang des Strobe-Signals wartet das Plattenlaufwerk 32 nur auf die Benachrichtigung in "letzter Minute", dass es Daten fertigmachen muss, um sie an den Host 35 zu senden. Der Strobe benötigt Zeit, um von dem Host 35 zu dem Plattenlaufwerk 32 zu laufen, so dass das Plattenlaufwerk 32 die Anforderung später empfängt, als wenn der Host 35 nach den Daten fragt. Das Plattenlaufwerk 32 erkennt schließlich den Strobe zu einem späteren Zeitpunkt t1. Dann bringt das Plattenlaufwerk 32 nach einer Verarbeitungsverzögerung die Daten zum Zeitpunkt t2 auf den Bus, um an den Host 35 zurückgesendet zu werden. Eine weitere Transitverzögerung ist den Daten zugeordnet, die an den Host 35 zurückgesendet werden, so dass die Daten bei dem Host 35 nicht bis zu einem späteren Zeitpunkt t3 ankommen. Eine weitere Verarbeitungsverzögerung ist dem Empfang der Daten zugeordnet, so dass der Host schließlich die Daten zum Zeitpunkt t4 zwischenspeichert. Der Host muss die Daten während des Strobe-Intervalls zwischenspeichern, und da es eine bestimmte maximale Geschwindigkeit gibt, die erreicht werden kann, muss das Strobe-Intervall lang genug sein, um sicherzustellen, dass die Daten dem Host verfügbar sind. Somit muss bei dem asynchronen Transferprotokoll des Stands der Technik das Strobe-Intervall Transitverzögerungen, die sowohl der Transitzeit vom Host 35 zum Plattenlaufwerk 32 als auch der Transitzeit vom Plattenlaufwerk 32 zum Host 35 zugeordnet sind, sowie auch Verarbeitungsverzögerungen, die sowohl dem Host 35 als auch dem Plattenlaufwerk 32 zugeordnet sind, berücksichtigen. Die Notwendigkeit, diese Verzögerungen zu berücksichtigen, begrenzt die Datentransferrate auf diejenigen, die gegenwärtig mit DMA-Modus 2 und PIO-Modus 4 erhalten werden.
  • Die Erfindung überwindet die bei dem Transferprotokoll des Stands der Technik auferlegten Datentransfergrenzen durch Eliminieren der Situation, bei der das Plattenlaufwerk 32 auf die Benachrichtigung in "letzter Minute" wartet, dass es einen Datentransfer durchführen muss. Stattdessen ist bei der Erfindung die Vorrichtung, die die Daten sendet (ob der Host 35 oder das Plattenlaufwerk 32), für das Steuern des Strobe- Signals verantwortlich. 3 zeigt ein vereinfachtes Timing-Diagramm aus der Perspektive des Plattenlaufwerks 32, einer Version der Erfindung, wobei das Plattenlaufwerk 32 für das Strobe-Signal verantwortlich ist, um Daten für einen Lese-DMA-Burst zu transferieren. Sobald der Host 35 einen Befehl gegeben hat, dass er Daten zu lesen wünscht, und eine vorläufige Quittung, um den Burst zu initiieren, durchgeführt wird, ist das Plattenlaufwerk 32 verantwortlich und bestimmt den Zeitpunkt, wann die Daten zu transferieren sind. Wenn das Plattenlaufwerk 32 bereit ist, die Daten zu senden, schickt es die Daten zum Zeitpunkt t0 auf den Bus, wie es in 3 gezeigt ist, wobei das Plattenlaufwerk 32 dann warten wird, bis es weiß, dass sich die Daten auf dem Kabel eingeschwungen haben, und das Plattenlaufwerk 32 wird das Strobe-Signal zum Zeitpunkt t1 umschalten. Das Umschalten des Strobe-Signals gibt dem Host 35 an, dass die Daten verfügbar sind, und die Daten werden in dem Host 35 zwischengespeichert, wenn der zum Zeitpunkt t1 erzeugte Strobe den Host erreicht.
  • Die Verzögerung zwischen dem Zeitpunkt, wenn das Plattenlaufwerk 32 die Daten auf den Bus schickt und dem Zeitpunkt, wenn es das Strobe-Signal umschaltet, ist nötig, da, wenn Daten auf den ATA-Bus geschickt werden, es ein zugeordnetes Ringing aufgrund des schlechten Abschlusses des Busses gibt, so dass es notwendig ist, dass sich das Datensignal einschwingen kann, bevor es in den Host 35 zwischengespeichert wird. Die Flug- oder Ausbreitungszeit, um von dem Plattenlaufwerk 32 zu dem Host 35 zu gelangen, ist jedoch im wesentlichen für sowohl das Datensignal als auch das Strobe-Signal die gleiche, und die Anstiegszeit (die Zeit, die ein Signal benötigt, um sich von "1" in "0" oder "0" in "1" zu ändern) ist im wesentlichen für sowohl das Datensignal als auch das Strobe-Signal die gleiche. Mit der Erfindung muss nur die Einschwingzeit des Datensignals berücksichtigt werden, da die Daten und der Strobe von einer Vorrichtung gesendet werden und die Anstiegsdaten und die Ausbreitungsverzögerungen dieser Signale ähnlich sind. Wenn das Laden an dem Host-Ende des Kabels die Anstiegzeit des Datensignals ändert, wird die Anstiegzeit des Strobe-Signals um einen ähnlichen Betrag geändert, und das relative Timing der Signale wird weiterhin ähnlich sein. Dieses liefert eine bedeutende Zeitverbesserung gegenüber dem Transferprotokoll des Stands der Technik, bei der der Host 35 für das Strobe-Signal und das Plattenlaufwerk 32 für das Datensignal verantwortlich ist. Bei der Situation des Stands der Technik wird Zeit beim Senden des Strobes an das Plattenlaufwerk 32 und beim Senden der Daten an den Host 35 verloren, und die verlorene Zeit kann nie wiedergewonnen werden.
  • Gemäß den Aspekten der Erfindung können sehr kurze Strobe-Intervalle eingerichtet werden, da die Ausbreitungsverzögerungen und die Anstiegsgeschwindigkeiten nicht in beiden Richtungen berücksichtigt werden müssen. Um einen Datentransfer sicherzustellen, erfordert der synchrone DMA-Transfer der Erfindung nur einer Latenzzeit für die Daten, um einzuschwingen, bevor das Strobe-Signal den Host 35 erreichen kann. Somit liefert das synchrone DMA-Burst-Verfahren der Erfindung eine erhöhte Datentransferrate von bis zu 33,3 MByte/sec, was das Doppelte der schnellsten aktuell existierenden PIO-Moden und Mehrwort-DMA-Moden ist.
  • Einzelheiten, die die Initiierung des synchronen DMA-Transfers gemäß einer Ausführungsform der Erfindung erläutern, werden nun mit Bezug auf 4a und 4b beschrieben. Mit Bezug auf 4a wird, einige Zeit nachdem der Host 35 einen Lesebefehl gesendet hat, der Daten anfordert, und das Plattenlaufwerk 32 bereit ist, den Datentransfer zu beginnen, das Plattenlaufwerk 35 den synchronen DMA-Burst durch Aktivieren eines DMA-Anforderungs signals DMARQ (als Ereignis 1 angegeben) an dem Host 35 initiieren. Als Antwort auf die Aktivierung von DMARQ, wenn der Host 35 bereit ist, die angeforderten Daten zu empfangen, gibt der Host 35 durch Aktivieren eines DMA-Bestätigungssignals -DMACK an, dass er bereit ist (als Ereignis 2 angegeben), und muss -DMACK bis zum Ende des Bursts aktiviert aufrechterhalten. Das Plattenlaufwerk 32 kann Daten auf den ATA-Bus 35 nach einer minimalen Zeitverzögerung Tza von der Aktivierung von -DMACK treiben oder schicken, was ermöglicht, das Ausgangstreiber anschalten können. Typischerweise beträgt die minimale Zeit Tza, die zum Anschalten der Ausgangstreiber erforderlich ist ungefähr 20 ns. Bevor das Plattenlaufwerk 32 das Strobe-Signal umschalten kann, das die Daten in dem Host 35 zwischenspeichert, muss das Plattenlaufwerk ebenfalls auf den Host 35 warten, um ein Stopsignal STOP zu deaktivieren und ein Bereitsignal -DMARDY zu aktivieren, nachdem der Host-DMACK aktiviert. Die Deaktivierung von STOP und die Aktivierung von -DMARDY (als Ereignisse 3 angegeben) werden innerhalb einer Standard-Zeiteinhüllenden für alle Steuersignal-Übergänge von der Aktivierung von -DMACK durchgeführt. Diese Zeiteinhüllende liegt vorzugsweise innerhalb eines Bereichs von ungefähr 20 bis 70 ns.
  • Nachdem der Host 35 STOP deaktiviert und -DMARDY aktiviert hat, kann das Plattenlaufwerk 32 das erste Strobe-Signal senden und muss dies innerhalb einer begrenzten Zeit spanne Tli tun, nachdem die STOP- und -DMARDY-Signale erkannt wurden. Vorzugsweise liegt diese begrenzte Zeitspanne Tli innerhalb eines Bereichs von ungefähr 0 bis 150 ns. Das Plattenlaufwerk 32 muss außerdem eine minimale vorbestimmte Einstellzeitspanne Tdvs warten, gemessen vom Abschicken durch das Plattenlaufwerk 32 des Datenworts auf den ATA-Bus 34 bevor es das erste Strobe-Signal senden kann. Diese Zeitspanne ist die Zeit, die benötigt wird, damit die Daten auf dem ATA-Bus 34 gültig werden. Vorzugsweise liegt diese minimale Einstellzeit Tdvs innerhalb eines Bereichs von etwa 38 bis etwa 75 ns abhängig von der ausgewählten Geschwindigkeit.
  • Das Plattenlaufwerk 32 sendet das erste Strobe-Signal an den Host 35, indem das Strobe-Signal von einem hohen Zustand in einen niedrigen Zustand umgeschaltet wird (als Ereignis 4 angegeben). Das Umschalten des Strobe-Signals von dem hohen Zustand in den niedrigen Zustand definiert eine erste Flanke des Strobe-Signals, die von dem Host 35 als eine Angabe erkannt wird, das gültige Daten auf dem ATA-Bus 34 verfügbar sind. Wenn der Host 35 die Flanke erkennt, nimmt er die Daten von dem ATA-Bus 34. Somit wird das Umschalten des Strobe-Signals verwendet, um die Daten in dem Host 35 während eines Lese-Bursts zwischenzuspeichern.
  • In 4b wird die Initiierung des synchronen DMA-Bursts für einen Schreibbefehl gemäß den Prinzipien der Erfindung beschrieben. Wie in dem Fall mit einem Lesebefehl wird der synchrone DMA-Burst von dem Plattenlaufwerk 32 durch Aktivieren von DMARQ initiiert, wenn es bereit ist, den synchronen DMA-Burst zu beginnen (Ereignis 1). Als Antwort auf die Aktivierung von DMARQ, wenn der Host 35 bereit ist, seine Daten zu schreiben, gibt der Host 35 durch Aktivieren von -DMACK an, dass er bereit ist (als Ereignis 2 angegeben), und deaktiviert STOP (als Ereignis 3 angegeben) innerhalb der Standard-Zeiteinhüllenden von -DMACK. Außerdem treibt der Host 35 Daten auf den ATA-Bus 34. Der Host 35 wartet dann auf das Plattenlaufwerk 32, um -DMARDY zu aktivieren, was angibt, dass das Plattenlaufwerk 32 bereit ist, Daten von dem Host 35 zu empfangen. Das Plattenlaufwerk 32 muss -DMARDY (als Ereignis 4 angegeben) innerhalb der begrenzten Zeitspanne Tli aktivieren, nachdem erkannt wird, dass -DMACK aktiviert und STOP deaktiviert ist. Da der Host 35 nun Daten sendet, ist der Host 35 nun ebenfalls für das Strobe-Signal verantwortlich, jedoch bevor der Host 35 das Strobe-Signal umschalten kann, muss er darauf warten, dass -DMARDY von dem Plattenlaufwerk 32 aktiviert wird, wie es oben beschrieben ist.
  • Sobald das Plattenlaufwerk 32 -DMARDY aktiviert, kann der Host 35 das erste Strobe-Signal jederzeit nach dem Erkennen von -DMARDY umschalten (als Ereignis 5 angegeben). Der Host 35 muss jedoch die minimale vorbestimmte Einstellzeitspanne Tdvs warten, gemessen ab dem Abscgicken durch deb Host 35 des Datenworts auf den ATA-Bus 34, bevor er das erste Strobe-Signal senden kann, um zu ermöglichen, dass Daten gültig werden. Auf ähnliche Weise zu dem Lesefall, wenn das Plattenlaufwerk 32 die erste Flanke des Strobe-Signals erkennt, ist ihm bekannt, dass gültige Daten von dem ATA-Bus 34 zu nehmen sind. Somit wird das Umschalten des Strobe-Signals verwendet, um die Daten in dem Plattenlaufwerk 32 während des Schreib-Bursts zwischenzuspeichern.
  • Nachdem der synchrone DMA-Burst initiiert und das erste Datenwort in dem Host 35 im Fall eines Lesebefehls im Host 35 oder im Fall eines Schreibbefehls im Plattenlaufwerk 32 zwischengespeichert ist, können zusätzliche Datenwörter während des synchronen DMA-Bursts transferiert werden. 5 zeigt ein Timingdiagramm der Steuer- und Datensignale während eines aufrechterhaltenden synchronen DMA-Bursts, der mehrere Datenwörter transferiert. Die Figur stellt generisch den Datenbus, wie er von einem Sender und einem Empfänger gesehen wird, und nicht den Host und das Plattenlaufwerk dar, um sowohl auf den Fall eines Lese-Burst als auch eines Schreib-Burst anwendbar zu sein. Wie es oben beschrieben ist, wird ein erstes Datenwort, das auf den ATA-Bus 34 zu einem früheren Zeitpunkt t1 (nicht gezeigt) geschrieben wurde, in dem Empfänger durch Umschalten des Strobe von dem hohen Zustand in den niedrigen Zustand zwischengespeichert (Ereignis 1). Bei einem zweiten späteren Zeitpunkt t2 wird ein nächstes Datenwort auf den ATA-Bus 34 getrieben. Dieses nächste Datenwort wird in dem Empfänger durch Umschalten des Strobe-Signals von dem niedrigen Zustand in den hohen Zustand zwischengespeichert (Ereignis 2). Das Umschalten des Strobe-Signals von dem niedrigen Zustand zurück in den hohen Zustand definiert eine zweite Flanke des Strobe-Signals. Weitere zusätzliche Wörter können auf den ATA-Bus 34 durch den Sender getrieben und in dem Empfänger durch Umschalten des Strobe-Signals vor und zurück zwischen den hohen und niedrigen Zuständen zwischengespeichert werden. Wann immer eine Flanke des Strobe-Signals vom Blickpunkt des Empfängers erkannt wird, ist dem Empfänger bekannt, dass Daten von dem ATA-Bus 34 zu nehmen sind. Somit werden beide Flanken des Strobe-Signals bei dem synchronen DMA-Burst verwendet, um Daten zu transferieren.
  • Wie es in 5 gezeigt und oben beschrieben ist, treibt während des synchronen DMA-Burst der Sender immer Daten auf den ATA-Bus 34, und nach der minimalen vorbestimmten Einstellzeitspanne Tdvs, die das Kabeleinschwingen und die Einstellzeit berücksichtigt, wird der Sender das Strobe-Signal umschalten. Das Verwenden beider Flanken des Strobe-Signals auf die oben beschriebene Art und Weise ermöglicht, dass die Frequenz des Strobe-Signals mit der Frequenz der Daten übereinstimmt. Auf dem ATA-Bus sollte die höchste Grundfrequenz des Steuersignals auf dem Kabel nicht größer als etwa 8,33 MHz sein, so dass die Signalintegrität beibehalten wird.
  • Außerdem werden die Daten an den Sender und dem Empfänger unterschiedlich gezeigt, um hervorzuheben, dass die Kabeleinschwingzeit verhindert, dass die Daten bei dem Empfänger als stabil angesehen werden, bis lange nachdem sie bei dem Sender getrieben werden. Die minimale vorbestimmte Einstellzeit, die diese Daten bei dem Sender Tdvs gültig sein müssen, und die minimale Zeit, die diese Daten ungültig sein können, nachdem der Sender das Strobe-Signal Tdvh umschaltet, bilden ein breiteres Fenster als die Dateneinstellzeit Tds und die dem Empfänger garantierte Datenhaltezeit Tdh.
  • Der Abschluss eines synchronen DMA-Bursts wird nun mit Bezug auf 6a, 6b, 7a und 7b erläutert. Nachdem das Strobe-Signal zum ersten Mal umgeschaltet wurde, können sowohl der Sender als auch der Empfänger Aktionen unternehmen, um den Burst abzuschließen. Bestimmte Bedingungen müssen zuerst erfüllt sein, bevor der synchrone DMA-Burst abgeschlossen wird. Wenn der Empfänger wünscht, den Burst abzuschließen, muss er zuerst sicherstellen, dass der anhängige Transfer vollständig unterbrochen ist. Auf ähnliche Weise muss, wenn der Sender wünscht, den Burst abzuschließen, er eine minimale Zeitspanne Tss nach dem Umschalten des Strobe-Signals warten, bevor er ein Strobe-Signal aktivieren oder DMARQ deaktivieren kann, um den anhängigen Transfer abzuschließen. Vorzugsweise beträgt die minimale Zeitspanne Tss ungefähr 50 ns.
  • 6a zeigt die Steuer- und Datensignale, die ausgetauscht werden, wenn das Plattenlaufwerk 32 den synchronen DMA-Burst während eines Lesebefehls abschließt. Das Plattenlaufwerk 32 gibt durch Deaktiviert des Signals DMARQ seinen Wunsch an, den Burst abzuschließen (Ereignis 1), und der Host 35 bestätigt die Deaktivierung durch Aktivieren von STOP und Deaktivieren von -DMARDY innerhalb der begrenzten Zeitspanne Tli (Ereignis 2). Sobald das Plattenlaufwerk 32 erkennt, dass der Host 35 STOP aktiviert hat, muss das Plattenlaufwerk 32 das Strobe-Signal in den hohen Zustand zurückführen, wenn es nicht bereits in dem hohen Zustand ist (Ereignis 3). Das Zurückführen des Strobe-Signals in den hohen Zustand muss innerhalb der begrenzten Zeitspanne Tli durchgeführt werden, nachdem das STOP Signal erkannt wird. Nachdem der Host 35 erkennt, dass DMARQ deaktiviert, STOP aktiviert, -DMARDY deaktiviert und das Strobe-Signal im hohen Zustand ist, kann der Host 35 -DMACK deaktivieren (Ereignis 4) und muss dies innerhalb einer minimalen begrenzten vorbestimmten Zeitspanne Tmli tun, nachdem alle aufgeführten Bedingungen erfüllt sind. Vorzugsweise liegt die minimale begrenzte vorbestimmte Zeitspanne Tmli in einem Bereich von etwa 20 bis etwa 150 ns. Außerdem schaltet das Plattenlaufwerk 32 das Strobe-Signal in drei Zustände nach einer Pull-Up-Zeit Tirdyz, was ermöglicht, das ein Steuersignal in die hohe Impedanz gehen kann, wie es aus der Deaktivierung von -DMACK durch den Host 35 gemessen wird. Typischerweise beträgt die Pull-Up-Zeit Tirdyz ungefähr 20 ns.
  • Beim Abschluss des synchronen DMA-Bursts ist erforderlich, dass das Strobe-Signal in den hohen Zustand zurückgeführt wird, so dass das Strobe-Signal für einen nächsten synchronen DMA-Burst bereit ist. Dieses "Strobe-Reinigen" ist notwendig, da das erste Strobe-Signal bei jedem synchronen DMA-Burst von einem hohen Zustand in einen niedrigen Zustand umgeschaltet werden muss, um das erste Datenwort in dem Empfänger zwischenzuspeichern. Das Strobe-Reinigen ist ebenfalls vorteilhaft, da es ermöglicht, dass das gegenwärtige synchrone DMA-Burst-Verfahren mit existierenden Host-Peripherie-Datentransferprotokollen rückwärts kompatibel sind, die ebenfalls das Strobe-Signal in einem anfänglichen hohen Zustand verwenden.
  • 6b zeigt die Steuer- und Datensignale, die ausgetauscht werden, wenn das Plattenlaufwerk 32 den synchronen DMA-Burst während eines Schreibbefehls abschließt. Wie in dem Fall des Plattenlaufwerks 32, das einen Lese-Burst abschließt, gibt das Plattenlaufwerk 32 seinen Wunsch an, den Burst durch Deaktivieren des DMARQ-Signals abzuschließen (Ereignis 1). Der Host 35 bestätigt die Deaktivierung von DMARQ durch Aktivieren von STOP innerhalb der begrenzten Zeitspanne Tli (Ereignis 2) und durch Zurückführen des Strobe-Signals in den hohen Zustand innerhalb der begrenzten Zeitspanne Tli (Ereignis 3). Der Host 35 kann -DMACK (Ereignis 4), sobald die obigen Ereignisse stattgefunden haben, und innerhalb der minimalen begrenzten vorbestimmten Zeitgrenze Tmli deaktivieren. Schließlich schaltet das Plattenlaufwerk 32 dann -DMARDY in drei Zustände (Ereignis 5) nach der Pull-Up-Zeit Tirdyz, wie es aus der Deaktivierung von -DMACK durch den Host 35 gemessen wird.
  • 7a zeigt die Steuer- und Datensignale, die ausgetauscht werden, wenn der Host 35 den synchronen DMA-Burst während eines Lesebefehls abschließt. Hier signalisiert der Host 35 seinen Wunsch, den Burst abzuschließen, durch Aktivieren des Signals STOP (Ereignis 1), und das Plattenlaufwerk 32 bestätigt die Anforderung durch Deaktivieren von DMARQ (Ereignis 2) und Zurückführen des Strobe-Signals in den hohen Zustand (Ereignis 3) innerhalb der begrenzten vorbestimmten Zeitspanne Tli nach dem Erkennen von STOP. Dann deaktiviert, wie in den Fällen, wenn das Plattenlaufwerk 32 den synchronen DMA-Burst abgeschlossen hatte, der Host 35 -DMACK (Ereignis 4) innerhalb der minimalen begrenzten vorbestimmten Zeitspanne Tmli, nachdem die obigen Ereignisse aufgetreten sind. Schließlich schaltet das Plattenlaufwerk 32 das Strobe-Signal in drei Zustände nach der Pull-Up-Zeit Tirdyz.
  • 7b zeigt die Steuer- und Datensignale, die ausgetauscht werden, wenn der Host 35 den synchronen DMA-Burst während eines Schreibbefehls abschließt. Wie in dem Fall, wenn der Host 35 einen Lese-Burst abschließt, signalisiert der Host 35 seinen Wunsch, den Burst abzuschließen, durch Aktivieren des STOP-Signals (Ereignis 1). Das Plattenlaufwerk 32 bestätigt die Anforderung durch Deaktivieren von DMARQ und Aktivieren von -DMARDY (Ereignis 2) innerhalb der begrenzten vorbestimmten Zeitspanne Tli nachdem Erkennen von STOP. Der Host 35 muss dann das Strobe-Signal in den hohen Zustand (Ereignis 3) innerhalb der begrenzten vorbestimmten Zeitspanne Tli zurückführen, nachdem erkannt wurde, dass DMARQ deaktiviert ist. Sobald das Strobe-Signal in den hohen Zustand zurückgeführt wurde, muss der Host 35 -DMACK ebenfalls innerhalb der minimalen begrenzten vorbestimmten Zeitspanne Tmli nach Zurückführen des Strobe-Signals in den hohen Zustand deaktivieren (Ereignis 4). Dann schaltet das Plattenlaufwerk 32 -DMARDY in drei Zustände nach der Pull-Up-Zeit Tirdyz.
  • Das Verfahren der Erfindung umfasst ferner Schritte zum Durchführen einer Fehlererfassung für die Datenintegrität der über dem ATA-Bus 34 transferierten Daten. Bei einer bevorzugten Ausführungsform wird ein Bit-Fehlererfassungscode implementiert, da die synchronen DMA-Bursts Datenwörter über den ATA-Bus 34 transferieren und somit eine bitorientierte Fehlererfassungsvorgehensweise praktischer als eine symbolorientierte Fehlererfassungsvorgehensweise ist. Wie es jedoch oben in dem Hintergrundabschnitt erläutert wurde, ist eine herkömmliche bitorientierte Fehlererfassung nicht praktisch, da die herkömmliche Bit-Fehlererfassung eine bitserielle Vorgehensweise ist.
  • Eine neuartige parallele 16-Bit-CRC-Vorgehensweise wird mittels eines parallelen CRC-Logik-Codierers/Decodierers 40 implementiert, der in 8a und 8b gezeigt ist. Der parallele CRC-Logik-Codierer/Decodierer 40 verwendet das gleiche Generatorpolynom wie die herkömmliche bitserielle Vorgehensweise, wobei jedoch ein Worttakt 44 anstatt des Bittaktes verwendet wird. Ein 16-Bit-CRC-Wert wird sowohl von dem Host 35 als auch von dem Plattenlaufwerk 32 zyklisch berechnet, wenn jedes Datenwort über den ATA-Bus 34 transferiert wird. Am Ende des Datentransfers sendet die Host-Vorrichtung 35 ihren erzeugten 16-Bit-CRC-Wert über den ATA-Bus 34 zu dem Plattenlaufwerk 32, und das Plattenlaufwerk 32 führt eine Exklusiv-ODER-Verknüpfung des empfangenen 16-Bit-CRC-Werts mit seinem berechneten 16-Bit-CRC-Wert durch, um auf Fehler zu prüfen. Wenn ein Fehler erfasst wird, setzt das Plattenlaufwerk 32 ein Fehler-Bit eines Fehlerregisters, um den Fehler dem Host 35 am Ende des Befehls zu melden.
  • Bei einer bevorzugten Version der Erfindung wird der CRC-Wert auf die folgende Art und Weise berechnet. 8a zeigt eine vereinfachte Logikschaltung für den CRC-Logik-Codierer/Decodierer 40, der eine Fehlererfassung für eine Version der Erfindung durchführt. Sowohl der Host 35 als auch das Plattenlaufwerk 32 weisen die Schaltungsanordnung für den CRC-Logik-Codierer/Decodierer 40 auf. Am Anfang jedes synchronen DMA-Burst-Transfers wird der CRC-Logik-Codierer/Decodierer 40 auf einen vorbestimmten Wert gesetzt. Vorzugsweise beträgt der Wert 516dh. Ein Strom von 16-Bit-Datenwörtern tritt in den CRC-Logik-Codierer/Decodierer 40 ein, der CRC-Logik-Codierer/Decodierer 40 führt Logikoperationen an den eingegebenen Datenbits durch, und der CRC-Wert wird von dem CRC-Logik-Codierer/Decodierer 40 ausgegeben. Wenn "d" den Strom von Datenwörtern darstellt, der in den CRC-Logik-Codierer/Decodierer 40 eintritt, wird der gesamte Strom von Datenbits wie folgt dargestellt:
    d150, d140, d130, ..., d10, d00 : erstes Wort
    d151, d141, d131, ..., d11, d01 : zweites Wort
    ....
    .... d15i, d14i, d13i, ..., d1i, d0i : i-tes Wort,
    wobei d15 das höchstwertige Bit eines Datenworts und d0 das niederstwertige Bit eines Datenworts ist. Die 16 Datenbits d0i–d15i jedes i-ten Worts 42, das transferiert wird, werden in den CRC-Logik-Codierer/Decodierer 40 mittels eines Taktsignals WCLK von einem Worttakt 44 verschoben, die CRC-Berechnung wird durchgeführt und ein berechneter 16-Bit-CRC-Wert wird als X0(q)–X15(q) 46 ausgegeben.
  • Mit Bezug auf 8b wird eine detailliertere Prinzipdarstellung des CRC-Logik-Codierers/Decodierers 40 gezeigt. Der CRC-Logik-Codierer/Decodierer 40 umfasst 16 1-Bit-Register X0–X15 48a48p, die ebenfalls als Platzhalter für den 16-Bit-CRC-Wert dienen, der berechnet wird, und 16 entsprechende Kombinationslogikkomponenten Y0–Y15 50a50p, die Logikoperationen an den Datenbits durchführen. Wie es in 8b gezeigt ist, umfassen die Kombinations-Logikkomponenten Y0–Y15 50a50p eine Eingabe von ihrem entsprechenden Register X0–X15 48a48p. Die Kombinations-Logikkomponenten Y0–Y15 50a50p umfassen zusätzliche Eingaben von den verschiedenen Komponenten des CRC-Logik-Codierers/Decodierers 40. Zwecks Klarheit und Einfachheit werden diese funktionsfähigen Verbindungen mit den anderen Komponenten jedoch nicht gezeigt. Dann wird die Ausgabe der Kombinations-Logikkomponenten 50a50p dann an die Register X0–X15 48a48p als Eingabe zurückgespeist. Wenn die Eingaben in die Register des CRC-Logik-Codierers/Decodierers als (d) und die Ausgaben von den Registern als (q) dargestellt werden, wird der CRC-Wert mittels der folgenden Gleichungen zyklisch berechnet:
    X0(d) = f16; X8(d) = f8 xor f13;
    X1(d) = f15; X9(d) = f7 xor f12;
    X2(d) = X14; X10(d) = f6 xor f11;
    X3(d) = f13; X11(d) = f5 xor f10;
    X4(d) = f12; X12(d) = f4 xor f9 xor f16;
    X5(d) = f11 xor f16; X13(d) = f3 xor f8 xor f15;
    X6(d) = f10 xor f15; X14(d) = f2 xor f7 xor f14;
    X7(d) = f9 xor f14; X15(d) = f1 xor f6 xor f13;
    wobei
    f1 = d0i xor X15(q); f9 = d8i xor X7(q) xor f5;
    f2 = d1i xor X14(q); f10 = d9i xor X6(q) xor f6;
    f3 = d2i xor X13(q); f11 = d10i xor X5(q) xor f7;
    f4 = d3i xor X12(q); f12 = d11i xor X4(q) xor f1 xor f8;
    f5 = d4i xor X11(q) xor f1; f13 = d12i xor X3(q) xor f2 xor f9;
    f6 = d5i xor X10(q) xor f2; f14 = d13i xor X2(q) xor f3 xor f10;
    f7 = d6i xor X9(q) xor f3; f15 = d14i xor X1(q) xor f4 xor f11;
    f8 = d7i xor X8(q) xor f4; f16 = d15i xor X0(q) xor f5 xor f12.
  • Während eines synchronen DMA-Bursts für einen Schreib befehl berechnet der Host 35, da er jedes Datenwort sendet, ebenfalls seinen 16-Bit-CRC-Wert auf die oben beschriebene Art und Weise. Auf ähnliche Weise berechnet er, da das Plattenlaufwerk 32 jedes Datenwort empfängt, seinen 16-Bit-CRC-Wert. Wenn der Host 35 das Transferieren der Datenwörter an dem Ende des synchronen DMA-Bursts abgeschlossen hat, sendet der Host 35 seinen berechneten CRC-Wert über den ATA-Bus 34. Bei Empfang des CRC-Werts des Hosts führt das Plattenlaufwerk 32 mit dem empfangenen CRC-Wert und seinem eigenen berechneten CRC-Wert eine Exklusiv-ODER-Verknüpfung durch und prüft, ob das Ergebnis Null ist. Wenn ein Ergebnis gleich Null erhalten wird, wird kein Fehler gemeldet. Ein Ergebnis ungleich Null gibt jedoch einen Fehler an, der dem Host durch Setzen eines Fehler-Bits in einem Fehlerregister an dem Plattenlaufwerk 32 gemeldet wird.
  • Eine ähnliche Prozedur wird während eines synchronen Bursts für einen Lesebefehl durchgeführt. Wenn das Plattenlaufwerk 32 jedes Datenwort über den ATA-Bus 34 zu dem Host 35 sendet, berechnet das Plattenlaufwerk 32 seinen CRC-Wert. Auf ähnliche Weise berechnet der Host 35, wenn er jedes Datenwort empfängt, seinen CRC-Wert. Am Ende des synchronen DMA-Burst sendet das Plattenlaufwerk 32, wenn es das Transferieren von Datenwörtern abschließt, seinen berechneten CRC-Wert jedoch nicht an den Host 35. Stattdessen sendet, wie im Fall des Schreibbefehls, der Host 35 seinen berechneten CRC-Wert über den ATA-Bus 34 an das Plattenlaufwerk 32, das dann die oben beschriebene Exklusiv-ODER-Verknüpfung und Null-Prüfung durchführt.
  • Vorzugsweise ist die während des synchronen DMA-Bursts durchgeführte parallele CRC-Prüfung für Softwaretreiber von peripheren Laufwerkvorrichtungen existierender ATA-Systemen transparent. Wenn ein synchroner DMA-Burst Bitfehler mittels der parallelen CRC-Vorgehensweise erfasst wird, werden die Bits 2 und 7 des aktuellen ATA-Fehlerregisters gesetzt. Bit 7 ist gegenwärtig reserviertes Bit des ATA-Fehlerregisters und wird als ein Schnittstellenfehlerbit unter dem aktuellen synchronen DMA-Burst-Protokoll umdefiniert. Bit 2 ist ein Aborted-Befehl-Bit und wird gesetzt, so dass es die aktuellen ATA-Softwaretreiber erfassen und auf diesen "neuen" Fehler antworten. Somit ist die während des synchronen DMA-Burstprotokolls der Erfindung durchgeführte parallele CRC-Prüfung mit existierenden Softwaretreibern rückwärts kompatibel.
  • Fachleute werden erkennen, dass weitere Fehlererfassungsvorgehensweisen mittels eines 16-Bit-Registers auf eine ähnliche Art und Weise implementiert werden können. Wenn es beispielsweise gewünscht wäre, symbolorientierte Burst-Fehler zu erfassen, kann ein 16-Bit-Symbol-Reed-Solomon-ECC auf eine bekannte Art und Weise berechnet werden. Eine weitere Vorgehensweise zum Prüfen nach Datenintegrität kann darin bestehen, eine Paritätsprüfung bei dem Abschluss jedes synchronen DMA-Bursts zu implementieren.
  • Ein Betrieb einer Ausführungsform des synchronen DMA-Burst-Transferverfahrens der Erfindung wird nun mit Bezug auf 9 erläutert, die ein vereinfachtes Ablaufdiagramm zum Durchführen eines synchronen DMA-Burst-Transfers zeigt. Jeder der in dem Ablaufdiagramm von 9 gezeigten Schritte wird gemäß den oben detaillierten Timing-Einschränkungen mit Bezug auf die einzelnen Schritte des Verfahrens durchgeführt. Ein synchroner DMA-Burst wird als Antwort auf den Empfang und das Decodieren eines Host-Lese- oder Schreibbefehls 901 von dem Plattenlaufwerk initiiert. Das Plattenlaufwerk initiiert immer den synchronen DMA-Burst durch Aktivieren von DMARQ 902, wenn es bereit ist, den Burst zu starten. Der Host muss bereit sein, mit dem synchronen DMA-Burst fortzufahren, bevor der Burst ausgeführt werden kann, so dass eine Bestimmung 903, ob der Host bereit ist, durchgeführt wird. Wenn der Host nicht bereit ist, wird der Burst nicht gestartet und die Platte muss fortfahren zu prüfen, ob der Host bereit ist. Wenn der Host bereit ist, wie es durch die Aktivierung von -DMACK angegeben wird, fährt das Verfahren entlang Pfad A oder B abhängig davon fort, ob ein Host-Lese- oder – Schreibbefehl decodiert wurde. Für einen Schreibbefehl deaktiviert der Host STOP 905, um anzugeben, dass der Transfer fortfahren kann. Als Antwort auf die Deaktivierung von STOP durch den Host aktiviert 907 das Plattenlaufwerk -DMARDY, um dem Host anzugeben, dass es zur Datenannahme bereit ist. Nachdem der Host -DMARDY erkennt, treibt 909 der Host ein Datenwort auf den Bus und berechnet einen 16-Bit-CRC-Wert. Der Host schaltet 911 dann das Strobe-Signal nach dem Treiben des Datenworts auf den Bus und dem Erkennen um, dass das Plattenlaufwerk bereit ist. Nachdem die Daten durch das Umschalten des Strobe-Signals zwischengespeichert sind, berechnet 913 das Plattenlaufwerk seinen 16-Bit-CRC-Wert. Dann wird bestimmt 915; ob der Burst abzuschließen ist. Wenn es noch mehr zu transferierende Daten gibt, schleift das Verfahren zu den Schritten zurück, bei denen der Host die Daten treibt und den CRC-Wert berechnet 909, der Host das Strobe-Signal umschaltet 911, das Plattenlaufwerk seinen CRC-Wert berechnet 913, wobei dann bestimmt wird, ob der Burst abzuschließen ist 915. Diese Schleife wird wiederholt, bis bestimmt wird, dass der Burst abzuschließen ist. Der Abschluss wird in der oben mit Bezug auf 6a, 6b, 7a und 7b beschriebenen Art und Weise durchgeführt. Sobald der Abschluss erfasst ist, sendet 916 der Host seinen berechneten CRC-Wert an das Plattenlaufwerk, und das Plattenlaufwerk vergleicht 917 den empfangenen CRC-Wert mit seinen berechneten CRC-Wert auf die oben detaillierte Art und Weise. Die Beendigung 918 des CRC-Vergleichs gibt das Ende des synchronen DMA-Bursts an.
  • Wenn bestimmt wird, dass der Host bereit ist 903, mit dem synchronen DMA-Burst fortzufahren, wird dem Pfad B gefolgt, wenn der Host-Befehl ein Lesebefehl war. Der Host deaktiviert 904 STOP, um anzugeben, dass der Transfer fortfahren soll, und aktiviert 906 ebenfalls -DMARDY, um anzugeben, dass er zur Datenannahme bereit ist. Nachdem das Plattenlaufwerk STOP und -DMARDY von dem Host erkennt, treibt das Plattenlaufwerk das Datenwort auf den Bus und berechnet einen 16-Bit-CRC-Wert. Dann schaltet 910 das Plattenlaufwerk das Strobe-Signal um. Nach dem Zwischenspeichern des Datenworts in dem Host durch das Umschalten des Strobe-Signals, berechnet der Host seinen 16-Bit-CRC-Wert. Nach der Berechnung des 16-Bit-CRC-Werts durch den Host fährt das Verfahren auf eine Art und Weise fort, die dem für den Fall eines Schreibbefehls ähnlich ist, wobei bestimmt wird 914, ob der Burst abzuschließen ist, und wobei das Plattenlaufwerk fortfährt, Daten zu treiben, den CRC-Wert zu berechnen 908 und das Strobe-Signal umzuschalten 910, und der Host seinen CRC-Wert berechnet, bis der Abschluss erfasst wird. Sobald der Abschluss erfasst wird, werden die gleichen Schritte, die mit Bezug auf einen Schreibbefehlabschluss beschrieben wurde, durchgeführt. Das heißt, der Host sendet 916 seinen berechneten CRC-Wert und das Plattenlaufwerk führt einen CRC-Vergleich 917 durch, und der Abschluss des CRC-Vergleichs gibt 918 das Ende des synchronen DMA-Bursts an.
  • Die Versionen der Erfindung wurden mit Bezug darauf durchgeführt, einen einzigen synchronen DMA-Burst durchzuführen, um einen oder mehrerer Datenwörter zutransferieren. Da ein Host-Lese- oder Schreibbefehl die Durchführung einer Reihe von synchronen DMA-Burst erfordern kann, werden Fachleute erkennen, dass die oben beschriebenen Versionen des Durchführens des synchronen DMA-Bursts wiederholt werden, bis der Lese- oder Schreibbefehl des Host abgeschlossen ist. Das Plattenlaufwerk 32 muss den zweiten/zusätzlichen synchronen DMA-Burst initiieren, der Host 35 muss angeben, dass er bereit ist, den Burst zu starten usw., wie es oben beschrieben ist.
  • Die oben beschriebenen Versionen der Erfindung werden ohne weiteres bei existierenden Systemen mit einer ATA-Schnittstelle ohne den Bedarf zusätzlicher Signalleitungen oder elektrischer Änderungen an dem ATA-Bus implementiert. Der synchrone DMA-Burst-Transfer kann bei existierenden Systemen durch Verwenden der aktuellen Signalleitungen und Umdefinieren einiger der aktuellen ATA-Signalleitungen durchgeführt werden, um neue Funktionen bereitzustellen. Insbesondere wurde das IORDY-Signal, das für die PIO-Ablaufsteuerung verwendet wird, und das -DIOR-Signal, das für Lesebefehle bei Transferprotokollen des Stands der Technik verwendet werden, umdefiniert. Für Schreib-Bursts wird -DIOR als das Strobe-Signal und IORDY als das -DMARDY-Signal bei dem synchronen DMA-Protokoll verwendet. Für Lese-Bursts wird -DIOR als das -DMARDY-Signal und IORDY als das Strobe-Signal bei dem synchronen DMA-Protokoll verwendet. Zuletzt wurde das -DIOW-Signal der Transferprotokolle des Stands der Technik als das STOP-Signal bei dem vorliegenden Verfahren umdefiniert. Außerdem bleiben die DMARQ und -DMACK-Signale unverändert, um eine Rückwärts-Kompatibilität mit den existierenden Transferprotokollen sicherzustellen.
  • Außerdem werden sehr wenige Hardware-Komponenten für einen ordnungsgemäßen Abschluss existierender ATA-Buskonfigurationen benötigt, um eine Implementierung des synchronen DMA-Burst-Transferprotokolls der Erfindung zu ermöglichen. Typischerweise sollte das Plattenlaufwerkende des ATA-Busses mit einem Reihenwiderstand in dem Bereich von etwa 47 bis etwa 100 Ohm abgeschlossen werden. Vorzugsweise sollte ein Reihenwiderstand von etwa 82 Ohm verwendet werden. Außerdem können Kondensatoren von weniger als etwa 10 pF hinzugefügt werden, um diese Leitungen zu erden. Für alle bidirektionalen Leitungen und Daten-getriebene Leitungen wird ein Reihenwiderstand in dem Bereich von etwa 22 bis etwa 47 Ohm aufgenommen. Auf ähnliche Art und Weise ist an dem Host-Ende des ATA-Kabels ein Reihenwiderstand in dem Bereich von etwa 47 bis etwa 100 Ohm aufgenommen, und von dem Host getriebene Leitungen werden typischerweise mit einem Reihenwiderstand in dem Bereich von etwa 22 bis etwa 47 Ohm abgeschlossen. Für sowohl das Plattenlaufwerkende als auch das Host-Ende des Kabels werden die Widerstände vorzugsweise so nahe wie möglich an dem ATA-Verbinder angeordnet. Außerdem werden die Abschlüsse vorzugsweise ausgewählt, so dass die durch die Abschlussschaltungen empfangene Kapazität weniger als etwa 25 pF beträgt und die Anstiegs- und Abfallzeiten der Signalleitungen etwa 5 oder mehr ns betragen. Diese Werte sind mit denjenigen konsistent, die heute aktuell für ATA-Systeme empfohlen werden.
  • Außerdem kann die für die beschriebene parallele 16-Bit-CRC-Fehlererfassungslogik erforderliche Hardware ohne wieteres mittels einer herkömmlicher Schaltungsanordnung implementiert werden. Vorzugsweise können die 16 1-Bit-Register, die zum Halten des CRC-Werts verwendet werden, wenn er berechnet wird, mit 16 herkömmlichen Flip-Flops implementiert werden, die betriebsfähig parallel verbunden sind. Außerdem können die Kombinationslogik-Komponenten oder -Blöcke des CRC-Logik-Codierers/Decodierers 40 mittels herkömmlicher Logikgatter aufgebaut werden, die die Exklusiv-ODER-Verknüpfungsoperationen implementieren, wie es oben beschrieben ist.
  • Das synchrone DMA-Burst-Transferverfahren der Erfindung stellt verschiedene Vorteile gegenüber Transferverfahren des Stands der Technik bereit. Das vorliegende Verfahren liefert einen kostengünstigen Weg, um die unzureichende Kabelstruktur und den unzumutbaren Abschluss zu umgehen, die dem ATA-Bus 34 inhärent sind, um eine erhöhte Datentransferrate von ungefähr 33,3 MByte/s zu erhalten. Das vorliegende Verfahren kann bei existierenden Konfigurationen des ATA-Busses 34 mit einer kleinen Anzahl zusätzlicher Gatter implementiert werden. Außerdem wird das synchrone DMA-Burst-Transferverfahren mittels existierender Signalleitungen des ATA-Busses 34 und Umdefinieren existierender Signalleitungen implementiert, so dass das vorliegende Verfahren mit existierenden Transferprotokollen rückwärts kompatibel ist. Ein weiterer Vorteil des vorliegenden Verfahrens besteht darin, dass das synchrone DMA-Burst-Protokoll eine erhöhte Datentransferrate ohne Erhöhen der Steuersignalübertragungs-Strobe-Rate des ATA-Busses 34 bereitstellt, so dass die Signalintegrität beibehalten wird. Noch ein weiterer Vorteil der Erfindung besteht darin, dass sie eine Prozedur zur parallelen Bit-Fehlererfassung umfasst, die existierenden Softwaretreibern des ATA-Systems transparent ist, so dass die Erfindung mit den existierenden Softwaretreibern – jedoch mit größerer Datenintegrität – rückwärts kompatibel ist.
  • Obwohl die Erfindung ausführlich mit Bezug auf ihre bestimmten bevorzugten Ausführungsformen beschrieben wurde, ist es offensichtlich, dass weitere Ausführungsformen möglich sind. Fachleute werden erkennen, dass sich viele Änderungen im Aufbau und der Schaltungsanordnung und bei Anwendungen der Erfindung ergeben können, ohne vom Schutzumfang der Erfindung abzuweichen.

Claims (21)

  1. Verfahren zum Durchführen eines synchronen DMA-Bursts zwischen einer peripheren Laufwerkvorrichtung (32) und einer Host-Vorrichtung (35) über einen Bus (34) und als Antwort auf einen Host-Vorrichtungslesebefehl, wobei der Bus eine diesem zugeordnete Steuersignalübertragungs-Strobe-Rate aufweist, mit folgenden Schritten: (a) Aktivieren eines DMA-Anforderungssignals (DMARQ) durch die periphere Laufwerkvorrichtung (32), um den synchronen DMA-Burst zu initiieren; (b) Aktivieren eines DMA-Bestätigungssignals (DMACK) durch die Host-Vorrichtung (35) als Antwort auf das DMA-Anforderungssignal, wenn die Host-Vorrichtung bereit ist, den synchronen DMA-Burst zu beginnen; (c) Schicken eines ersten Datenworts (DATA) auf den Bus durch die periphere Laufwerkvorrichtung (32) eine vorbestimmte Zeitspanne (Tli), nachdem das DMA-Bestätigungssignal von der Host-Vorrichtung aktiviert wird; (d) Umschalten eines Strobe-Signals (STROBE) von einem hohen Zustand in einen niedrigen Zustand durch die periphere Laufwerkvorrichtung (32) eine zweite vorbestimmte Zeitspanne (Tdvs) nach dem Schicken des ersten Datenworts auf den Bus, um das erste Datenwort in der Host-Vorrichtung zwischenzuspeichern, wobei das Umschalten des Strobe-Signals von dem hohen Zustand in den niedrigen Zustand eine erste Flanke des Strobe-Signals definiert; (e) Schicken eines zusätzlichen Datenworts auf den Bus durch die periphere Laufwerkvorrichtung (32); und (f) Umschalten des Strobe-Signals von dem niedrigen Zustand in den hohen Zustand durch die periphere Laufwerkvorrichtung (32), nachdem die zweite vorbestimmte Zeitspanne (Tdvs) abgelaufen ist, um das zusätzliche Datenwort in der Host- Vorrichtung zwischengespeichern, wobei das Umschalten des Strobe-Signals von dem niedrigen Zustand in den hohen Zustand eine zweite Flanke des Strobe-Signals definiert, derart, dass die periphere Laufwerkvorrichtung das Initiieren des synchronen DMA-Bursts steuert, derart, dass die Steuerung sowohl der Daten als auch des Strobe-Signals durch die periphere Laufwerkvorrichtung Wirkungen von Laufzeitverzögerung, Kabelsetzen und DMA-Bursts zugeordneter Einstellzeit minimiert und eine Datentransferrate des Busses erhöht, und derart, dass die Daten unter Verwendung sowohl der ersten als auch der zweiten Flanke des Strobe-Signals zwischengespeichert werden, wobei es ermöglicht wird, dass die Steuersignalübertragungs-Strobe-Rate des Busses unverändert bleibt, während die Datentransferrate erhöht wird.
  2. Verfahren gemäß Anspruch 1, ferner mit folgenden Schritten: (g) Aktivieren eines Stopp-Signals (DMARQ(DRIVE)) durch die periphere Laufwerkvorrichtung, um den synchronen DMA-Burst zu beenden; und (h) Zurückführen des Strobe-Signals (STROBE) in den hohen Zustand durch die periphere Laufwerkvorrichtung, wenn die periphere Laufwerkvorrichtung das Transferieren der Daten beendet hat.
  3. Verfahren gemäß Anspruch 2, bei dem das Verfahren mit existierenden Strobe-Transferprotokollen rückwärts kompatibel ist.
  4. Verfahren gemäß Anspruch 1, bei dem der synchrone DMA-Burst über einem ATA-Bus durchgeführt wird, der eine Steuersignalübertragungs-Strobe-Rate von etwa 8,3 MHz aufweist, und die Datentransferrate des Busses auf ungefähr 33,3 MByte/s erhöht wird.
  5. Verfahren gemäß Anspruch 1, ferner mit einer parallelen Bit-Fehlererfassung mit folgenden Schritten: Berechnen eines 16-Bit-CRC-Werts für jedes auf den Bus geschickte Datenwort durch die periphere Laufwerkvorrichtung; nachdem jedes Datenwort in der Host-Vorrichtung (35) zwischengespeichert ist, Berechnen eines 16-Bit-CRC-Werts für jedes von dem Bus empfangene Datenwort durch die Host-Vorrichtung; und nachdem die periphere Laufwerkvorrichtung das Transferieren der Daten beendet hat, Senden ihres berechneten 16-Bit-CRC-Werts an die periphere Laufwerkvorrichtung durch die Host-Vorrichtung; und Durchführen eines Vergleich des empfangenen 16-Bit-CRC-Werts mit ihrem berechneten 16-Bit-CRC-Wert durch die periphere Laufwerkvorrichtung, derart, dass die Gültigkeit der über den Bus transferierten Daten verifiziert wird.
  6. Verfahren gemäß Anspruch 5, bei dem die parallele Bit-Fehlererfassung für existierende ATA-Softwaretreiber transparent ist, um eine Rückwärtskompatibilität mit existierenden ATA-Softwaretreibern bereitzustellen, während die Datenintegrität verbessert wird.
  7. Verfahren gemäß Anspruch 5, bei dem die Schritte des Berechnens des 16-Bit-CRC-Werts durch die periphere Laufwerkvorrichtung und durch die Host-Vorrichtung bei einer Datenwort-Taktrate durchgeführt werden.
  8. Verfahren gemäß Anspruch 1, ferner mit folgenden Schritten: nach dem Schicken eines ersten Datenworts auf den Bus, Berechnen eines 16-Bit-CRC-Werts für das erste auf den Bus geschickte Datenwort durch die periphere Laufwerkvorrichtung; Aktivieren eines Bereitsignals (DMARDY) durch die Host-Vorrichtung, das auf das DMA-Bestätigungssignal (DMACK) anspricht, um anzugeben, dass die Host-Vorrichtung zum Empfangen von Daten bereit ist; Umfassen einer Zeitspanne (Tli) durch die erste vorbestimmte Zeitspanne, nachdem das Bereitsignal von der Host-Vorrichtung aktiviert ist; Berechnen eines 16-Bit-CRC-Werts für das erste von dem Bus empfangene Datenwort durch die Host-Vorrichtung derart, dass Bit-Fehler mit den berechneten 16-Bit-CRC-Werten erfasst werden können, um eine Datenintegrität bereitzustellen.
  9. Verfahren gemäß Anspruch 8, ferner mit folgenden Schritten: Berechnen eines 16-Bit-CRC-Werts für das zweite Datenwort durch die periphere Laufwerkvorrichtung; Berechnen des 16-Bit-CRC-Werts für das zweite von dem Bus empfangene Datenwort durch die Host-Vorrichtung; Wiederholen der Schritte des Treibens eines Datenworts auf den Bus, des Berechnens des 16-Bit-CRC-Werts für das Datenwort und des Umschaltens des Strobe-Signals durch die periphere Laufwerkvorrichtung, nachdem die zweite vorbestimmte Zeitspanne abgelaufen ist, seit das Datenwort auf den Bus getrieben wurde, bis die periphere Laufwerkvorrichtung das Senden von Daten beendet hat; Berechnen des 16-Bit-CRC-Werts durch die Hostvorrichtung für jedes von dem Bus empfangene Datenwort; Aktivieren eines Stopp-DMA-Signals (DMARQ(DRIVE)) durch die periphere Laufwerkvorrichtung, um anzugeben, dass die periphere Laufwerkvorrichtung das Senden von Daten beendet hat, und um den synchronen DMA-Burst zu beenden; Zurückführen des Strobe-Signals (STROBE) in den hohen Zustand durch die periphere Laufwerkvorrichtung, nachdem sie das Senden von Daten beendet hat; Senden des durch sie berechneten 16-Bit-CRC-Werts durch die Host-Vorrichtung an die periphere Laufwerkvorrichtung, nachdem das Strobe-Signal in den hohen Zustand zurückgeführt ist; und Vergleichen des empfangenen 16-Bit-CRC-Werts mit ihrem berechneten 16-Bit-CRC-Wert durch die periphere Laufwerkvorrichtung; derart, dass die Gültigkeit der über den Bus transferierten Daten verifiziert wird, und derart, dass das Verfahren mit existierenden Strobe-Transferprotokollen rückwärts kompatibel ist.
  10. Verfahren gemäß Anspruch 8, bei dem die Daten über einen ATA-Bus transferiert werden, der eine Steuersignalübertragungs-Strobe-Rate von etwa 8,3 MHz aufweist, und wobei die Verwendung von sowohl der ersten als auch der zweiten Flanke des Strobe-Signals, um die Daten in dem Empfänger zwischenzuspeichern, die Datentransferrate erhöht, ohne zu erfordern, dass die Steuersignalübertragungs-Strobe-Rate des ATA-Busses erhöht wird, wodurch die Signalverzerrung auf dem ATA-Bus minimiert wird.
  11. Verfahren gemäß Anspruch 8, bei dem die Datentransferrate etwa 33,3 MByte/s ist.
  12. Verfahren gemäß Anspruch 8, ferner mit einer parallelen Bit-Fehlererfassung mit folgenden Schritten: nachdem die periphere Laufwerkvorrichtung das Transferieren von Daten beendet hat, Senden ihres berechneten 16-Bit-CRC-Werts an die periphere Laufwerkvorrichtung durch die Host-Vorrichtung; und Durchführen eines Vergleichs des empfangenen 16-Bit-CRC-Werts mit ihrem berechneten 16-Bit-CRC-Wert durch die periphere Laufwerkvorrichtung derart, dass die Gültigkeit der über den Bus transferierten Daten verifiziert wird.
  13. Verfahren gemäß Anspruch 12, bei dem die parallele Bit-Fehlererfassung für existierende ATA-Software-Treiber transparent ist, um mit existierenden ATA-Software-Treibern eine Rückwärtskompatibilität bereitzustellen, während die Datenintegrität verbessert wird.
  14. Verfahren gemäß Anspruch 8, bei dem die Schritte des Berechnens des 16-Bit-CRC-Werts durch die periphere Laufwerkvorrichtung und durch die Host-Vorrichtung bei einer Datenwort-Taktrate durchgeführt werden.
  15. Verfahren zum Durchführen eines synchronen DMA-Bursts zwischen einer Host-Vorrichtung (35) und einer peripheren Laufwerkvorrichtung (32) über einen Bus (34) und als Antwort auf einen Host-Vorrichtungs-Schreibbefehl, wobei der Bus eine diesem zugeordnete Steuersignalübertragungs-Strobe-Rate aufweist, mit folgenden Schritten: (a) Aktivieren eines DMA-Anforderungssignals (DMARQ) durch die periphere Laufwerkvorrichtung (32), um den synchronen DMA-Burst zu initiieren; (b) Aktivieren eines DMA-Bestätigungssignals (DMACK) als Antwort auf das DMA-Anforderungssignal und Schicken eines ersten Datenworts (DATA) auf den Bus durch die Host-Vorrichtung (35), wenn die Host-Vorrichtung bereit ist, den synchronen DMA-Burst zu beginnen; (c) Aktivieren eines Bereit-Signals (DMARDY) innerhalb einer ersten vorbestimmten Zeitspanne durch die periphere Laufwerkvorrichtung (32), nachdem das DMA-Bestätigungssignal (DMACK) von der Host-Vorrichtung aktiviert wird; (d) Umschalten eines Strobe-Signals (STROBE) von einem hohen Zustand in einen niedrigen Zustand innerhalb der vorbestimmten Zeitspanne durch die Host-Vorrichtung (35), nachdem das Bereitsignal von der peripheren Laufwerkvorrichtung aktiviert ist, um das erste Datenwort in der peripheren Laufwerkvorrichtung zwischenzuspeichern, wobei das Umschalten des Strobe-Signals von dem hohen Zustand in den niedrigen Zustand eine erste Flanke des Strobe-Signals definiert; (e) Schicken eines zusätzlichen Datenworts auf den Bus durch die Host-Vorrichtung (35); und (f) Umschalten des Strobe-Signals von dem niedrigen Zustand in den hohen Zustand eine zweite vorbestimmte Zeitspanne nach dem Schicken des zusätzlichen Datenworts auf den Bus durch die Host-Vorrichtung (35), um das zusätzliche Datenwort in der periphere Laufwerkvorrichtung zwischenzuspeichern, wobei das Umschalten des Strobe-Signals von dem niedrigen Zustand in den hohen Zustand eine zweite Flanke des Strobe-Signals definiert; derart, dass die periphere Laufwerkvorrichtung das Initiieren des synchronen DMA-Bursts steuert, derart, dass die Steuerung sowohl der Daten als auch des Strobe-Signals durch die Host-Vorrichtung die Wirkungen von Laufzeitverzögerung, Kabelsetzen und DMA-Bursts zugeordneter Einstellzeit minimiert, und eine Datentransferrate des Busses erhöht, und derart, dass die Daten unter Verwendung sowohl der ersten als auch der zweiten Flanke des Strobe-Signals zwischengespeichert werden, um dadurch zu ermöglichen, dass die Steuersignalübertragungs-Strobe-Rate des Busses unverändert bleibt, während die Datentransferrate erhöht wird.
  16. Verfahren gemäß Anspruch 15, ferner mit folgendem Schritt: (e) Zurückführen des Strobe-Signals in den hohen Zustand durch die Host-Vorrichtung, wenn die Host-Vorrichtung das Transferieren von Daten beendet hat.
  17. Verfahren gemäß Anspruch 16, wobei das Verfahren mit existierenden Strobe-Übertragungsprotokollen rückwärts kompatibel ist.
  18. Verfahren gemäß Anspruch 15, bei dem der synchrone DMA-Burst über einem ATA-Bus mit einer Steuersignalübertragungs-Strobe-Rate von etwa 8,3 MHz durchgeführt und die Datentransferrate auf etwa 33,3 MByte/s erhöht wird.
  19. Verfahren gemäß Anspruch 15, ferner mit einer parallelen Bit-Fehlererfassung mit folgenden Schritten: Berechnen eines 16-Bit-CRC-Werts für das auf den Bus geschickte Datenwort durch die Host-Vorrichtung; nachdem das Datenwort in der peripheren Laufwerkvorrichtung zwischengespeichert ist, Berechnen eines 16-Bit-CRC-Werts für das von dem Bus empfangene Datenwort durch die periphere Laufwerkvorrichtung; nachdem die Host-Vorrichtung das Transferieren von Daten beendet hat, Senden ihres berechneten 16-Bit-CRC-Werts an die periphere Laufwerkvorrichtung durch die Host-Vorrichtung; und Durchführen eines Vergleichs des empfangenen 16-Bit-CRC-Werts mit ihrem berechneten 16-Bit-CRC-Wert durch die periphere Laufwerkvorrichtung, derart, dass die Gültigkeit der über den Bus transferierten Daten verifiziert wird.
  20. Verfahren gemäß Anspruch 19, bei dem die Bit-Fehlererfassung für existierende ATA-Softwaretreiber transparent ist, um mit existierenden ATA-Softwaretreibern eine Rückwärtskompatibilität bereitzustellen, während die Datenintegrität verbessert wird.
  21. Verfahren gemäß Anspruch 20, bei dem die Schritte des Berechnens des 16-Bit-CRC-Werts durch die periphere Laufwerkvorrichtung und durch die Host-Vorrichtung bei einer Datenworttaktrate durchgeführt werden.
DE69631327T 1995-11-21 1996-11-12 Synchrones dma-übertragungsprotokoll Expired - Fee Related DE69631327T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/555,977 US5758188A (en) 1995-11-21 1995-11-21 Synchronous DMA burst transfer protocol having the peripheral device toggle the strobe signal such that data is latched using both edges of the strobe signal
US555977 1995-11-21
PCT/US1996/017934 WO1997019408A1 (en) 1995-11-21 1996-11-12 Synchronous dma transfer protocol

Publications (2)

Publication Number Publication Date
DE69631327D1 DE69631327D1 (de) 2004-02-19
DE69631327T2 true DE69631327T2 (de) 2004-10-28

Family

ID=24219392

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69631327T Expired - Fee Related DE69631327T2 (de) 1995-11-21 1996-11-12 Synchrones dma-übertragungsprotokoll

Country Status (9)

Country Link
US (1) US5758188A (de)
EP (1) EP0804764B1 (de)
JP (1) JPH10513294A (de)
KR (1) KR19980701563A (de)
CN (1) CN1169193A (de)
AU (1) AU7610896A (de)
CA (1) CA2210062A1 (de)
DE (1) DE69631327T2 (de)
WO (1) WO1997019408A1 (de)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI104858B (fi) * 1995-05-29 2000-04-14 Nokia Networks Oy Menetelmä ja laitteisto asynkronisen väylän sovittamiseksi synkroniseen piiriin
US5784390A (en) * 1995-06-19 1998-07-21 Seagate Technology, Inc. Fast AtA-compatible drive interface with error detection and/or error correction
JP3420018B2 (ja) * 1997-04-25 2003-06-23 株式会社東芝 データレシーバ
US6170031B1 (en) * 1997-07-08 2001-01-02 Seagate Technology Llc Read/write state machines for transferring data to/from host interface in a digital data storage system
US6324642B1 (en) * 1998-07-08 2001-11-27 Intel Corporation Method and apparatus for increasing the data rate over a parallel port
US6223229B1 (en) 1998-09-16 2001-04-24 Quantum Corporation Method for detecting a cable type by utilizing the peripheral device to measure and send a state of the PDIAG-signal to the host
DE19846914C2 (de) * 1998-10-12 2003-10-02 Oce Printing Systems Gmbh Datenbus und Verfahren zum Kommunizieren zweier Baugruppen mittels eines solchen Datenbusses
US6577687B2 (en) * 1998-12-23 2003-06-10 Maxtor Corporation Method for transmitting data over a data bus with minimized digital inter-symbol interference
JP2000200152A (ja) * 1999-01-06 2000-07-18 Toshiba Corp 磁気ディスク装置
US6317842B1 (en) 1999-02-16 2001-11-13 Qlogic Corporation Method and circuit for receiving dual edge clocked data
WO2000073915A1 (fr) * 1999-05-31 2000-12-07 Mitsubishi Denki Kabushiki Kaisha Systeme de transfert de donnees
US6715004B1 (en) * 2000-03-29 2004-03-30 Intel Corporation Method and apparatus for intermediate validation of data transferred between a host and a device
US6618788B1 (en) * 2000-09-27 2003-09-09 Cypress Semiconductor, Inc. ATA device control via a packet-based interface
US6804800B2 (en) * 2000-12-29 2004-10-12 Intel Corporation Method and apparatus for detecting and recovering from errors in a source synchronous bus
WO2003030165A2 (en) * 2001-09-27 2003-04-10 Matsushita Electric Industrial Co., Ltd. Transmission method, sending device and receiving device
KR100440970B1 (ko) * 2002-07-11 2004-07-21 삼성전자주식회사 데이터 전송을 조기에 종료하는 장치 및 방법
EP1561159A4 (de) * 2002-11-12 2007-08-29 Zetera Corp Elektrische einrichtungen mit verbesserter kommunikation
US7170890B2 (en) * 2002-12-16 2007-01-30 Zetera Corporation Electrical devices with improved communication
US7649880B2 (en) * 2002-11-12 2010-01-19 Mark Adams Systems and methods for deriving storage area commands
US8005918B2 (en) * 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
US7007114B1 (en) * 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7099963B2 (en) * 2003-03-10 2006-08-29 Qlogic Corporation Method and system for monitoring embedded disk controller components
US7870346B2 (en) * 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7457903B2 (en) * 2003-03-10 2008-11-25 Marvell International Ltd. Interrupt controller for processing fast and regular interrupts
US6848935B2 (en) * 2003-05-28 2005-02-01 Benq Corporation Data control cable for connecting a mobile device to a host device
US7779212B2 (en) 2003-10-17 2010-08-17 Micron Technology, Inc. Method and apparatus for sending data from multiple sources over a communications bus
KR100531729B1 (ko) * 2003-12-26 2005-11-29 한국전자통신연구원 피씨 병렬포트를 이용한 주변기기와의 인터페이스 장치 및그 방법
US7139150B2 (en) * 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US7120084B2 (en) * 2004-06-14 2006-10-10 Marvell International Ltd. Integrated memory controller
US8166217B2 (en) * 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
EP1784734A1 (de) * 2004-06-30 2007-05-16 Nokia Corporation Verbesserte schnittstelle
US8032674B2 (en) * 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US7757009B2 (en) * 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) * 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) * 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7778812B2 (en) * 2005-01-07 2010-08-17 Micron Technology, Inc. Selecting data to verify in hardware device model simulation test generation
US7516311B2 (en) * 2005-01-27 2009-04-07 Innovasic, Inc. Deterministic microcontroller context arrangement
US20060168420A1 (en) * 2005-01-27 2006-07-27 Innovasic, Inc. Microcontroller cache memory
US7526579B2 (en) * 2005-01-27 2009-04-28 Innovasic, Inc. Configurable input/output interface for an application specific product
US20060168421A1 (en) * 2005-01-27 2006-07-27 Innovasic, Inc. Method of providing microcontroller cache memory
US7680967B2 (en) * 2005-01-27 2010-03-16 Innovasic, Inc. Configurable application specific standard product with configurable I/O
US7562207B2 (en) * 2005-01-27 2009-07-14 Innovasic, Inc. Deterministic microcontroller with context manager
WO2006081093A2 (en) * 2005-01-27 2006-08-03 Innovasic, Inc. Configurable application specific standard product with configurable i/o
US7406550B2 (en) 2005-01-27 2008-07-29 Innovasic, Inc Deterministic microcontroller with configurable input/output interface
US7702850B2 (en) * 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US7609468B2 (en) 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
US7620981B2 (en) 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
US7743214B2 (en) 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US9270532B2 (en) * 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
US7924881B2 (en) * 2006-04-10 2011-04-12 Rateze Remote Mgmt. L.L.C. Datagram identifier management
US7650440B2 (en) * 2006-07-25 2010-01-19 Microchip Technology Incorporated Peripheral supplied addressing in a simple DMA module
US7610517B2 (en) 2006-09-14 2009-10-27 Innovasic, Inc. Microprocessor with trace functionality
US8479201B2 (en) * 2006-09-18 2013-07-02 Innovasic, Inc. Processor with hardware solution for priority inversion
US8572302B1 (en) 2006-10-13 2013-10-29 Marvell International Ltd. Controller for storage device with improved burst efficiency
US7900080B2 (en) * 2007-01-29 2011-03-01 Via Technologies, Inc. Receiver mechanism for source synchronous strobe lockout
US8315269B1 (en) 2007-04-18 2012-11-20 Cypress Semiconductor Corporation Device, method, and protocol for data transfer between host device and device having storage interface
TWI448902B (zh) * 2007-08-24 2014-08-11 Cypress Semiconductor Corp 具頁存取基礎處理器介面之橋接裝置
US8090894B1 (en) 2007-09-21 2012-01-03 Cypress Semiconductor Corporation Architectures for supporting communication and access between multiple host devices and one or more common functions
US7895387B1 (en) 2007-09-27 2011-02-22 Cypress Semiconductor Corporation Devices and methods for sharing common target device with two different hosts according to common communication protocol
US8493833B1 (en) * 2010-09-17 2013-07-23 Integrated Device Technology, Inc. Slew rate-variation based driver equalization for far-end crosstalk cancellation
WO2012108023A1 (ja) * 2011-02-09 2012-08-16 富士通株式会社 情報処理装置、情報処理システム及びデータ転送方法
DE102013218305A1 (de) * 2013-08-30 2015-03-05 Dr. Johannes Heidenhain Gmbh Verfahren und Vorrichtung zum Synchronisieren einer Steuereinheit und mindestens einer zugeordneten Peripherieeinheit
CN104615557B (zh) * 2015-01-22 2018-08-21 中国人民解放军国防科学技术大学 一种用于gpdsp的多核细粒度同步的dma传输方法
CN108090001B (zh) * 2017-12-11 2020-10-27 中标软件有限公司 一种内核dma稳态调度方法及装置
CN109189701B (zh) * 2018-08-20 2020-12-29 深圳忆联信息系统有限公司 一种针对嵌入式存储接口数据传输的方法及其系统
CN109343794B (zh) * 2018-09-12 2021-11-09 杭州晨晓科技股份有限公司 一种存储器的配置方法及配置装置
CN113099522B (zh) * 2020-03-30 2022-11-22 深圳友讯达科技股份有限公司 一种低功耗无线通信省电方法
US11393513B2 (en) * 2020-12-01 2022-07-19 Micron Technology, Inc. Timing of read and write operations to reduce interference, and related devices, systems, and methods

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4701841A (en) * 1984-07-25 1987-10-20 Digital Equipment Corporation System for altering data transmission modes
JPH087995B2 (ja) * 1985-08-16 1996-01-29 富士通株式会社 ダイナミツク半導体記憶装置のリフレツシユ方法および装置
US4954983A (en) * 1987-10-13 1990-09-04 Tektronix, Inc. Data driver for multiple mode buffered processor-peripheral data transfer with selective return of data to processor
US5125084A (en) * 1988-05-26 1992-06-23 Ibm Corporation Control of pipelined operation in a microcomputer system employing dynamic bus sizing with 80386 processor and 82385 cache controller
US4937734A (en) * 1989-02-21 1990-06-26 Sun Microsystems, Inc. High speed bus with virtual memory data transfer and rerun cycle capability
US4941157A (en) * 1989-04-14 1990-07-10 Ncr Corporation Slow peripheral handshake interface circuit
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5280623A (en) * 1992-03-04 1994-01-18 Sun Microsystems, Inc. Versatile peripheral bus
KR950012019B1 (ko) * 1992-10-02 1995-10-13 삼성전자주식회사 반도체메모리장치의 데이타출력버퍼
US5561821A (en) * 1993-10-29 1996-10-01 Advanced Micro Devices System for performing I/O access and memory access by driving address of DMA configuration registers and memory address stored therein respectively on local bus

Also Published As

Publication number Publication date
JPH10513294A (ja) 1998-12-15
CA2210062A1 (en) 1997-05-29
EP0804764A4 (de) 2002-04-24
CN1169193A (zh) 1997-12-31
AU7610896A (en) 1997-06-11
WO1997019408A1 (en) 1997-05-29
US5758188A (en) 1998-05-26
KR19980701563A (ko) 1998-05-15
EP0804764A1 (de) 1997-11-05
DE69631327D1 (de) 2004-02-19
EP0804764B1 (de) 2004-01-14

Similar Documents

Publication Publication Date Title
DE69631327T2 (de) Synchrones dma-übertragungsprotokoll
DE69826863T2 (de) Verfahren und vorrichtung zur abstimmung eines zur verrieglung digitaler signalen gebrauchten taktsignals und speichervorrichtung die sie verwendet
DE60037036T2 (de) Vier-gepumpte busarchitektur-/protokoll
DE19900331A9 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE60125112T2 (de) PCI-Arbiter mit unter Spannung stellbarer Steuerungsunterstützung
DE69133500T2 (de) DRAM Halbleitervorrichtung
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE19900325B4 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE19900345B4 (de) Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus
DE69634358T2 (de) Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
DE2854485A1 (de) Datenverarbeitungssystem mit speicherhierarchie
DE3204905C2 (de)
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE102005011386B4 (de) Schaltungseinheit zur Datenbitinvertierung
DE2854397A1 (de) Pufferspeichereinheit fuer ein datenverarbeitungssystem
DE19900331A1 (de) Vorrichtung und Verfahren zur Implementierung eines USB-Endpunktkanals mit doppelter Pufferunterstützung
DE4204148A1 (de) Schaltungsanordnung fuer eine schnittstelle zum anschluss eines computers an ein peripheriegeraet
DE4010384A1 (de) Verfahren zur uebertragung von buendeldaten in einem mikroprozessor
DE2645341C2 (de)
DE19900251A1 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE102015203202A1 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen
DE60130300T2 (de) Bus, der auf einer Flanke eines Taktsignals abtastet und auf der anderen Flanke treibt
DE10061805A1 (de) Flashspeicher mit Burstmodus
DE602004012113T2 (de) Befehls- und adressenbustopologie mit aufgeteiltem t-ketten-speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee